1 / 25

Controllare la prospettiva

Controllare la prospettiva. Daniele Marini. Prospettiva canonica. Camera frame orientato come il world frame Asse ottico coincidente con asse z, entrante nell’obiettivo

camila
Télécharger la présentation

Controllare la prospettiva

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Controllare la prospettiva Daniele Marini

  2. Prospettiva canonica • Camera frame orientato come il world frame • Asse ottico coincidente con asse z, entrante nell’obiettivo • Per portare una scena nella configurazione canonica è necessaria una catena di trasformazioni da applicare conoscendo i parametri principali

  3. I parametri di controllo • PRP Projection Reference Point (COP) • View Plane • VPN View Plane Normal • VUP View UP • DOP Direction of Projection • VRP View Reference Point • CW center of the window

  4. Orientare il piano di proiezione

  5. Definire la viewport e la window

  6. Definire il centro di proiezione

  7. Se la proiezione è parallela

  8. Trasformazioni normalizzate • Dati VPN, VUP si ottiene la view orientation matrix V • La forma della V è: V=TR con T traslazione nel VRP, R rotazione opportuna per orientare la view rispetto alla configurazione canonica

  9. Altri schemi • Lo schema illustrato è tipico delle librerie PHIGS, GKS 3D • OpenGl offre un altro approccio: lookAt • Nei simulatori di volo si adotta lo schema “roll, pitch, yaw”

  10. LookAt • E’ un metodo più diretto e più naturale: • la camera è localizzata in un punto e (eypoint - o punto di vista) specificato nel world frame • La camera è orientata nella direzione individuata dal vettore congiungente e con il punto a (at point - punto osservato) • I punti e ed a individuano il VRP e la VPN gluLookAt(eyex, eyey, eyez, aty, atx, atz, upx, upy, upz);

  11. Roll, pitch, yaw

  12. Matrice canonica di trasformazione prospettica

  13. Dalle coordinate omogenee allo spazio 3D

  14. Matrice canonica di trasformazione ortogonale

  15. Angolo di visione e frustum

  16. Funzioni di OpenGL glFrustum(xmin, xmax, ymin, ymax, near, far); gluPerspective(fovy, aspect, near, far); Aspect = larghezza/altezza della window Fov:

  17. Funzioni di OpenGL - proiezione parallela glOrtho(xmin, xmax, ymin, ymax, near, far); near e far possono essere anche negativi: non c’e’ divisione per 0

  18. Proiezione parallela generica • Ricondursi alla configurazione canonica: normalizzazione • Convertire il volume di vista in una configurazione standard: costruzione della matrice di proiezione: opera in “window coordinates” (comprendono z) • Proiettare il volume deformato • Il volume canonico per la proiezione parallela è normalizzato in -1,+1

  19. glOrtho(xmin, xmax, ymin, ymax, near, far);

  20. Trasla origine del view volume nell’origine del view volume canonico • Riscala il view volume • P è la matrice di proiezione • zmax = far • zmin = near • completata la trasformazione si può chiamare la glOrtho

  21. Proiezioni parallele oblique Angoli del fascio di proiettori con la normale al piano di proiezione q, f

  22. Trasformazione di shear

  23. Prospettiva generica • Creare la matrice di normalizzazione • Deformare lo spazio • Proiettare in modo ortografico

  24. Ai punti trasformati occorre applicare la divisione

More Related