Om du vill pröva jobba med 3D grafik bör du läsa linjär algebra, det är vad 3D är uppbyggd på och det finns inga genvägar, hela iden är bara i princip linjär algebra. Allt du gör, transformerar (flyttar), roterar och skalar objekten i världen görs med matriser (matrix).
2D - grafik:
Två dimentioner: x och y
3D - grafik
Tre dimentioner: x, y ,z
3D världen är byggt av polygoner (trianglar), ju mer trianglar, desto snyggare men också dyrare. En polygon består av 3 vertex (en punkt som beskriver ett hörn i en specifik geometrisk form. En punkt är en koordinat i 3D miljön, xyz) punkter som formar en triangel (tre hörn).
Skillnaden från 2D är att 3D har ett djup. I directx, som är ett left handed coordinate system har sitt djup i z led, höjd i y led och vänster/höger i x led.
Ett objekt i en 3D scen kallas för mesh. En mesh består av flera vertexpunkter, normaler och textur koordinater. Dessa 3 kombinerat skapar en virtuell objekt i en 3D värld som exempelvis en pansarvagn i battlefield 3.
När man ritar ut en mesh i 3D scenen(renderar), så har man alla vertex punkter lagrade i en så kallad vertex buffer. Dessa vertex punkter skickas från CPU till grafikkortet. Man skickar också eventuellt med Normaler och textur koordinater (ifall man vill lägga på en textur eller skapa ljus eller andra effekter. Att skicka bara med vertex punkter, kan man skapa de virtuella 3D objekten, fast utan någon som helst effekt. Bara en simpel modell).
Man kan programmera hur grafikkortet ska hantera dessa vertexpunkter,normaler och textur koordinater. Språket man programmerar i kallas för HLSL (DirectX). OpenGL använder GLSL.
För att rendera stora miljöer med mycket objekt, krävs det att man optimerar renderingen. Tänk dig själv att rendra miljoners polygoner varje tick.
I 3D måste man också optimera 3D miljön, genom att klippa bort (culling) det som inte behöver renderas. Vi behöver bara rendera det vi ser och det finns en del tekniker för detta, vissa enklare än andra svårare.
Om du vill lära mer hur själva renderings processen fungerar. Sök på "Rendering Pipeline".
3D är mycket komplicerat. Jag uppmanar dig att lära linjär algebra först och sen köp en 3D bok och lär dig 3D pipelinen och de olika begreppen. Förstå sig på hur 3D världen fungerar. 3D lär man sig INTE på en dag. Det är mycket matte och mycket tänk. Speciellt om du vill programmera det i diretcX och det är skillnad på att programmera i dx9,dx10 och dx11.