Shader Návrhář uzly
Články v této části dokumentace obsahují informace o různých uzlech návrháře shaderu, které můžete použít k tvorbě grafických efektů.
Uzly a typy uzlů
Návrhář Shaderu znázorňuje vizuální efekty jako graf.Tyto grafy jsou vytvořeny z uzlů, které byly specificky vybrány a připojeny přesným způsobem k dosažení zamýšleného vlivu.Každý uzel představuje část informace nebo matematické funkce a spojení mezi nimi představují, jak informace procházejí grafem a vytvářejí požadovaný výsledek.Návrhář Shaderu nabízí šest různých typů uzlů – filtry, textury uzlů, parametry, konstanty, uzly nástrojů a matematické uzly – a několik jednotlivých uzlů patřících do každého typu.Tyto uzly a typy uzlů, které jsou popsány v jiných článcích této části – naleznete v odkazech na konci tohoto dokumentu.
Struktura uzlu
Všechny uzly jsou tvořeny kombinací běžných prvků.Každý uzel má alespoň jeden výstupní terminál na pravé straně (s výjimkou uzlu konečné barvy, který představuje výstup shaderu).Uzly, které představují výpočty nebo samplery textur, mají vstupní koncové uzly na své levé straně, ale uzly představující informace nemají žádné vstupní koncové uzly.Výstupní terminály jsou připojeny ke vstupním terminálům, aby mohly přesouvat informace z jednoho uzlu do jiného.
Propagace vstupů
Protože Shader Designer musí nakonec generovat zdrojový kód HLSL, aby bylo možné efekt použít v aplikaci nebo hře, uzly Shader Designer nepodléhají pravidlům pro propagaci typu, která používá HLSL.Protože grafický hardware pracuje především s hodnotami s plovoucí desetinnou čárkou, propagace typu mezi různými typy – například z int na float nebo z float na double – je neobvyklá.Protože grafický hardware používá stejnou operaci pro více informací současně, může dojít k jinému druhu použití, ve kterém je kratší ze vstupů prodloužen tak, aby odpovídal velikosti nejdelšího vstupu.Prodloužení závisí na typu vstupu a také na samotné operaci:
Pokud menší typ je skalární hodnota, pak:
Do vektoru, který se rovná velikosti většího vstupu je replikována skalární hodnota.Například, pokud je největší vstup operace vektor o třech prvcích, skalární vstup 5.0 se stává vektorem (5.0, 5.0, 5.0), a to bez ohledu na operaci.
Pokud je menší typ vektor a operace je násobení nebo dělení (*, /, % atd), pak:
Hodnota vektoru je zkopírována do úvodních prvků vektoru, který je roven velikosti většího vstupu a koncové prvky jsou nastaveny na 1.0.Například, vstupní vektor (5.0, 5.0) se stává vektorem (5.0, 5.0, 1.0, 1.0), pokud je vynásoben čtyřprvkovým vektorem.Tím budou zachovány prvky třetího a čtvrtého výstupu pomocí multiplikativní identity 1.0.
Pokud je menší typ vektor a operace je sčítání nebo odečítání (+, - atd), pak:
Hodnota vektoru je zkopírována do úvodních prvků vektoru, který je roven velikosti většího vstupu a koncové prvky jsou nastaveny na 0.0.Například, vstupní vektor (5.0, 5.0) se stává vektorem (5.0, 5.0, 0.0, 0.0), pokud je přidán do čtyřprvkového vektoru.Tím budou zachovány prvky třetího a čtvrtého výstupu pomocí doplňkové identity 0.0.
Příbuzná témata
Title |
Description |
---|---|
Popisuje uzly, které lze použít k vyjádření literálových hodnot a interpolovaných informací stavu vrcholu ve výpočtech shaderu.Protože stav vrcholu je interpolovaný – a proto je jiný pro každý pixel – každá instance pixel shaderu obdrží jinou verzi konstanty. |
|
Popisuje uzly, které lze použít k vyjádření polohy kamery, vlastností materiálu, parametrů osvětlení, času a jiných informací o stavu aplikace ve výpočtech shaderu. |
|
Popisuje uzly, které lze použít k ukázkám různých typů a geometrií textur a k vytváření či transformování souřadnice textur obvyklými způsoby. |
|
Popisuje uzly, které lze použít k provedení algebraických, logických, trigonometrických a jiných matematických operací, které jsou přímo mapovány na pokyny HLSL. |
|
Popisuje uzly, které lze použít k provedení obecných výpočtů osvětlení a jiných obecných operací, které nejsou přímo mapovány na pokyny HLSL. |
|
Popisuje uzly, které lze použít k provádění filtrování textur a filtrování barev. |