use*_*699 1 rotation quaternions three.js
我的场景中有一个对象,想要获得表示它所面向方向的规范化向量.在Unity中,等价物是transform.forward.我怎样才能在THREE.js中访问它?
以下是如何确定对象面向或"查看"的方向向量:
默认情况下,对象被视为正在查找其内部正z轴,因此创建一个指向正z轴方向的向量:
var vector = new THREE.Vector3( 0, 0, 1 );
Run Code Online (Sandbox Code Playgroud)
现在,将相同的旋转应用于应用于对象的向量:
vector.applyQuaternion( object.quaternion );
Run Code Online (Sandbox Code Playgroud)
生成的向量将指向对象所面向的方向 - 只要对象没有已转换的父对象.
如果对象具有应用了变换的父对象,则object.quaternion需要计算对象的"世界四元数"而不是使用它,而是使用它.你是这样做的:
var position = new THREE.Vector3();
var scale = new THREE.Vector3();
var quaternion = new THREE.Quaternion();
var vector = new THREE.Vector3( 0, 0, 1 );
. . .
object.updateMatrixWorld(); // the renderer does this for you each render loop, so you may not have to
object.matrixWorld.decompose( position, quaternion, scale );
vector.applyQuaternion( quaternion );
Run Code Online (Sandbox Code Playgroud)
如果"对象"是一个摄像头,那么看到这个答案:three.js设置并读取摄像头外观矢量.
three.js r.68
| 归档时间: |
|
| 查看次数: |
2745 次 |
| 最近记录: |