我已经从事矢量工作已有13年了,但是我仍然在为Three.js处理事情而苦苦挣扎。因此,我最喜欢做的事情就是用一个始终面对镜头并旋转的风扇来描述。
这就是我用另一种语言实现的方式:
// Create a vector facing in camera direction.
temp.x = 0;
temp.y = 1;
temp.z = 0;
vec_rotate(temp, camera.pan);
// Apply vector direction to scene object.
vec_to_angle(entity.pan, temp);
// Rotate scene object's angle around another angle / imaginary line from camera to object.
ang_rotate(
entity.pan,
vector(random(360), 0, 0)
);
因此,在应用entity.lookAt(camera.position)之后,我错过了基于当前角度的角度旋转(示例的最后一个函数调用)。
建模风扇的一种方法如下:
var fan = new THREE.Mesh( ... );
var pivot = new THREE.Object3D();
scene.add( pivot );
pivot.lookAt( camera.position );
pivot.add( fan );
然后在动画循环中(假设默认情况下,风扇网格面向正z轴),
fan.rotation.z += 0.01;
three.js r.68
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句