Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
DirectX 12 introduceert de volgende versie van Direct3D: de 3D-grafische API in het hart van DirectX. Direct3D 12 is sneller en efficiënter dan een eerdere versie. Direct3D 12 maakt rijkere scènes, meer objecten, complexere effecten en volledig gebruik van moderne GPU-hardware mogelijk.
Hoe kan Direct3D 12 veel sneller en efficiënter zijn?
Direct3D 12 is uniek omdat het een lager hardwareabstractieniveau biedt dan in eerdere versies, waardoor u de CPU-schaal met meerdere kernen van uw titel (of andere toepassing) aanzienlijk kunt verbeteren. Om te beginnen, met Direct3D 12, is uw applicatie verantwoordelijk voor zijn eigen geheugenbeheer. Bovendien profiteren uw titels en toepassingen van Direct3D 12 door middel van beperkte GPU-overhead via functies zoals opdrachtwachtrijen en lijsten, descriptortabellenen beknopte pijplijnstatusobjecten.
Direct3D 12 en Direct3D 11.3 introduceren een set nieuwe functies voor de rendering-pijplijn.
- Conservatieve rasterisering om betrouwbare hitdetectie mogelijk te maken.
- Volume-tegelresources om gestreamde driedimensionale resources te laten behandelen alsof ze allemaal in het videogeheugen waren.
- Rasterizer geordende weergaven om betrouwbare transparantieweergave mogelijk te maken.
- De stencilverwijzing instellen in een shader om speciale schaduwwerking en andere effecten mogelijk te maken.
- Verbeterde textuurmapping en getypte niet-geordende toegangsweergave (UAV) ladingen.
Hoe diep moet ik investeren in Direct3D 12?
Direct3D 12 biedt vier belangrijke voordelen voor grafische ontwikkelaars (vergeleken met Direct3D 11).
- Sterk verminderde CPU-overhead.
- Aanzienlijk verminderd energieverbruik.
- Tot (ongeveer) 20% verbetering in de efficiëntie van de GPU.
- Platformoverschrijdende ontwikkeling voor een Windows 10-apparaat (pc, tablet, console, mobiel).
Direct3D 12 is ontworpen voor geavanceerde grafische programmeurs die ze kunnen gebruiken. Het vraagt om aanzienlijke grafische expertise en een hoog niveau van afstemming. Direct3D 12 is ontworpen om volledig gebruik te maken van multithreading, zorgvuldige CPU/GPU-synchronisatie en de overgang en het hergebruik van resources van het ene doel naar het andere. Dit zijn technieken die een aanzienlijke hoeveelheid programmeervaardigheden op geheugenniveau vereisen.
Een ander voordeel dat Direct3D 12 heeft, is de kleine API-footprint. Er zijn ongeveer 200 functies; en ongeveer een derde van die doen al het zware werk. Dat betekent dat u als grafische ontwikkelaar de volledige API-set moet kunnen leren kennen zonder dat u te veel API-namen hoeft te onthouden.
Direct3D 11 blijft een haalbare optie naast Direct3D 12. Veel van de nieuwe renderingfuncties van Direct3D 12 zijn beschikbaar in Direct3D 11.3. Direct3D 11.3 is een grafische engine-API op laag niveau; en Direct3D 12 gaat nog dieper.
Er zijn ten minste twee manieren waarop uw ontwikkelteam een Direct3D 12-titel kan benaderen.
Direct3D 12 uitsluitend gebruiken
Voor een project dat uiteindelijk profiteert van alle voordelen van Direct3D 12, moet u een zeer aangepaste Direct3D 12-motor ontwikkelen vanaf de grond.
Als u, als grafische ontwikkelaar, inzicht hebt in het gebruik en hergebruik van resources binnen uw titels en u hiervan kunt profiteren door uploaden en kopiëren te minimaliseren, kunt u een zeer efficiënte engine voor deze titels ontwikkelen en aanpassen. De prestatieverbeteringen kunnen zeer aanzienlijk zijn, waardoor de CPU-tijd wordt vrijgemaakt om het aantal draw calls te verhogen en zo meer glans toe te voegen aan uw afbeeldingen.
De programmeringsinvestering is aanzienlijk, en u moet vanaf het begin overwegen om fouten op te sporen en het project te instrumenteren. Threading, synchronisatie en andere timingfouten kunnen lastig zijn.
Direct3D 12 gebruiken in concert met Direct3D 11
Een kortetermijnbenadering zou zijn om bekende knelpunten in uw Direct3D 11-titel aan te pakken. U kunt deze aanpakken met behulp van Direct3D 12-interoperabiliteit en/of D3D11On12 technieken, waardoor de twee API-versies samenwerken. Deze aanpak minimaliseert de wijzigingen die nodig zijn voor een bestaande Direct3D 11-grafische engine. De prestatieverbeteringen worden echter beperkt tot de verlichting van het knelpunt dat door de Direct3D 12-code wordt aangepakt.
Video's voor Microsoft DirectX 12 (en grafisch onderwijs)
Uitgebreid onderwijs voor grafische ontwikkelaars. Deze video's hebben betrekking op onderwerpen zoals presentatiemodi, overzetten naar DirectX 12, conservatieve rasterisering, grafische hulpmiddelen, Hoek, Win2D en gebeurtenissen zoals GDC, Build en meer. Technische DirectX 12-inhoud wordt voorafgegaan door DirectX 12. Kom hier voor meer informatie over tips en trucs rechtstreeks van het Direct3D 12-functieteam. We willen u helpen onze nieuwste releases en hulpprogramma's te gebruiken om uw game het beste te maken!
Conclusie
Direct3D 12 draait allemaal om dramatische prestaties van de grafische engine. Het gemak van ontwikkeling, constructies op hoog niveau en compilerondersteuning zijn terug geschaald om dit mogelijk te maken. Ondersteuning voor stuurprogramma's en het gemak van foutopsporing blijven gelijk aan Direct3D 11.
Direct3D 12 is nieuw gebied. Gebied dat wacht op de inquisitieve expert om te komen verkennen.