0
周りの回転オブジェクト:Threejs - 私はこのコードのソリューションを働いてきた中央
var collisionGroup = new THREE.Group();
scene.add(collisionGroup);
(function() {
var geometry = new THREE.CircleGeometry(20, 32);
var material = new THREE.MeshBasicMaterial({ color: 0xffff00 });
var collisionCircle = new THREE.Mesh(geometry, material);
collisionCircle.position.z = -180;
collisionGroup.add(collisionCircle);
})();
function animate(timestamp) {
// apply camera rotation
var rotObjectMatrix = new THREE.Matrix4();
rotObjectMatrix.makeRotationFromQuaternion(camera.quaternion);
collisionGroup.rotation.setFromRotationMatrix(rotObjectMatrix);
// Update VR headset position and apply to camera.
controls.update();
// Render the scene through the manager.
manager.render(scene, camera, timestamp);
requestAnimationFrame(animate);
}
しかし、それは私が回転したいオブジェクトごとにグループを作成せずにこれを達成することが可能です場合、私は知りたいのですが(そこになりますそれらの多くである)。 これらのオブジェクトの位置はカメラの回転に基づいているため、これは私がmakeRotationFromQuaternionとrotation.setFromRotationMatrixを使用した理由です。
おそらく、カメラクォータニオンを保存する方が簡単な解決策があります。
トリックは、ジオメトリを変更し、各頂点の位置をあらかじめオフセットすることです。私はしばらくのうちにThree.jsを使用していないので、簡単な例を簡単に伝えることはできません。しかし、あなたはドキュメントをチェックすることができます( 'position'の部分を探してください)http://threejs.org/docs/#Reference/Core/BufferGeometry –
実際に私の間違いはおそらく正しいリンクhttp://threejs.orgでしょう/ docs /#Reference/Core/Geometryとすると、 'translate'を探しています。 –