Direct3D 12 Konzervatív Raszterizálás
A konzervatív raszterizálás némi bizonyosságot ad a képpontmegjelenítéshez, ami különösen az ütközésészlelési algoritmusok esetén hasznos.
- áttekintési
-
A folyamattal való interakciók
- Raszterizálási szabályok interakciós
- multisampling interakciós
- SampleMask interakciós
- Depth/Stencil Test interakciós
- Helper Pixel interakciós
- kimeneti lefedettség interakciója
- InputCoverage interakciós
- InnerCoverage interakciós
- attribútum interpolációs interakciója
- kivágási műveletek
- Clip Distance interakció
- Célfüggetlen raszterizációs interakció
- IA primitív topológia interakciós
- lekérdezések interakciós
- Cull State interakciós
- IsFrontFace interakciós
- Kitöltési módok interakciója
- Implementáció részletei
- API-összefoglaló
- Kapcsolódó témakörök
Áttekintés
A konzervatív raszterizálás azt jelenti, hogy a renderelt primitív által legalább részben lefedett összes képpont raszterizálva van, ami azt jelenti, hogy a képpontárnyékolót meghívja a rendszer. A normál viselkedés mintavételezés, amely nem használható, ha a konzervatív raszterizálás engedélyezve van.
A konzervatív raszterizálás számos helyzetben hasznos, többek között az ütközésészlelés, az elzáródási selejtezés és a csempés renderelés bizonyosságáért.
Az alábbi ábrán például egy zöld háromszög látható, amely konzervatív raszterizálással jelenik meg, ahogyan az a raszterizátorban is megjelenik (azaz 16,8 rögzített pont csúcspontkoordináta használatával). A barna terület úgynevezett "bizonytalansági régió" - egy fogalmi régió, amely a háromszög kiterjesztett határait jelöli, amely ahhoz szükséges, hogy a raszterizátor primitívje konzervatív legyen az eredeti lebegőpontos csúcspont koordinátái tekintetében. Az egyes csúcspontok piros négyzetei azt mutatják, hogyan számítja ki a bizonytalansági régiót: egy söpört négyzetként.
A nagy szürke négyzetek a renderelendő képpontokat jelenítik meg. A rózsaszín négyzetek a "Top-Left Szabály" használatával renderelt képpontokat jelenítik meg, amelyek akkor kerülnek játékba, amikor a háromszög széle átlépi a képpontok szélét. Lehetnek hamis pozitívak (olyan képpontok, amelyeknek nem kellett volna), amelyeket a rendszer általában, de nem mindig selejtezni fog.
Interakciók a folyamattal
Raszterizálási szabályok interakciója
Konzervatív Raszterizálási módban a Raszterizálási szabályok ugyanúgy érvényesek, mint amikor a konzervatív Raszterizálási mód nincs engedélyezve a fent leírt Top-Left szabály és a képpontlefedettség kivételeivel. 16.8 Fixed-Point Raszterizátor pontosságát kell használni.
Azok a képpontok, amelyek nem lennének lefedve, ha a hardver teljes lebegőpontos csúcspontkoordinátát használna, csak akkor vehetők fel, ha egy olyan bizonytalansági régióban vannak, amely nem nagyobb fél képpontnál a rögzített ponttartományban. A jövőbeli hardverek várhatóan elérik a 2. rétegben meghatározott, megszigorított bizonytalansági régiót. Vegye figyelembe, hogy ez a követelmény megakadályozza, hogy a sliver háromszögek a szükségesnél tovább terjednek.
Hasonló érvényes bizonytalansági régió vonatkozik a InnerCoverage
is, de szigorúbb, mivel egyetlen implementáció sem igényel nagyobb bizonytalansági régiót ebben az esetben. További részletekért lásd InnerCoverage interakciós.
A belső és külső bizonytalansági régióknak nagyobbnak vagy egyenlőnek kell lenniük, mint a képpont alatti rács fele, vagy a képpont 1/512-ének mérete a rögzített ponttartományban. Ez a minimális érvényes bizonytalansági régió. Az 1/512 a 16,8 rögzítettpontos Raszterizátor koordináta-ábrázolásból származik, valamint a lebegőpontos csúcspont koordinátáinak 16,8 rögzítettpont-koordinátákká való konvertálásakor alkalmazott ciklikusan legközelebbi szabályból. Az 1/512 változhat, ha a Raszterizátor pontossága megváltozik. Ha egy implementáció megvalósítja ezt a minimális bizonytalansági régiót, akkor a Top-Left szabályt kell követnie, amikor a bizonytalansági régió egy széle vagy sarka egy képpont széle vagy sarka mentén esik. A bizonytalansági régió levágott széleit a legközelebbi csúcspontként kell kezelni, ami azt jelenti, hogy két élnek számít: az a kettő, amely a társított csúcsponthoz csatlakozik. Top-Left Szabályra akkor van szükség, ha a minimális bizonytalansági régiót használja, mert ha nem, akkor a konzervatív raszterizálási implementáció nem tudja raszterizálni azokat a képpontokat, amelyeket a konzervatív raszterizálási mód letiltásakor lehet lefedni.
Az alábbi ábra egy érvényes külső bizonytalansági régiót szemléltet, amely a rögzített ponttartományban lévő primitív élei körül négyzetet söpört (azaz a csúcsokat a 16,8 rögzített pont ábrázolása számszerűsíti). A négyzet méretei a külső bizonytalansági régió érvényes méretén alapulnak: a képpont 1/2-ében a négyzet 1 képpont szélességű és magasságú, 1/512 képpontnál a négyzet 1/256 képpont szélességű és magasságú. A zöld háromszög egy adott primitívet jelöl, a piros pontozott vonal a túlbecsült konzervatív raszterizálás határát, a fekete négyzetek a primitív élek mentén söpört négyzetet jelölik, a kék kockás terület pedig a külső bizonytalansági régió:
Többampling-interakció
Függetlenül attól, hogy hány minta található RenderTarget/DepthStencil felületeken (vagy ForcedSampleCount van-e használatban), az összes mintát a konzervatív raszterizálással raszterizált képpontok fedik le. Az egyes mintahelyeket nem teszteljük, hogy a primitívek közé esnek-e.
SampleMask interakció
A SampleMask Rasterizer State ugyanúgy vonatkozik, mint amikor a konzervatív raszterizálás nincs engedélyezve InputCoverage
esetében, de nem érinti a InnerCoverage
(azaz nem és nem a InnerCoverage
által deklarált bemenetbe). Ennek az az oka, hogy InnerCoverage
nincs összefüggésben azzal, hogy az MSAA-minták maszkolva vannak-e: 0 InnerCoverage
csak azt jelenti, hogy a képpont nem garantáltan teljes mértékben lefedve van, nem pedig azt, hogy egyetlen minta sem lesz frissítve.
Mélységi/rajzsablontesztelési interakció
A mélység/rajzsablon tesztelése a konzervatív módon raszterizált képpontok esetében ugyanúgy folytatódik, mint ha az összes mintát lefedi, ha a konzervatív raszterizálás nincs engedélyezve.
Az összes érintett minta használata mélységi extrapolációt okozhat, amely érvényes, és a megadott nézethez kell rögzíteni, ha a konzervatív raszterizálás nincs engedélyezve. Ez hasonló ahhoz, mint amikor pixelfrekvenciás interpolációs módokat használnak egy RenderTarget 1-nél nagyobb mintaszámmal, bár konzervatív raszterezés esetén ez a mélységi érték, amely a rögzített függvénymélység-vizsgálatba kerül, amely extrapolálható.
A mélységi extrapoláció korai mélységi vágási viselkedése nincs meghatározva. Ennek az az oka, hogy egyes korai mélységű selejtezési hardverek nem támogatják megfelelően az extrapolált mélységi értékeket. A mélységi extrapoláció jelenlétében azonban a korai mélységi vágási viselkedés még az extrapolált mélységértékeket támogató hardverek esetén is problémás. Ez a probléma megkerülhető úgy, hogy a Pixel Shader bemeneti mélységét a raszterizált primitív minimális és maximális mélységi értékeihez szorítja, és ezt az értéket oDepth
(a képpontárnyékoló kimeneti mélységének regisztrálása) értékre írja. Ebben az esetben a korai mélységi selejtezés letiltásához implementációkra van szükség az írási oDepth
miatt.
Segítő képpontok interakciója
A Helper Pixel szabályai ugyanúgy érvényesek, mint amikor a konzervatív raszterizálás nincs engedélyezve. Ennek részeként az összes képpontnak, beleértve a Segítő képpontokat is, pontosan kell jelentenie InputCoverage
a InputCoverage
interakciós szakaszban megadott módon. A teljesen nem lefedett képpontok 0 lefedettséget jelentenek.
Kimeneti lefedettség interakciója
A kimeneti lefedettség (oMask
) a konzervatívan raszterizált képpontok esetében ugyanúgy viselkedik, mint amikor a konzervatív raszterizálás nem engedélyezve van az összes érintett mintával.
InputCoverage interakció
Konzervatív raszterizálási módban ez a bemeneti regiszter úgy van feltöltve, mintha minden minta lefedve van, ha a konzervatív raszterizálás nem engedélyezve van egy adott konzervatív raszterizált képpont esetében. Vagyis minden meglévő interakció érvényes (pl. SampleMask van alkalmazva), és az LSB-ből származó InputCoverage
első n bitjei 1 értékre vannak állítva egy konzervatívan raszterizált képponthoz, mivel az n minta képpontonként RenderTarget és/vagy DepthStencil puffert kötött a Kimeneti összevonási, vagy n mintát ForcedSampleCount. A többi bit 0.
Ez a bemenet a konzervatív raszterizálástól függetlenül elérhető egy árnyékolóban, bár a konzervatív raszterizálás megváltoztatja a viselkedését, hogy csak az összes érintett mintát jelenítse meg (vagy a Segítő képpontok esetében egyiket sem).
InnerCoverage interakció
Ezt a funkciót a 3. réteg megköveteli, és csak a 3. rétegben érhető el. A futtatókörnyezet nem fog árnyékolót létrehozni azoknál az árnyékolóknál, amelyek ezt a módot használják, ha egy implementáció a 3. szintnél kisebb réteget támogat.
A Pixel Shader 32 bites skaláris egész számrendszer-generáló értékkel rendelkezik: InnerCoverage
. Ez egy olyan bitmező, amelynek 0 bitje az LSB-ből 1 értékre van állítva egy adott konzervatívan raszterizált képponthoz, csak akkor, ha ez a képpont garantáltan teljes egészében a jelenlegi primitívben van. Minden más bemenetiregisztrátor-bitet 0 értékre kell állítani, ha a 0. bit nincs beállítva, de a 0. bit értéke 1 (ez a bitmező lényegében egy logikai értéket jelöl, ahol a hamisnak pontosan 0-nak kell lennie, de az igaz lehet bármilyen páratlan (azaz 0. bitkészlet) nem nulla érték. Ez a bemenet az alulbecsült konzervatív raszterizálási információkhoz használatos. Tájékoztatja a Pixel Shadert, hogy az aktuális képpont teljesen a geometrián belül helyezkedik-e el.
Ennek figyelembe kell vennie a illesztési hibát az aktuális rajzot működtető felbontásnál nagyobb vagy egyenlő felbontásnál. Nem lehetnek hamis pozitív értékek (InnerCoverage
bitek beállítása, ha a képpontot nem fedi le teljes mértékben az aktuális rajzot működtető felbontásnál nagyobb vagy egyenlő felbontásnál felmerülő illesztési hiba), de a hamis negatív értékek engedélyezettek. Összefoglalva, az implementáció nem azonosíthatja helytelenül a teljes mértékben lefedett képpontokat, amelyek nem lennének teljes lebegőpontos csúcspont koordinátákkal a Rasterizerben.
Azokat a képpontokat, amelyek teljes mértékben lefednék, ha a hardver teljes lebegőpontos csúcspontkoordinátát használna, csak akkor hagyhatók ki, ha a belső bizonytalansági régiót metszik, amely nem lehet nagyobb, mint a képpont alatti rács mérete, vagy egy képpont 1/256-a a rögzített ponttartományban. Másként fogalmazva, a képpontokat teljes mértékben a belső bizonytalansági régió belső határán belül teljes mértékben lefedettként kell megjelölni. A bizonytalansági régió belső határát az alábbi ábrán a félkövér fekete pontozott vonal szemlélteti. Az 1/256 a 16,8 rögzítettpontos Raszterizátor koordináta-ábrázolásból származik, amely a Raszterizátor pontosságának változása esetén változhat. Ez a bizonytalansági régió elegendő ahhoz, hogy figyelembe vehesse a lebegőpontos csúcspont koordinátáinak a Raszterizer rögzített csúcspont koordinátáira való konvertálása által okozott illesztési hibát.
A Raszterizálási szabályok interakciójában meghatározott 1/512 minimális bizonytalansági régióra vonatkozó követelmények itt is érvényesek.
Az alábbi ábra egy érvényes belső bizonytalansági régiót szemléltet, amely a rögzített pont tartományában lévő primitív élei körül négyzetet söpört (azaz a csúcsokat a 16,8 rögzítettpont-ábrázolással számszerűsítették). A négyzet méretei a belső bizonytalansági régió érvényes méretén alapulnak: egy képpont 1/256-ában a négyzet a képpont szélességének és magasságának 1/128-a. A zöld háromszög egy adott primitívet jelöl, a félkövér fekete pontozott vonal a belső bizonytalansági régió határát jelöli, a fekete négyzetek a primitív élek mentén söpört négyzetet, a narancssárga kockás terület pedig a belső bizonytalansági régió:
A InnerCoverage
használata nem befolyásolja, hogy a képpontok konzervatív raszterizáltak-e, azaz az ilyen InputCoverage
módok egyikének használata nem befolyásolja, hogy mely képpontok legyenek raszterizálva, ha a konzervatív raszterizálási mód engedélyezve van. Ezért ha InnerCoverage
használ, és a Pixel Shader olyan képpontot dolgoz fel, amelyet nem fed le teljesen a geometria, az értéke 0 lesz, de a Pixel Shader meghívása frissített mintákat fog kapni. Ez eltér a InputCoverage
0-tól, ami azt jelenti, hogy nem frissülnek a minták.
Ez a bemenet kölcsönösen kizárja a InputCoverage
: mindkettő nem használható.
A InnerCoverage
eléréséhez egyetlen összetevőként kell deklarálni az egyik Pixel Shader bemeneti regiszterből. A deklaráció interpolációs módjának állandónak kell lennie (az interpoláció nem alkalmazható).
A InnerCoverage
bitmezőt nem befolyásolják a mélységi/rajzsablon-tesztek, és a SampleMask Raszterizer állapota sem.
Ez a bemenet csak konzervatív Raszterizációs módban érvényes. Ha a konzervatív raszterizálás nincs engedélyezve, InnerCoverage
meghatározatlan értéket hoz létre.
A Helper Pixels szükséglete által okozott Pixel Shader-hívásokat, de a primitív nem fedi le, a InnerCoverage
-regisztrációnak 0-ra kell állítania.
Attribútum interpolációs interakciója
Az attribútum-interpolációs módok változatlanok, és ugyanúgy haladnak tovább, mint amikor a konzervatív raszterizálás nincs engedélyezve, ahol a nézetport skálázott és rögzített ponttal konvertált csúcsokat használ. Mivel egy konzervatívan raszterizált képpontban lévő összes mintát lefedettnek tekintünk, az értékek extrapolálásakor érvényes, hasonlóan ahhoz, mint amikor a képpontfrekvenciás interpolációs módokat egy RenderTarget 1-nél nagyobb mintaszámmal használják. A centroid interpolációs módok a megfelelő nem centroid interpolációs móddal azonos eredményeket eredményeznek; a centroid fogalma ebben a forgatókönyvben értelmetlen – ahol a minta lefedettsége csak teljes vagy 0.
A konzervatív raszterizálás lehetővé teszi, hogy a degenerált háromszögek Pixel Shader-hívásokat generáljanak, ezért a degenerált háromszögeknek az összes interpolált értékhez a 0. csúcshoz rendelt értékeket kell használniuk.
Kivágási műveletek
Ha a konzervatív raszterizálási mód engedélyezve van, és a mélységi klip le van tiltva (ha a DepthClipEnable Raszterizer State értéke FALSE), előfordulhat, hogy a 0 <= z <= w tartományon kívül eső primitív szegmensek attribútum-interpolációjában varianciák jelennek meg a megvalósítástól függően: vagy állandó értékeket használnak attól a ponttól kezdve, ahol a primitív metszi a megfelelő síkot (közel vagy távol), vagy az attribútum interpolációja úgy viselkedik, mint amikor a konzervatív raszterizálási mód le van tiltva. A mélységérték viselkedése azonban a konzervatív raszterizálási módtól függetlenül ugyanaz, azaz a mélységi tartományon kívül eső primitíveknek továbbra is meg kell adni a nézetmélység-tartomány legközelebbi korlátjának értékét. Az attribútum interpolációs viselkedésének a 0 <= z <= w tartománynak változatlannak kell maradnia.
Klip távolságának interakciója
A clip Distance akkor érvényes, ha a konzervatív raszterizálási mód engedélyezve van, és a konzervatívan raszterizált képpontok esetében ugyanúgy viselkedik, mint amikor a konzervatív raszterizálás nem engedélyezve van az összes érintett mintával.
Vegye figyelembe, hogy a konzervatív raszterizálás a W csúcskoordináta extrapolációját okozhatja, ami W <= 0-t okozhat. Ez azt okozhatja, hogy a képpontonkénti clip Distance-implementációk olyan kliptávolságon működnek, amely perspektíva szerint el van osztva érvénytelen W értékkel. A Clip Distance implementációknak védenie kell a raszterizálást olyan képpontok esetében, ahol a csúcspont koordináta W <= 0 (például a konzervatív raszterizációs módban történő extrapoláció miatt).
Célfüggetlen raszterizációs interakció
A konzervatív raszterizálási mód kompatibilis a Target Independent Rasterization (TIR) funkcióval. A TIR-szabályok és korlátozások érvényesek, a konzervatív módon raszterizált képpontokra úgy viselkednek, mintha az összes minta lefedve lenne.
IA primitív topológia interakciója
A konzervatív raszterizálás nincs definiálva vonal- vagy pontprimitívekhez. Ezért a pontokat vagy vonalakat meghatározó primitív topológiák nem definiált viselkedést eredményeznek, ha a raszterizátor egységbe táplálják őket, amikor a konzervatív raszterizálás engedélyezve van.
A hibakeresési réteg ellenőrzése ellenőrzi, hogy az alkalmazások nem használják ezeket a primitív topológiákat.
Lekérdezések interakciója
A konzervatív módon raszterizált képpontok esetében a lekérdezések ugyanúgy viselkednek, mint amikor a konzervatív raszterizálás nincs engedélyezve az összes minta lefedésekor. A konzervatív raszterizált képpontok esetében például a D3D12_QUERY_TYPE_OCCLUSION és a D3D12_QUERY_TYPE_PIPELINE_STATISTICS (D3D12_QUERY_TYPE) ugyanúgy kell viselkednie, mint amikor a konzervatív raszterizálás nincs engedélyezve az összes minta lefedésekor.
A Képpontárnyékoló meghívásainak a konzervatív raszterizálási módban minden konzervatív módon raszterizált képpontra növekményesnek kell lennie.
A selejtezési állapot interakciója
Minden Cull állam érvényes konzervatív raszterizálási módban, és ugyanazokat a szabályokat követi, mint amikor a konzervatív raszterizálás nincs engedélyezve.
Ha a konzervatív raszterizálást hasonlítja össze önmagával vagy anélkül, hogy a konzervatív raszterizálás engedélyezve lenne, fennáll annak a lehetősége, hogy egyes primitívek eltérő arcot használnak (például az egyik háttal szemben, a másik előtérben). Az alkalmazások elkerülhetik ezt a bizonytalanságot a D3D12_CULL_MODE_NONE (D3D12_CULL_MODE) használatával, és nem a IsFrontFace
rendszer által generált érték használatával.
IsFrontFace-interakció
A IsFrontFace
rendszer által generált érték konzervatív raszterizálási módban használható, és követi a konzervatív raszterezés engedélyezésekor definiált viselkedést.
Kitöltési módok interakciója
A konzervatív raszterizáláshoz az egyetlen érvényes D3D12_FILL_MODE a D3D12_FILL_SOLID, a többi kitöltési mód érvénytelen paraméter a Raszteres állapothoz.
Ennek az az oka, hogy a D3D12 funkcionális specifikációja azt határozza meg, hogy a drótvázkitöltési módnak át kell alakítania a háromszög széleit vonalakká, és követnie kell a vonal raszterizálási szabályait, és a konzervatív vonal raszterizálási viselkedése nincs meghatározva.
Megvalósítás részletei
A Direct3D 12-ben támogatott raszterizálás típusát néha "túlbecsült konzervatív raszterizálásnak" is nevezik. Létezik az "alábecsült konzervatív raszterizálás" fogalma is, ami azt jelenti, hogy csak a renderelt primitív által teljes mértékben lefedett képpontok vannak raszterizálva. Az alulbecsült konzervatív raszterizálási információk a képpontárnyékolón keresztül érhetők el a bemeneti lefedettségi adatok használatával, és csak a túlbecsült konzervatív raszterizálás érhető el raszterizálási módként.
Ha egy primitív része átfedésben van egy képponttal, akkor a képpontot lefedettnek tekintik, majd raszterizálják. Ha egy primitív él vagy sarok egy képpont széle vagy sarka mentén esik, a "bal felső szabály" alkalmazása implementációspecifikus. A háromszögek degenerálását támogató implementációk esetében azonban egy elfajuló háromszögnek egy él vagy sarok mentén legalább egy képpontot kell lefednie.
A konzervatív raszterizálási implementációk különböző hardvereken változhatnak, és hamis pozitívumokat eredményeznek, ami azt jelenti, hogy helytelenül dönthetnek a képpontok lefedéséről. Ez olyan implementációspecifikus részletek miatt fordulhat elő, mint a raszterizálás során használt rögzített csúcspont koordinátáiban rejlő primitív növekvő vagy illesztési hibák. A hamis pozitív értékek (a rögzített pont csúcskoordinátái tekintetében) azért érvényesek, mert bizonyos mennyiségű hamis pozitív értékre van szükség ahhoz, hogy egy implementáció elvégezhesse a lefedettség kiértékelését a utólagos csúcspontokon (azaz a lebegőpontból a raszterizátorban használt 16,8 rögzített pontra konvertált csúcspont koordinátái), de tiszteletben kell tartania az eredeti lebegőpontos csúcspont koordinátái által előállított lefedettséget.
A konzervatív raszterizálási implementációk nem eredményeznek hamis negatívumokat a nem degenerált, pillanatkép utáni primitívek lebegőpontos csúcspont-koordinátái tekintetében: ha egy primitív rész bármelyik része átfedésben van egy képpont bármely részével, akkor a képpont raszterizálva lesz.
Azok a háromszögek, amelyek degenerálódnak (indexpufferben ismétlődő indexek vagy 3D-ben kollineáris indexek), vagy a rögzített pontváltás után degenerálódnak (kollineáris csúcsok a raszterizátorban), selejtezhetők; mindkettő érvényes viselkedés. A degenerált háromszögeket visszafelé nézőnek kell tekinteni, így ha egy alkalmazás egy adott viselkedést igényel, akkor használhatja a hátlapi vágást vagy az elülső irányú tesztelést. A degenerált háromszögek a 0. csúcshoz rendelt értékeket használják az összes interpolált értékhez.
A hardvertámogatásnak három szintje van, azon kívül, hogy a hardver nem támogatja ezt a funkciót.
- Az 1. réteg legfeljebb 1/2 képpontos bizonytalansági régiót kényszerít ki, és nem támogatja a dokkolás utáni degenerációkat. Ez jó a csempézett rendereléshez, a textúra-atlaszhoz, a fénytérkép létrehozásához és a képpont alatti árnyéktérképekhez.
- A 2. réteg 1/256-ra csökkenti a maximális bizonytalansági régiót, és megköveteli, hogy a beépülő modul utáni degenerációk ne legyenek levágva. Ez a szint hasznos a CPU-alapú algoritmusok gyorsításához (például a voxelizációhoz).
- A 3. réteg legfeljebb 1/256 bizonytalansági régiót tart fenn, és támogatja a belső bemeneti lefedettséget. A belső bemeneti lefedettség hozzáadja az új
SV_InnerCoverage
értéket a magas szintű árnyékolási nyelvhez (HLSL). Ez egy 32 bites skaláris egész szám, amely megadható a képpontárnyékoló bemenetén, és az alábecsült konzervatív raszterizálási információkat (vagyis azt, hogy egy képpont garantált-e,to-be-teljes mértékben lefedve). Ez a szint hasznos az occlusion culling esetében.
API-összefoglalás
A következő módszerek, struktúrák, enumerációk és segédosztályok a konzervatív raszterizálásra hivatkoznak:
- D3D12_RASTERIZER_DESC: a raszterizátor leírását tartalmazó szerkezet.
- D3D12_CONSERVATIVE_RASTERIZATION_MODE: a mód értékeinek számbavétele (be- vagy kikapcsolva).
- D3D12_FEATURE_DATA_D3D12_OPTIONS: a támogatási szintet tartalmazó struktúra.
- D3D12_CONSERVATIVE_RASTERIZATION_TIER: a hardver által támogatott szintek értékeinek számbavétele.
- CheckFeatureSupport: metódus a támogatott funkciók eléréséhez.
- CD3DX12_RASTERIZER_DESC: segédosztály a raszterizátor leírásainak létrehozásához.
Kapcsolódó témakörök