Три.JS поверните проекцию так, чтобы ось y стала осью z
традиционно в 3D-проекциях ось Y-это ось, которая представляет собой "вверх и вниз". Я научился думать об этом, с другими двигателями, как о оси Z-оси. Мне было интересно, есть ли способ в три.JS чтобы сделать ось Z осью" вверх/вниз". Если да, то есть ли какие-либо последствия?
вот диаграмма того, что я хочу:
3 ответов
вы можете просто изменить камеру, а не всю систему координат. Например:
var WIDTH = 1024;
var HEIGHT = 768;
var VIEW_ANGLE = 45;
var ASPECT = WIDTH / HEIGHT;
var NEAR = 0.1;
var FAR = 10000;
camera = new THREE.PerspectiveCamera(VIEW_ANGLE, ASPECT, NEAR, FAR);
camera.position.z = 300;
camera.up = new THREE.Vector3( 0, 0, 1 );
scene.add(camera);
Это меняет up
вектор для камеры, чтобы использовать Z-UP.
редактировать:
чтобы проиллюстрировать пример, вот jsfiddle, который вы создали, слегка модифицированный для вызова lookAt
после установки up
вектор:http://jsfiddle.net/NycWc/1/
У меня была эта проблема с объектом. Вот как я это исправил.
object.rotation.z = 90 * Math.PI/180;
object.rotation.x = -90 * Math.PI/180;
это изменило его ориентацию именно так, как вы спрашиваете.
координатная рамка xyz всегда должна быть настроена с правым правилом. Создание собственного конвенции просто не такой хороший план и вызовет много путаницы. Вы можете вращать координатную рамку по желанию, но не изменять направление оси. Если вы действительно хотите сделать то,что вы показываете, вы можете сделать координатную рамку x, y,-Z.