Three.js:rays&;SceneLoader问题

Three.js:rays&;SceneLoader问题,three.js,raycasting,Three.js,Raycasting,问题: 加载SceneLoader()的模型与光线投射器相交错误 简单的例子: 程序中添加了一个网格,raycaster应该与之相交(目前找不到原因,也许我可以在下个小时修复)。变量“模型”(应与光线相交)中的第二个对象(地板)是从blender加载的模型 为清晰起见,重力光线用箭头显示 我已经找了大约一个月的错误,但什么也找不到。整个问题是,在下面提到的问题的模型中,似乎加载了SceneLoader的模型与raycaster相交,因为不可见模型旋转了(PI/2,0,0) 这是问题的简化 如

问题: 加载SceneLoader()的模型与光线投射器相交错误

简单的例子:

程序中添加了一个网格,raycaster应该与之相交(目前找不到原因,也许我可以在下个小时修复)。变量“模型”(应与光线相交)中的第二个对象(地板)是从blender加载的模型

为清晰起见,重力光线用箭头显示

我已经找了大约一个月的错误,但什么也找不到。整个问题是,在下面提到的问题的模型中,似乎加载了SceneLoader的模型与raycaster相交,因为不可见模型旋转了(PI/2,0,0)

这是问题的简化


如何通过SceneLoader(JSONLoader工作正常)将加载的模型与光线相交?

好的,我可能已经找到了问题所在。它位于blender exporter中,因为所有导出的文件都将“从某个原因到某个原因的段内变换”旋转设置为(-PI/2,0,0)。它不会影响模型的位置(可能只考虑它们的几何体和旋转),但所有的计算都像raycaster的交点一样。当我将此参数设置为(0,0,0)时,一切正常

但它带来的问题不仅仅是搅拌机的模型。Raycaster无法找到交点,即使程序本身添加了模型(本例中为立方体几何体)。因此,加载此文件时,此变换参数将应用于整个场景

例如:

这是一个文件,它使用场景加载程序加载从blender导出的简单几何体,但我尚未更改变换参数:

这是加载同一文件的完全相同的程序,但将参数transform.rotation更改为(0,0,0)。:

谢谢你提醒我要简化!这帮了不少忙!希望本主题将有助于展示这个小错误(转换非零设置可能有一些原因,但在这一点上是有问题的)


注意:我使用blender exporter 2.66版

不要用three.min.js调试——使用three.js。演示问题不需要任何动画——创建静态场景。您只需要一条光线和一个加载的对象。简化