Direct3D-arkitektur (Direct3D 9)
Det här avsnittet innehåller två övergripande vyer av arkitekturen i Direct3D:
- Direct3D Graphics Pipeline – En vy över den interna bearbetningsarkitekturen i Direct3D-renderingssystemet.
- Direct3D System Integration – En vy över hur Direct3D förmedlar mellan ett program och grafikmaskinvaran.
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:
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:
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).