Pixel historie grafiky
Okno Historie pixelu grafiky, jeden z nástrojů diagnostiky grafiky v aplikaci Visual Studio, vám může pomoci pochopit, jak konkrétní pixel ovlivnil události Direct3D během určitého snímku hry nebo aplikace.
Toto je okno Historie pixelu grafiky:
Principy historie pixelu
Pomocí okna Historie pixelů grafiky můžete analyzovat, jakým způsobem je určitý pixel cíle vykreslení ovlivněn událostmi Direct3D během určitého rámce.Můžete zdůraznit problém vykreslování zvláštní události rozhraní Direct3D, i když následující podřazené události nebo podřazené primitivní prvky ve stejné události nadále změní hodnotu konečné barvy pixelu.Například, pixel může být renderován nesprávně a zkreslen jiným, polotransparentním pixelem, tak, aby se jejich barvy spojily v bufferu rámce.Tento druh problému může být obtížné diagnostikovat, pokud jste měli k procházení pouze konečný obsah cíle vykreslení.
Okno Historie pixelu grafiku zobrazuje kompletní historii pixelu v průběhu vybraného snímku.Položka Konečná vyrovnávací paměť snímku v horní části okna zobrazí barvu, která je zapsána do mezipaměti snímků na konci snímku, společně s dalšími údaje o pixelu jako snímek, ze kterého pochází a jeho souřadnic obrazovky.Tato oblast obsahuje také zaškrtávací políčko Vykreslení alfa.Pokud je toto políčko zaškrtnuto, barva vyrovnávací paměti výsledného snímku a hodnota mezilehlé barvy se zobrazí s průhledností přes šachovnicový vzor.Pokud je zaškrtnutí políčka zrušeno, alfa kanál barevných hodnot je ignorován.
Dolní část okna zobrazuje události, které mají vliv na barvu pixelu, společně s počátečními a koncovými pseudoudálostmi, které představují hodnoty počáteční a konečné barvy pixelu v mezipaměti snímků.Hodnota počáteční barva je určena první událost, která se změnila barva obrazového bodu (obvykle Clear události).Obrazový bod má vždy tyto dvě pseudoudálosti v jeho historii, i když jej žádné jiné události neovlivňují.Pokud mají jiné události možnost ovlivnit pixel, jsou zobrazeny mezi událostmi Počáteční a Konečné.Události lze rozbalit, aby zobrazily své podrobnosti.Pro jednoduché události jako ty, kdy zrušíte renderovaný cíl, je efektem události pouze hodnota barvy.Složitější události, například volání draw, generují jedno nebo více primitiv, která mohou přispívat k barvě obrazového bodu.
Základní tvary, které byly nakresleny událostí, jsou identifikovány podle jejich typu základního tvaru spolu s celkovým počtem základních tvarů objektu.Například identifikátor, jako trojúhelník (1456) z (6214) znamená, že základ odpovídá 1456. trojúhelníku v objektu, který je tvořen 6214 trojúhelníky.Nalevo od každého primitivní identifikátoru je ikona, která shrnuje efekt, který primitivní funkce měla na pixel.Základní tvary ovlivňující barvu obrazového bodu je zastoupen zaobleným obdélníkem, který je vyplněn výslednou barvou.Základní tvary, které jsou vyloučeny z toho, aby měly vliv na barvu obrazového bodu, jsou zastoupeny ikonami, které označují důvod toho, proč byl obrazový bod vyloučen.Tyto ikony byly popsány v části Vyloučení základního tvaru dále v tomto článku.
Můžete rozbalením každé primitivní funkce zkoumat, jak byl výstup shaderu pixelu sloučen s existujícími barvami pixelu k tvorbě výsledné barvy.Zde můžete také zkoušet nebo provádět ladění kódu pixelového shaderu přidruženého k základu a můžete dále rozšiřovat vertexový vrchol shadere a zkoušet tak vstup vertexového shaderu.
Vyloučení základního tvaru
Pokud je základ vyloučen z ovlivňování barvy obrazového bodu, k vyloučení může dojít z mnoha důvodů.Každý důvod je vyjádřen ikonou, která je popsána v této tabulce:
Ikona |
Důvod pro vyloučení |
---|---|
Obrazový bod byla vyloučen, protože se nezdařil test zkušební hloubky. |
|
Obrazový bod byla vyloučen, protože se nezdařil test střihu. |
|
Obrazový bod byla vyloučen, protože se nezdařil test šablony. |
Kreslení volání vyloučení
Pokud všechny prvky při kreslení volání jsou vyloučeny z ovlivnění cíl vykreslení, protože nesplní test draw volání nelze rozbalit a zobrazí se vedle ní ikonu, která odpovídá důvod pro vyloučení.Důvody pro vyloučení draw volání podobné důvody pro vyloučení primitivní a jejich ikony jsou podobné.
Zobrazení a ladění kódu shaderu
Můžete zobrazit kód Vertex Shader, Shader trupu, Shader domény, Shader geometrie nebo Pixel Shader nebo ladění pomocí ovládacích prvků primitivního typu níže, které jsou přidruženy k shaderu.
Postup zobrazení zdrojového kódu shaderu
- Pod primitivem přidruženým k shaderu, který chcete zobrazit, zvolte název shaderu – například Vertex Shader, a zobrazte zdrojový kód vertex shaderu.
Ladění shaderu
- Pod primitivem přidruženým k shaderu, který chcete ladit, vpravo od názvu shaderu, zvolte možnost Spustit ladění.
Odkazy na grafické objekty
Pokud chcete porozumět grafice události v historii pixelu, bude pravděpodobně nutné získat informace o stavu zařízení v okamžiku události nebo objekty Direct3D, které odkazují na událost.Pro každou událost v historii obrazových bodů Historie obrazových bodů grafiky se zobrazují odkazy na tehdejší aktuální stav zařízení a na související objekty.
Viz také
Úkoly
Názorný postup: Chybí objekty kvůli stavu zařízení
Názorný postup: Ladění vykreslování chyby způsobené stínování