用三个j分割模型

时间:2014-03-11 00:29:02

标签: javascript three.js

说你有一个简单的raycaster。鼠标悬停时,模型会亮起。

然而,在这个实现中,这个模型将被分解为部分,这些部分将是模型的一部分,但仍然是它们自己独立的“模型”。例如,假设您的模型恰好是一辆汽车。将鼠标悬停在引擎盖上时,它会亮起。当你把鼠标放在门上时,它会亮起,等等。 我没有在threejs的例子中找到任何我所说的实例。

有没有办法将完整的.obj模型分解为三个单独但相互连接的模型?

1 个答案:

答案 0 :(得分:1)

我一直在使用threejs很长一段时间,但我不认为这是可能的,至少不是三js本身(也许WebGL有一些工具可以帮助你实现这一点,但是,如果它是一个复杂的模型,如汽车,结果仍然是非常可怕的)。但有几种解决方法。

  1. 在treejs中,从多个较小的模型创建模型。对于简单的物体,这是可能的(例如:代替球体,创建两个半球并将它们彼此相邻放置)。

  2. 使用点光源而不是使用raycaster。这会将光线投射到不是物体的区域,因此如果你瞄准一个大物体,你最终只会根据点光源的强度和距离点亮物体的一部分。

  3. 如果你有复杂的模型,如汽车。加载一些3D建模程序(Blender,...)并将其分解为较小的程序,然后将它们分开保存。在你的threejs代码中,单独加载每个代码并将它们定位为单个对象的方式。 (我想这是这种情况下唯一合理的方式)