Dela via


Direct3D-arkitektur (Direct3D 9)

Det här avsnittet innehåller två övergripande vyer av arkitekturen i Direct3D:

Direct3D-grafikpipeline

Grafikpipelinen ger hästkrafter för att effektivt bearbeta och rendera Direct3D-scener till en skärm och dra nytta av tillgänglig maskinvara. Följande diagram visar byggstenarna i pipelinen:

diagram över direct3d-grafikpipelinen

Pipelinekomponent Beskrivning Relaterade ämnen
Brytpunktsdata Otransformerade modellhörn lagras i hörnminnesbuffertar. Hörnbuffertar (Direct3D 9), IDirect3DVertexBuffer9
Primitiva data Geometriska primitiver, inklusive punkter, linjer, trianglar och polygoner, refereras i hörndata med indexbuffertar. Index Buffers (Direct3D 9), IDirect3DIndexBuffer9, Primitives, Higher-Order Primitives (Direct3D 9)
Tessellation Tesselator-enheten konverterar primitiver i högre ordning, förskjutningskartor och nätkorrigeringar till hörnplatser och lagrar dessa platser i hörnbuffertar. Tessellation (Direct3D 9)
Hörnbearbetning Direct3D-transformeringar tillämpas på hörn som lagras i hörnbufferten. hörnpipeline (Direct3D 9)
Geometribearbetning Urklipp, utgallring av bakgrundsigenkänning, attribututvärdering och rastrering tillämpas på de transformerade hörnen. Pixel Pipeline (Direct3D 9)
Strukturerad yta Strukturkoordinater för Direct3D-ytor levereras till Direct3D via IDirect3DTexture9-gränssnittet. Direct3D Textures (Direct3D 9), IDirect3DTexture9
Texturexempel Texturnivåfiltrering tillämpas på indatastrukturvärden. Direct3D-texturer (Direct3D 9)
Pixelbearbetning Pixelskuggningsåtgärder använder geometridata för att ändra indatahörn och texturdata, vilket ger utdata för pixelfärgvärden. Pixel Pipeline (Direct3D 9)
Pixelåtergivning Slutliga återgivningsprocesser ändrar pixelfärgvärden med alfa-, djup- eller stenciltestning, eller genom att använda alfablandning eller dimma. Alla resulterande pixelvärden visas för utdatavisningen. Pixel Pipeline (Direct3D 9)

 

Direct3D-systemintegrering

Följande diagram visar relationerna mellan ett Window-program, Direct3D, GDI och maskinvaran:

diagram över relationen mellan direct3d och andra systemkomponenter

Direct3D exponerar ett enhetsoberoende gränssnitt för ett program. Direct3D-program kan finnas tillsammans med GDI-program och båda har åtkomst till datorns grafikmaskinvara via drivrutinen för grafikkortet. Till skillnad från GDI kan Direct3D dra nytta av maskinvarufunktioner genom att skapa en hal-enhet.

En hal-enhet ger maskinvaruacceleration till grafikpipelinefunktioner baserat på den funktion som stöds av grafikkortet. Direct3D-metoder tillhandahålls för att hämta enhetsvisningsfunktioner vid körning. (Se IDirect3DDevice9::GetDeviceCaps.) Om en funktion inte tillhandahålls av maskinvaran rapporterar inte hal-filen den som en maskinvarufunktion.

Mer information om hal- och referensenheter som stöds av Direct3D finns i Enhetstyper (Direct3D 9).

Komma igång