Jak: vytvoření přechodu Shader založené na geometrii
Tento dokument demonstruje použití Návrháře shaderu a jazyka DGSL (Directed Graph Shader Language) k tvorbě shaderu založeném na geometrickém přechodu.Tento shader škáluje konstantní hodnotu výšky barvy RGB výškou každého bodu objektu v globálním prostoru.
Tento dokument vysvětluje tyto činnosti:
Přidání uzlů do grafu shaderu
Nastavení vlastností uzlu
Odpojení uzlů
Připojování uzlů
Vytvoření shaderu přechodu založeného na geometrii
Začleněním polohu obrazového bodu do vaši clonu lze implementovat shader založené na geometrii.V jazyce stínování pixel obsahuje více informací než pouze její barvu a umístění na obrazovce 2D.O jeden bod – známý jako fragment v některých systémech – je sada hodnot, které popisují povrch, který odpovídá na obrazový bod.Shader, která je popsána v tomto dokumentu používá výšku každého obrazového bodu 3D objektu v prostoru světa ovlivnit konečné výstupní barva ve fragmentu.
Než začnete, ujistěte se, že Vlastnosti okna a nástrojů jsou zobrazeny.
Vytvoření přechodu shaderu založeného na geometrii
Vytvořte DGSL shader, který má pracovat.Chcete-li zobrazit informace o tom, jak přidat do projektu DGSL clony, naleznete v části Začínáme v Shader Designer.
Odpojit Barva bodu uzel z Konečnou barvu uzlu.Zvolte RGB z terminálu Barva bodu uzlu a pak zvolte Přerušit odkazy.Tím se prostor pro uzel, který je přidán v dalším kroku.
Přidejte do grafu uzel Násobit.V nabídce Panel nástrojů pod položkou Matematika vyberte možnost Násobit a přesuňte ji na plochu návrhu.
Přidejte do grafu uzel Vektor masky.V nabídce Panel nástrojů pod položkou Nástroj vyberte možnost Vektor masky a přesuňte ji na plochu návrhu.
Určete hodnoty masky uzlu Vektorová maska.V Vyberte režimu, vyberte Vektorové masky uzlu a pak v Vlastnosti okno, nastavit Zelená / Y vlastnost Truea poté nastavte Červená / X, modré / Z a alfa / W vlastnosti False.V tomto příkladu Červená / X, Zelená / Y, a modrá / Z vlastnosti odpovídají x, y a z části Pozici Světové uzlu, a alfa / W se nepoužívá.Protože pouze Zelená / Y je nastavena na True, zůstane pouze součásti y vstupní vektor poté, co je maskován.
Přidejte do grafu uzel Globální pozice.V nabídce Panel nástrojů pod položkou Konstanty vyberte možnost Globální pozice a přesuňte ji na plochu návrhu.
Maskujte globální pozici fragmentu.V režimu Výběr přesuňte koncový uzel Výstup z uzlu Globální pozice do koncového uzlu Vektor z uzlu Vektor masky.Toto připojení kryje pozici fragmentu, aby byly ignorovány komponenty x a z.
Vynásobte konstantu barvy RGB maskovanou globální pozicí.Přesunout RGB terminálu z Barva bodu uzel Y z terminálu Násobit uzel a potom přesunout výstup terminálu z Vektorové masky uzlu tak, aby X terminálu z Násobit uzlu.Toto připojení nastaví hodnotu barvy výška obrazových bodů v prostoru světa.
Připojte odstupňovanou hodnotu barvy k výsledné barvě.Přesunout výstup z terminálu Násobit uzel RGB z terminálu Konečnou barvu uzlu.
Následující obrázek znázorňuje dokončení grafu shaderu a náhled shaderu aplikovaného na kouli.
[!POZNÁMKA]
Na tomto vyobrazení byla určena oranžová barva pro lepší znázornění efektu shaderu, ale protože náhled obrazce nemá žádnou pozici v globálním prostoru, nelze zobrazit plný náhled shaderu v návrháři shaderu.V reálné scéně musí být Shader k předvedení úplného účinku zobrazen v náhledu.
Některé tvary mohou poskytnout lepší náhledy pro některé shadery.Informace o tom, jak zobrazit náhled shadery v Návrháři shaderu naleznete v tématu shadery Previewing vShader Designer
Následující obrázek znázorňuje shader, který je popsán v tomto dokumentu při použití na scénu 3D modelu, která je znázorněna v části Jak: Model základní prostorové scény.Intenzita barvy roste s globální výškou bodu.
Další informace o použití shaderu na 3D model naleznete zde: Jak: použití shaderu 3D modelu.
Viz také
Úkoly
Jak: použití shaderu 3D modelu
Jak: Model základní prostorové scény
Jak: vytvoření Shader textury ve stupních šedi