Węzły projektanta cieniowania

Artykuły w tej sekcji dokumentacji zawierają informacje o różnych węzłach projektanta cieniowania, których można użyć do tworzenia efektów graficznych.

Węzły i typy węzłów

Projektant cieniowania przedstawia efekty wizualne jako graf. Te wykresy są zbudowane z węzłów, które są specjalnie wybierane i połączone w precyzyjny sposób w celu osiągnięcia zamierzonego efektu. Każdy węzeł reprezentuje element informacji lub funkcję matematyczną, a połączenia między nimi reprezentują sposób przepływu informacji przez graf w celu uzyskania wyniku. Projektant cieniowania udostępnia sześć różnych typów węzłów — filtrów, węzłów tekstury, parametrów, stałych, węzłów narzędzi i węzłów matematycznych — a kilka poszczególnych węzłów należy do każdego typu. Te węzły i typy węzłów zostały opisane w innych artykułach w tej sekcji. Aby uzyskać więcej informacji, zobacz linki na końcu tego dokumentu.

Struktura węzła

Wszystkie węzły składa się z kombinacji wspólnych elementów. Każdy węzeł ma po prawej stronie co najmniej jeden terminal wyjściowy (z wyjątkiem końcowego węzła koloru, który reprezentuje dane wyjściowe cieniowania). Węzły reprezentujące obliczenia lub próbki tekstur mają terminale wejściowe po lewej stronie, ale węzły reprezentujące informacje nie mają terminali wejściowych. Terminale wyjściowe są połączone z terminalami wejściowymi w celu przenoszenia informacji z jednego węzła do innego.

Pod promowanie danych wejściowych

Ponieważ projektant cieniowania musi ostatecznie wygenerować kod źródłowy HLSL, aby efekt można było wykorzystać w grze lub aplikacji, węzły projektanta cieniowania podlegają regułom podrzucania typów używanym przez system HLSL. Ze względu na to, że sprzęt graficzny działa głównie na wartościach zmiennoprzecinków, podnoszanie typów między różnymi typami — na przykład od do lub z do — jest int float float double nietypowe. Zamiast tego, ponieważ sprzęt graficzny używa tej samej operacji na wielu informacjach jednocześnie, może wystąpić inny rodzaj promocji, w którym krótsza liczba danych wejściowych jest wydłużona w celu dopasowania do rozmiaru najdłuższego wejścia. Sposób ich długości zależy od typu danych wejściowych, a także od samej operacji:

  • Jeśli mniejszy typ jest wartością skalarną, to:

    Wartość skalarna jest replikowana do wektora o rozmiarze równym większym wejściom. Na przykład skalarna wartość wejściowa 5.0 staje się wektorem (5.0, 5.0, 5.0), gdy największa wartość wejściowa operacji jest wektorem trzy elementowym, niezależnie od tego, czym jest operacja.

  • Jeśli mniejszy typ jest wektorem, a operacja jest mnożeniem * (, /, %, i tak dalej), to:

    Wartość wektora jest kopiowana do wiodących elementów wektora o rozmiarze równym większym elementom wejściowym, a końcowe elementy są ustawione na 1,0. Na przykład wektor wejściowy (5,0, 5,0) staje się wektorem (5,0, 5,0, 1,0, 1,0), gdy jest mnożony przez wektor cztero elementowy. Pozwala to zachować trzeci i czwarty element danych wyjściowych przy użyciu tożsamości mnożenia 1.0.

  • Jeśli mniejszy typ jest wektorem, a operacja jest addycyjna (+, -, i tak dalej), to:

    Wartość wektora jest kopiowana do wiodących elementów wektora o rozmiarze równym większym elementom wejściowym, a końcowe elementy są ustawione na 0,0. Na przykład wektor wejściowy (5.0, 5.0) staje się wektorem (5.0, 5.0, 0.0, 0.0), gdy jest dodawany do wektora cztero elementowego. Pozwala to zachować trzeci i czwarty element danych wyjściowych przy użyciu tożsamości addytywnej 0.0.

Tytuł Opis
Stałe węzły Opisuje węzły, których można użyć do reprezentowania wartości literału i informacji o stanie wierzchołków interpolowanych w obliczeniach cieniowania. Ponieważ stan wierzchołka jest interpolowany — i dlatego jest inny dla każdego piksela — każde wystąpienie modułu cieniowania pikseli otrzymuje inną wersję stałej.
Węzły parametrów Opisuje węzły, których można użyć do reprezentowania położenia kamery, właściwości materiału, parametrów oświetlenia, czasu i innych informacji o stanie aplikacji w obliczeniach cieniowania.
Węzły tekstury Opisuje węzły, których można używać do próbkowania różnych typów tekstur i geometrii oraz do tworzenia lub przekształcania współrzędnych tekstury na typowe sposoby.
Węzły matematyczne Opisuje węzły, których można użyć do wykonywania algebraicznych, logicznych, trygonometrycznych i innych operacji matematycznych mapowych bezpośrednio na instrukcje HLSL.
Węzły narzędzi Opisuje węzły, których można użyć do wykonywania typowych obliczeń oświetlenia i innych typowych operacji, które nie są mapowe bezpośrednio na instrukcje HLSL.
Węzły filtrów Opisuje węzły, których można użyć do filtrowania tekstur i filtrowania kolorów.