Cunoaște Intuit, lectura, grafică tridimensională folosind Direct3D

Rezumat: În acest capitol discută despre modul de lucru cu grafică tridimensională utilizând biblioteca grafică Direct3D. Este prezentat și discutat în detaliu schema conductei grafice, precum și metodele de implementare folosind C ++ și Pascal

Conducerea conductei grafica

În această secțiune, vom discuta principiile scene tridimensionale folosind Direct3D bibliotecă grafică. În primul rând, trebuie să se familiarizeze cu schema conductei grafice. Grafica conducta este un fel de hardware și software pentru dispozitiv care traduce obiectele descrise în XYZ spațiu tridimensional. ținând seama de poziția observatorului, într-o multitudine de pixeli pe ecranul monitorului. Mai jos este o diagramă de flux a conductei de grafică.

Cunoaște Intuit, lectura, grafică tridimensională folosind Direct3D

„Viața“ topuri începe atunci când ajunge în conducta grafică de aplicații. În prima etapă a conductei grafice toate nodurile obiectelor expuse la transformări - rotație, afine zoom și deplasare. Pe parcursul acestei etape corespunde unui bloc de transformare și de iluminare sau shader vertex. De fapt, ei efectuează aceeași muncă pentru transformarea de noduri, dar blocul de transformare și de iluminare specifică în mod rigid reguli de procesare, în timp ce vertex shader este un element programabil în această etapă. Aici vine calculul de iluminare la nodurile în funcție de numărul, localizarea și tipuri de surse de lumină. Vertex Shader primește ca intrare un nod care are coordonatele in sistemul local de coordonate, și ieșirile l ca, dar transformat în sistemul de coordonate al observatorului (camera).

Clipping fețe invizibile „elimină“ toate triunghiuri ale scenei, care se află părțile nelitsevymi la camera (observator). Programatorul poate specifica ordinea de parcurgeri a nodurilor de triunghi (în sens orar / antiorar), în care biblioteca va bloca ieșirea acestor primitive.

Utilizatorul poate instala avioane suplimentare de tăiere, care se va tăia vârfurile și triunghiuri, care sunt în negativ semiplanurile.

Clipping aparent volum specifică de vizualizare de piramidă și primitivele, care sunt în afara piramidei vor fi tăiate.

La pasul următor conducta grafica așa-numita transformare omogenă, în care x. y. coordonatele z ale nodurilor sunt împărțite într-un al patrulea component, numit multiplicator omogen. După conversie, coordonatele vor fi triunghiuri normalizate, iar volumul (piramida) vizibilitatea este transformată într-o unitate de cub ortogonale.

Acum coordonatele normalizate sunt afișate în spațiul ecranului. În această etapă, „viața“ de noduri în conducta de grafică se termină.

Următorul pas începe cu Rasterizarea de triunghiuri și de obținere a acestora din matrice de pixeli. Fiecare pixel rasterizare care are aceleași atribute (culoare, coordonate de textură, etc.) și că după procesarea vertex vertex shader. Valorile atributelor pixel sunt calculate pe baza de interpolare liniară noduri primitive.

Multitexture pas poate fi realizată fie printr-un mecanism pentru a lucra cu texturi, fie cu ajutorul pixel shader. pixel shader poate fi privit ca un mecanism de procesare a pixelilor programabil. Mai mult, metoda și rezultatul unei astfel de prelucrări depinde de programator. Este cu pixel shader preparat efecte vizuale comparabile cu tipul unui film (simulare suprafață de iarbă de apă, blană, molii și iluminat per-pixel și colab.).