由于某些原因,当我尝试使用viewer.rayIntersect
投射光线时,它仍然会碰到透明物体。
查看rayIntersect
实现时,_modelQueue.rayIntersect
忽略透明对象,而avp.VBIntersector.intersectObject
则忽略透明对象。
// ... rayIntersect implementation
var result = _modelQueue.rayIntersect(ray.origin, ray.direction, ignoreTransparent, dbIds, modelIds, intersections);
if (this.sceneAfter.children.length) {
var raycaster = new THREE.Raycaster(ray.origin, ray.direction, this.camera.near, this.camera.far);
var intersects = [];
avp.VBIntersector.intersectObject(this.sceneAfter, raycaster, intersects, true);
if (intersects.length) {
if (!result || intersects[0].distance < result.distance) {
result = intersects[0];
}
}
}
// ... rayIntersect implementation
是否有另一种投射光线的方法来解决这个问题?
编辑:
也许值得一提的是,射线撞击房间几何(虽然看不见):
蓝点是光线的交点,你可以看到它“漂浮在空中”而不是在地板上。
我正在使用版本3.1