三个JS如何在摄像机中将光线或射线发射到渲染器中的所有对象以检查faceIndex

时间:2015-07-04 08:28:02

标签: three.js

我有一些孩子http://kinosura.kiev.ua/sova/的项目,我需要检查屏幕中所有立方体的faceIndex。

现在我使用鼠标中的十字路口数组,但仅在用户指针位于多维数据集时才起作用。

如何从相机到所有对象制作光线或光线以检查faceIndex?

我尝试向立方体制作四条光线,但如果我将cube.position设置为这样的原点: raycaster.setFromCamera(cube1.positoin,camera)

我得到空的十字路口。

我也尝试将静态2d矢量设置为原点(从鼠标获取坐标),但我有相对渲染器大小,这个坐标所有时间都改变了...它不起作用(

无论如何,谢谢你的回答。

1 个答案:

答案 0 :(得分:1)

我建议您尝试其他方法相对于相机视图,您的多维数据集似乎不会相互遮盖。因此,使用曲面法线,并将它们与视图方向进行比较,以确定它们是面向相机还是通过一个简单的每个多边形点积产品背离相机。

在创建几何体时,在添加THREE.Mesh之前调用.generateFaceNormals()。

代替光线投射,迭代所有面,抓取面的曲面法线,相对于视图变换(对象矩阵的反向转置),然后点()。听起来可能听起来很复杂,但它实际上只是几步而且比做很多光线投射要快得多(无论如何都可能包括这个!)