【问题标题】:Three.js: rays & SceneLoader issueThree.js:光线和 SceneLoader 问题
【发布时间】:2013-12-22 22:55:04
【问题描述】:

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

简单示例:

http://golem.fjfi.cvut.cz/virtual/matusu/GitHub/Git.html

程序中添加了一个网格,raycaster 应该与该网格相交(目前找不到原因,也许我可以在下一个小时内解决这个问题)。变量“模型”(应该与射线相交)中的第二个对象(地板)是从搅拌机加载的模型。

为了清楚起见,重力射线用箭头表示。

我一直在寻找错误大约一个月,但找不到任何东西。整个问题是,在下面提到的问题的模型中,使用 SceneLoader 加载的模型似乎与 raycaster 相交,因为不可见模型旋转了 (PI/2,0,0)。

这是问题的简化

three.js: sceneLoader & rays issue

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

【问题讨论】:

  • 不要使用three.min.js进行调试——使用three.js。没有什么需要动画来演示一个问题——创建一个静态场景。您只需要一根射线和一个加载的对象。简化!

标签: three.js raycasting


【解决方案1】:

好的,我可能已经找到问题所在了。它在搅拌机导出器中,因为所有导出的文件都有部分变换,从某种原因旋转设置为(-PI/2,0,0)。它不会影响模型的位置左右(可能只需要它们的几何形状和旋转),但是像 raycaster 的交点这样的所有计算都会影响。当我将此参数设置为 (0,0,0) 时,一切正常。

但它带来的问题不仅仅是来自搅拌机的模型。即使在程序本身中添加了模型(在这种情况下为立方体几何),Raycaster 也无法找到交点。所以这个变换参数在加载这个文件时适用于整个场景。

例子:

这是一个文件,它使用场景加载器加载从搅拌机导出的简单几何图形,但我还没有更改变换参数:

http://golem.fjfi.cvut.cz/virtual/matusu/GitHub/Git_default.html

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

http://golem.fjfi.cvut.cz/virtual/matusu/GitHub/Git_changed.html

感谢您对简化的提醒!它帮助很大!希望这个话题能帮助显示这个小错误(转换非零设置可能有一些原因,但在这一点上是有问题的)。

P.S.:我使用 blender exporter 2.66 版

【讨论】:

    猜你喜欢
    • 2015-01-09
    • 2012-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-18
    • 2014-03-01
    • 2014-12-26
    • 1970-01-01
    相关资源
    最近更新 更多