Posso conoscere la differenza tra i tre? Un buon esempio potrebbe anche aggiungere.
Posso conoscere la differenza tra i tre? Un buon esempio potrebbe anche aggiungere.
Risposte:
Le coordinate del mondo sono alla base del tuo mondo di gioco. Le posizioni 3D di tutti gli oggetti sono in definitiva specificate nello spazio mondiale, direttamente o attraverso una gerarchia di nodi. Il terreno, gli edifici, gli alberi e le altre cose fisse saranno riparati nello spazio mondiale. I calcoli e la fisica del gioco saranno effettuati nello spazio del mondo (forse con un po 'di ricerca locale a fini di precisione, se il mondo è grande). Gli assi delle coordinate mondiali sono spesso presi per rappresentare le direzioni della bussola, come X = est, Y = nord, Z = su.
Le coordinate locali sono associate a un oggetto (esiste uno spazio di coordinate locale per ciascun oggetto). Gli assi possono rappresentare qualcosa di significativo per l'oggetto, ad esempio X = avanti, Y = sinistra, Z = su per un oggetto come un personaggio, un veicolo, una pistola, ecc. Che ha un orientamento intrinseco. Man mano che l'oggetto si sposta, la relazione tra spazio locale e mondo (espressa da una matrice di trasformazione) cambierà. Ad esempio, se capovolgi la tua auto a testa in giù, il suo asse Z locale ("su" nello spazio locale) ora punta "verso il basso" nello spazio mondiale.
Le coordinate della telecamera o della vista sono coordinate locali collegate alla telecamera. Questo è ancora un sistema di coordinate 3D, senza alcuna proiezione o altro, ma con gli assi allineati per adattarsi all'orientamento dello schermo: di solito X = destra, Y = su, Z = indietro. La trasformazione dal mondo allo spazio di visualizzazione è spesso nota come "matrice di visualizzazione".
Le coordinate dello spazio di clip sono le coordinate emesse da uno shader di vertici: coordinate a cui è stata applicata la matrice di proiezione, ma non la divisione della prospettiva. Questo è uno spazio 4D (omogeneo). (Lo spazio mondiale, locale e di visualizzazione è 3D con una implicita w = 1.) È così chiamato perché questo è lo spazio in cui avviene il ritaglio e l'abbattimento della vista (almeno concettualmente).
Le coordinate del dispositivo normalizzate , comunemente note anche come "spazio dello schermo", sebbene il termine sia un po 'lento, sono ciò che ottieni dopo aver applicato la divisione della prospettiva alle coordinate dello spazio della clip. Le coordinate 3D ora rappresentano le posizioni 2D dei punti sullo schermo, con X e Y in [−1, 1], insieme alla profondità entro l'intervallo del buffer di profondità, Z in [0, 1] per D3D o [−1, 1 ] per OpenGL. L'orientamento dell'asse è X = destra, Y = su e Z può essere avanti o indietro a seconda della configurazione del buffer di profondità.
Le coordinate del dispositivo sono coordinate pixel 2D all'interno del target di rendering, con (0, 0) nell'angolo in alto a sinistra, X = destra, Y = giù. Si arriva alle coordinate del dispositivo applicando la trasformazione viewport alle coordinate del dispositivo normalizzate; la finestra controlla a quale offset di pixel e risoluzione appare l'immagine nella destinazione di rendering. Una cosa importante da notare è che le coordinate del dispositivo non sono valori interi; non sono indici di pixel. Sono un sistema di coordinate 2D continuo, che utilizza unità di dimensioni pixel, ma in cui i valori frazionari (subpixel) sono perfettamente validi. I centri di pixel si trovano a 0,5 offset (come 0,5, 1,5, 2,5, ...) in questo sistema di coordinate.