Domanda

Ho appena iniziato con tre.js. Come davvero solo ora.

Dopo aver giocato con esso per circa un'ora e costruire uno strumento che mi aiuta a capire come funzionano i diversi elementi insieme (telecamera, luce, oggetti), ho trovato qualcosa di strano.

Lo strumento: http://hotblocks.nl/tests/three/cubes.html

Questa è la configurazione predefinita corrente:

  • La fotocamera è posizionata 210 verso l'alto e
  • 500 all'indietro e
  • 246 a destra
  • La fotocamera è leggermente ruotata a sinistra
  • La luce è direttamente sopra e brilla in tutte le direzioni

Come puoi vedere, gli oggetti sono in fondo alla vista. Quindi voglio girare la fotocamera verso il basso, così posso vederne di più.

Provalo: gira camera.rotation.x fuori uso.

Funziona, ma l'angolo di rotazione è sbagliato! Invece della fotocamera che ruota, è il mondo che ruota attorno al suo asse z.

Non è giusto, vero?

Anche l'asse Y è sbagliato. Ruota il mondo attorno al suo asse y.

Ruotando la fotocamera attorno al suo asse z, funziona perfettamente: la fotocamera ruota, non il mondo.

Lo sto sbagliando? O capirlo sbagliato?

Ps Poiché la rotazione della telecamera è solo attorno al suo asse y, anche i bordi verticali degli oggetti dovrebbero essere verticali nel risultato. Nella impostazione predefinita, lo sono. Ruotando la fotocamera attorno al suo asse x, non dovrebbe cambiarlo, ma lo fa. Solo ruotare attorno al suo asse z dovrebbe cambiarlo (e lo fa). Ho sbagliato?

PPS Conosco Camera.lookAt( THREE.Vector3 target ), Ma ciò cambia la rotazione della fotocamera, incluso il suo asse z, e ciò non dovrebbe essere necessario logicamente.

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top