D3D12-code Walk-Throughs
Deze sectie bevat code voor voorbeeldscenario's. Veel van de stapsgewijze instructies bevatten details over welke codering moet worden toegevoegd aan een basisvoorbeeld, om te voorkomen dat de basisonderdeelcode voor elk scenario wordt herhaald.
Raadpleeg de sectie Basic Direct3D 12 Component maken voor het meest elementaire onderdeel. In de volgende scenario's worden meer geavanceerde scenario's beschreven.
In deze sectie
Onderwerp | Beschrijving |
---|---|
D2D met D3D11on12 |
Het D3D1211on12 voorbeeld laat zien hoe u D2D-inhoud over D3D12-inhoud kunt weergeven door resources te delen tussen een apparaat op basis van 11 en een apparaat met 12. |
multi-engine n-body gravity simulatie |
Het D3D12nBodyGravity voorbeeld laat zien hoe u asynchroon rekenwerk kunt uitvoeren. Het voorbeeld draait een aantal threads elk met een wachtrij voor rekenopdrachten en plant rekenwerk op de GPU die een zwaartekrachtsimulatie n-lichaam uitvoert. Elke thread werkt op twee buffers vol positie- en snelheidsgegevens. Bij elke iteratie leest de compute-shader de huidige positie- en snelheidsgegevens uit de ene buffer en schrijft de volgende iteratie naar de andere buffer. Wanneer de iteratie is voltooid, wisselt de compute-shader welke buffer de SRV is voor het lezen van positie-/snelheidsgegevens en dit is de UAV voor het schrijven van positie/snelheidsupdates door de resourcestatus voor elke buffer te wijzigen. |
predicatiequery's |
Het D3D12PredicationQueries voorbeeld demonstreert occlusie-selectie met behulp van DirectX 12-query-heaps en predicatie. In het overzicht wordt de aanvullende code beschreven die nodig is om de HelloConstBuffer-voorbeeld uit te breiden voor het verwerken van predicatiequery's. |
dynamische indexering met HLSL 5.1 |
De D3D12DynamicIndexing voorbeeld laat enkele van de nieuwe HLSL-functies zien die beschikbaar zijn in Shader Model 5.1 , met name dynamische indexering en niet-gebonden matrices, om dezelfde mesh meerdere keren weer te geven, telkens wanneer het met een dynamisch geselecteerd materiaal wordt weergegeven. Met dynamische indexering kunnen shaders nu indexeren in een matrix zonder de waarde van de index tijdens het compileren te kennen. In combinatie met niet-gebonden matrices voegt dit een ander niveau van indirectie en flexibiliteit toe voor arceringsauteurs en kunstpijplijnen. |
indirect tekenen en GPU- |
In het voorbeeld D3D12ExecuteIndirect ziet u hoe u indirecte opdrachten gebruikt om inhoud te tekenen. Ook wordt gedemonstreerd hoe deze opdrachten kunnen worden gemanipuleerd op de GPU in een compute-shader voordat ze worden uitgegeven. |