ThreeJS - 错误的光线旋转

Posted

技术标签:

【中文标题】ThreeJS - 错误的光线旋转【英文标题】:ThreeJS - wrong light rotation 【发布时间】:2014-09-07 13:56:01 【问题描述】:

无论是导入场景,还是通过代码创建每个网格和灯光,都会出现以下问题。

我的场景由一个平面、一个立方体和一个聚光灯组成。 聚光灯在 y 轴上旋转 45 度。 在示例 1 中,它位于点 (4, 0, 4)。 在示例 2 中,它位于点 (4, 0, 5)。

灯光的旋转始终为 45 度(0.785398163 弧度)。

为什么灯光总是指向立方体正面的中心? 我假设它会完全按照搅拌机中所示的方式渲染示例 2,并指向立方体的边缘。

以下是示例:

第一个示例(正确旋转):

我在 Blender 中有这个场景:

它使用 ThreeJS 以这种方式呈现:

第二个例子(错误的旋转):

我在 Blender 中有这个场景:

它在 ThreeJS 中以这种方式呈现:

【问题讨论】:

SpotLights in three.js 不要将light.rotation 属性用于任何事情。相反,他们使用light.target,即Object3Dlight.target.position 在这两种情况下都等于原点吗? 目标位置在每种情况下都是 (0, 0, 0),这解释了行为。非常感谢。 如何开启light debug看它有哪个方向?? 【参考方案1】:

三个.js 中的SpotLights 不要将其rotation 属性用于任何事情。相反,他们使用light.target,即Object3D

three.js r.68

【讨论】:

以上是关于ThreeJS - 错误的光线旋转的主要内容,如果未能解决你的问题,请参考以下文章

threejs - 重新定位后使用控制器在 AR 中进行光线投射

Threejs在使用变换控制时禁用轨道相机

threejs引擎中 环境光线与管道流动

Threejs中用于无线光线追踪的自定义渲染器和灯光?

相机自动旋转threejs

Threejs用鼠标围绕对象旋转? (没有鼠标按下)