2014-05-03 16 views

Odpowiedz

32

Aby uzyskać widok izometryczny, można użyć OrthographicCamera. Następnie musisz prawidłowo ustawić orientację kamery. Istnieją dwa sposoby, aby to zrobić:

Metoda 1 - użyj camera.lookAt()

var aspect = window.innerWidth/window.innerHeight; 
var d = 20; 
camera = new THREE.OrthographicCamera(- d * aspect, d * aspect, d, - d, 1, 1000); 

camera.position.set(20, 20, 20); // all components equal 
camera.lookAt(scene.position); // or the origin 

metoda 2 - zestaw X-komponent camera.rotation

camera.position.set(20, 20, 20); 
camera.rotation.order = 'YXZ'; 
camera.rotation.y = - Math.PI/4; 
camera.rotation.x = Math.atan(- 1/Math.sqrt(2)); 

Isometric View Using Orthographic Camera

skrzypce: http://jsfiddle.net/q3m2kh5q/

th ree.js r.73

+0

Jeśli ustawisz pozycję kamery na 100 na osi Z, to utrzymasz ją, aby zapobiec przycięciu siatki przy najbliższej płaszczyźnie przycięcia w kamerze. Aby zachować ten sam widok izometryczny, musisz również zaktualizować pozycje X Y, aby pasowały. Linia 44 'camera.position.set (100, 100, 100);' –

1

trzeba użyć orbitę i śledzenia kontroli, jak tu:

http://codepen.io/nireno/pen/cAoGI

Edit:

też możesz rozważyć użycie aparatu orto ten post tutaj może pomóc:

Three.js - Orthographic camera

przykład można zobaczyć tutaj:

http://threejs.org/examples/canvas_camera_orthographic.html

i tu jest link (witrynie Udacity) wyjaśniający użycie:

https://www.udacity.com/course/viewer#!/c-cs291/l-158750187/m-169414761

+0

Chcę mieć stały kąt, a nie elementy sterujące. –

+0

Tak, wiem, elementy sterujące pomogą Ci określić pożądany kąt, po czym możesz ustawić kamerę pod odpowiednim kątem. kamera ma rotacjęx, rotację i obrótz pozycjąx, positiony i positionz – ProllyGeek

+0

Nie pomaga mi to, ponieważ kiedy debuguję rotację kamery, jest to obiekt Eulera zamiast normalnego radiana. –