Sistemi di coordinate e geometriaCoordinate systems and geometry

La programmazione di applicazioni Direct3D richiede una conoscenza pratica dei principi geometrici 3D.Programming Direct3D applications requires a working familiarity with 3D geometric principles. In questa sezione vengono introdotti i concetti geometrici più importanti per la creazione di scene 3D.This section introduces the most important geometric concepts for creating 3D scenes.

In questa sezioneIn this section

ArgomentoTopic DescrizioneDescription

Sistemi di coordinateCoordinate systems

Le applicazioni per la grafica 3D utilizzano in genere uno dei due tipi di sistemi di coordinate cartesiane: sinistrorso o destrorsa.Typically 3D graphics applications use one of two types of Cartesian coordinate systems: left-handed or right-handed. In entrambi i sistemi coordinate, l’asse x positivo punta a destra e l’asse y positivo punta verso l’alto.In both coordinate systems, the positive x-axis points to the right, and the positive y-axis points up.

PrimitivePrimitives

Una primitiva 3D è un insieme di vertici che formano una singola entità 3D.A 3D primitive is a collection of vertices that form a single 3D entity.

Viso e vertici vettori normaliFace and vertex normal vectors

Ciascuna superficie di una mesh ha un vettore normale di unità perpendicolare.Each face in a mesh has a perpendicular unit normal vector. La direzione del vettore è determinata dall’ordine con cui i vertici sono definiti e dal sistema di coordinate utilizzato: destrorso o sinistrorso.The vector's direction is determined by the order in which the vertices are defined and by whether the coordinate system is right- or left-handed.

RettangoliRectangles

Nella programmazione Direct3D e Windows, gli oggetti sullo schermo sono definiti in termini di rettangoli di delimitazione.Throughout Direct3D and Windows programming, objects on the screen are referred to in terms of bounding rectangles. I lati del rettangolo di delimitazione sono sempre paralleli ai lati dello schermo, in modo che il rettangolo possa essere rappresentato da due punti, ossia l’angolo superiore sinistro e l’angolo inferiore destro.The sides of a bounding rectangle are always parallel to the sides of the screen, so the rectangle can be described by two points, the upper-left corner and lower-right corner.

Interpolazione triangoloTriangle interpolation

Durante il rendering, la pipeline esegue l’interpolazione dei dati dei vertici per ogni triangolo.During rendering, the pipeline interpolates vertex data across each triangle. I dati dei vertici possono essere di diversi tipi e possono includere, in via esemplificativa: colore diffuso, colore speculare, alfa diffuso (opacità dei triangoli), alfa speculare e un fattore di nebbia.Vertex data can be a broad variety of data and can include (but is not limited to): diffuse color, specular color, diffuse alpha (triangle opacity), specular alpha, and a fog factor.

Vettori di vertici e quaternioniVectors, vertices, and quaternions

In Direct3D, i vertici descrivono posizione e orientamento.Throughout Direct3D, vertices describe position and orientation. Ogni vertice in una primitiva è descritto da un vettore che fornisce posizione, colore, coordinate della trama e un vettore normale che fornisce l’orientamento.Each vertex in a primitive is described by a vector that gives its position, color, texture coordinates, and a normal vector that gives its orientation.

TrasformazioniTransforms

Il componente di Direct3D che trasporta la geometria nella pipeline della geometria a funzione fissa è il motore di trasformazione.The part of Direct3D that pushes geometry through the fixed function geometry pipeline is the transform engine. Esso individua il modello e l’osservatore a livello globale, proietta i vertici per visualizzarli sullo schermo e ritaglia i vertici in corrispondenza del riquadro di visualizzazione.It locates the model and viewer in the world, projects vertices for display on the screen, and clips vertices to the viewport. Il motore di trasformazione esegue inoltre i calcoli di illuminazione per determinare i componenti diffusi e speculari di ciascun vertice.The transform engine also performs lighting computations to determine diffuse and specular components at each vertex.

Viewport e il ridimensionamentoViewports and clipping

Un riquadro di visualizzazione è un rettangolo bidimensionale (2D) nel quale è proiettata una scena 3D.A viewport is a two-dimensional (2D) rectangle into which a 3D scene is projected. In Direct3D, il rettangolo esiste come coordinate all’interno di una superficie Direct3D utilizzata dal sistema come destinazione di rendering.In Direct3D, the rectangle exists as coordinates within a Direct3D surface that the system uses as a rendering target. La trasformazione della proiezione converte i vertici nel sistema di coordinate usato per il riquadro di visualizzazione.The projection transformation converts vertices into the coordinate system used for the viewport. Un riquadro di visualizzazione viene inoltre utilizzato per specificare l’intervallo dei valori di profondità di una superficie di destinazione di rendering in cui verrà eseguito il rendering di una scena (in genere da 0,0 a 1,0).A viewport is also used to specify the range of depth values on a render-target surface into which a scene will be rendered (usually 0.0 to 1.0).

 

Argomenti correlatiRelated topics

Guida alla formazione di grafica Direct3DDirect3D Graphics Learning Guide