【问题标题】:Camera Collision in Three.jsThree.js 中的相机碰撞
【发布时间】:2015-08-18 02:27:05
【问题描述】:

有谁知道如何执行简单的碰撞检查以将相机推后,使其不会“通过”场景?是否可以让相机尊重 3D 对象“质量”?我正在尝试制作一个小型模拟器来绕建筑物飞行并进入一些房间,但相机总是会进入物体内部。

【问题讨论】:

标签: three.js


【解决方案1】:

您可以为每个 3D 方向设置 3 个光线投射器。您将它们和相机附加到您移动的空对象(而不是相机)上,这样所有东西都会立即移动。

当您的光线投射器与某物相交时,您会在交点坐标和空对象位置之间产生差异。这为您提供了您可能需要的所有信息。

如果您想定义像质量这样的对象参数,请将它们添加到 object.userData 并通过返回的交集数组访问它们。

【讨论】:

  • 在深入研究之前,先提一个问题:预加载场景是否合理?这将是一个场景;它会起作用还是太耗电而无法检查所有对象的碰撞?
  • 光线投射器使用资源,但 3 是合理的,无论您的场景有多少对象。你可以想象不同的解决方案。现在我认为更轻松的解决方案是在每次渲染时记住先前的相机位置,并在(实际先前)位置的方向上仅设置一个光线投射器。这一切都取决于你的场景,如果物体也移动......
  • 对象都是静态的。这将是一个简单的模拟器来查看大学综合体的房间。感谢您的提示!
猜你喜欢
  • 2019-04-30
  • 2013-01-18
  • 2013-02-02
  • 2017-09-25
  • 2020-08-16
  • 2013-08-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多