Sistemi di coordinate

In genere le applicazioni grafiche 3D usano uno dei due tipi di sistemi di coordinate cartesiani a sinistra o destrorsa. In entrambi i sistemi di coordinate, l'asse x positivo punta a destra e l'asse y positivo punta verso l'alto.

Coordinate sinistre e destrorse

È possibile ricordare in quale direzione è rivolto l'asse z positivo puntando le dita della mano sinistra o destra nella direzione x positiva e usando il curl nella direzione y positiva. La direzione in cui punta il pollice, verso o lontano dall'utente, è la direzione in cui è rivolto l'asse z positivo per il sistema di coordinate. La figura seguente illustra questi due sistemi di coordinate.

illustration of the left-handed and right-handed cartesian coordinate systems

Direct3D usa un sistema di coordinate sinistrorso. Anche se le coordinate sinistrorse e destrorse sono i sistemi più comuni, c'è una varietà di altri sistemi di coordinate usati nel software 3D. Ad esempio, non è insolito per le applicazioni di modellazione 3D usare un sistema di coordinate in cui l'asse y mira verso o lontano dal visualizzatore e l'asse z mira verso l'alto.

Vertici e vettori

Dato il sistema di coordinate, una coordinata x, y e z può definire un punto nello spazio (un "vertice") o una direzione 3D (un "vettore").

È possibile utilizzare una raccolta di vertici per definire linee e forme. Gli oggetti più semplici definibili dai vertici sono denominati Primitive e un oggetto più complesso definito da un set di primitive è denominato "mesh".

Le operazioni essenziali eseguite sulle mesh definite in un sistema di coordinate 3D sono traslazione, rotazione e ridimensionamento. È possibile combinare queste trasformazioni di base per creare una matrice di trasformazione. Per informazioni dettagliate, vedere Trasformazioni.

Quando si combinano queste operazioni, i risultati non sono commutativi; l'ordine in cui si moltiplicano le matrici è importante.

Conversione da un sistema di coordinate destrorso

Se si esegue la conversione di un'applicazione basata su un sistema di coordinate destrorso, è necessario apportare due modifiche ai dati passati a Direct3D:

  • Capovolgere l'ordine dei vertici del triangolo in modo che il sistema li attraversi in senso orario dalla parte anteriore. In altre parole, se i vertici sono v0, v1, v2, passarli a Direct3D come v0, v2, v1.
  • Usare la matrice di visualizzazione per ridimensionare lo spazio globale di -1 nella direzione z. A tale scopo, capovolgere il segno del membro _31, _32, _33 e _34 della struttura matrice usata per la matrice di visualizzazione.

Sistemi di coordinate e geometria