я рабочего раствора с этим кодом: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'. –