Co to są węzły cieniowania Projektant?

Funkcja Cieniowania Projektant w programie Visual Studio reprezentuje efekty wizualne jako graf. Te grafy są tworzone na podstawie wybranych węzłów i połączonych 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 wygenerowania wyniku. Typy węzłów obejmują filtry, tekstury, parametry, stałe, węzły narzędzi i węzły matematyczne.

Struktura węzła

Wszystkie węzły składają się z kombinacji typowych elementów. Każdy węzeł ma co najmniej jeden terminal wyjściowy po prawej stronie (z wyjątkiem końcowego węzła koloru, który reprezentuje dane wyjściowe cieniowania). Węzły reprezentujące obliczenia lub próbkatory 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, aby przenieść informacje z jednego węzła do innego.

Podwyższanie poziomu danych wejściowych

Ponieważ narzędzie Shader Projektant musi ostatecznie wygenerować kod źródłowy HLSL, aby można było użyć efektu w grze lub aplikacji, węzły Shader Projektant podlegają regułom podwyższania typu używanym przez HLSL. Ponieważ sprzęt graficzny działa głównie na wartościach zmiennoprzecinkowych, podwyższenie poziomu typu między różnymi typami — na przykład od int do float, lub od float do double— jest rzadkością. Zamiast tego, ponieważ sprzęt graficzny używa tej samej operacji na wielu fragmentach informacji jednocześnie, może wystąpić inny rodzaj podwyższania poziomu, w którym krótszy z wielu danych wejściowych jest wydłużany, aby dopasować rozmiar najdłuższego wejścia. Sposób jego wydłużenia zależy od typu danych wejściowych, a także od samej operacji:

  • Jeśli mniejszy typ jest wartością skalarną, wówczas:

    Wartość skalarna jest replikowana do wektora, który jest równy rozmiarowi większemu wejściu. Na przykład dane wejściowe skalarne 5.0 stają się wektorem (5.0, 5.0, 5.0), gdy największym wejściem operacji jest wektor trójelementowy, niezależnie od tego, jaka jest operacja.

  • Jeśli mniejszy typ jest wektorem, a operacja jest mnożona (*, /, %itd.), wówczas:

    Wartość wektora jest kopiowana do wiodących elementów wektora, który jest równy rozmiarowi większego wejściowego, a elementy końcowe 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 czteroelementowy. Spowoduje to zachowanie trzeciego i czwartego elementu danych wyjściowych przy użyciu tożsamości mnożenia 1.0.

  • Jeśli mniejszy typ jest wektorem, a operacja jest addytywna (+, -itd.), wówczas:

    Wartość wektora jest kopiowana do wiodących elementów wektora, który jest równy rozmiarowi większemu wejściu, a elementy końcowe 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 czteroelementowego. Spowoduje to zachowanie trzeciego i czwartego elementu danych wyjściowych przy użyciu tożsamości addytywnej 0,0.

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

Moduł cieniowania Projektant udostępnia sześć różnych typów węzłów — filtry, węzły tekstury, parametry, stałe, węzły narzędzi i węzły matematyczne — a kilka pojedynczych węzłów należy do każdego typu.

Stałe węzły

W Projektant cieniowania węzły stałe reprezentują wartości literału i atrybuty interpolowanego wierzchołka w obliczeniach cieniowania pikseli. Ponieważ atrybuty wierzchołka są interpolowane — a więc są różne dla każdego piksela — każde wystąpienie cieniowania pikseli otrzymuje inną wersję stałej. Daje to każdemu pikselowi unikatowy wygląd.

Interpolacja atrybutów wierzchołków

Obraz sceny 3D w grze lub aplikacji jest wykonany matematycznie przekształcając wiele obiektów — które są definiowane przez wierzchołki, atrybuty wierzchołków i definicje pierwotne — na piksele na ekranie. Wszystkie informacje wymagane do nadania pikselowi jego unikatowego wyglądu są dostarczane za pośrednictwem atrybutów wierzchołka, które są połączone ze sobą zgodnie z sąsiedztwem piksela do różnych wierzchołków, które składają się na jego pierwotny. Element pierwotny jest podstawowym elementem renderowania; oznacza to prosty kształt, taki jak punkt, linia lub trójkąt. Piksel, który jest bardzo blisko tylko jednego z wierzchołków, otrzymuje stałe, które są prawie identyczne z tym wierzchołkiem, ale piksel równomiernie rozmieszczony między wszystkimi wierzchołkami pierwotnego odbiera stałe, które są średnią tych wierzchołków. W programowaniu graficznym stałe odbierane przez piksele są podobno interpolowane. Zapewnienie stałych danych do pikseli w ten sposób daje dobrą jakość wizualizacji i jednocześnie zmniejsza zużycie pamięci i wymagania dotyczące przepustowości.

Chociaż każde wystąpienie cieniowania pikseli odbiera tylko jeden zestaw wartości stałych i nie może zmienić tych wartości, różne wystąpienia cieniowania pikseli odbierają różne zestawy danych stałych. Ten projekt umożliwia program cieniowania do tworzenia różnych danych wyjściowych kolorów dla każdego piksela w pierwotnej.

Odwołanie do węzła stałego

Węzeł Szczegóły Właściwości
wektor Aparat Wektor, który rozciąga się od bieżącego piksela do aparatu w przestrzeni światowej.

Służy to do obliczania odbicia w przestrzeni światowej.

Wyjście

Output: float3
Wektor z bieżącego piksela do aparatu.
Brak
Stała koloru Stała wartość koloru.

Wyjście

Output: float4
Wartość koloru.
Wyjście
Wartość koloru.
Stała Stała wartość skalarna.

Wyjście

Output: float
Wartość skalarna.
Wyjście
Wartość skalarna.
Stała 2D Stała dwuskładnikowa.

Wyjście

Output: float2
Wartość wektora.
Wyjście
Wartość wektora.
Stała 3-W Stała trójskładnikowa.

Wyjście

Output: float3
Wartość wektora.
Wyjście
Wartość wektora.
Stała 4D Stała wektora czteroskładnikowego.

Wyjście

Output: float4
Wartość koloru.
Wyjście
Wartość wektora.
Znormalizowane położenie Pozycja bieżącego piksela wyrażona we współrzędnych znormalizowanego urządzenia.

Współrzędna x i współrzędna y mają wartości w zakresie [-1, 1], współrzędna z ma wartość w zakresie [0, 1], a składnik w zawiera wartość głębokości punktu w przestrzeni widokowej; w nie jest znormalizowany.

Wyjście

Output: float4
Położenie bieżącego piksela.
Brak
Kolor punktu Rozproszony kolor bieżącego piksela, który jest kombinacją kolorów rozproszonych materiału i atrybutów koloru wierzchołka.

Wyjście

Output: float4
Rozproszony kolor bieżącego piksela.
Brak
Głębokość punktu Głębokość bieżącego piksela w obszarze widoku.

Wyjście

Output: float
Głębokość bieżącego piksela.
Brak
Znormalizowana głębokość punktu Głębokość bieżącego piksela wyrażona we współrzędnych znormalizowanego urządzenia.

Wynik ma wartość w zakresie [0, 1].

Wyjście

Output: float
Głębokość bieżącego piksela.
Brak
Położenie ekranu Położenie bieżącego piksela wyrażone we współrzędnych ekranu.

Współrzędne ekranu są oparte na bieżącym porcie widoków. Składniki x i y zawierają współrzędne ekranu, składnik z zawiera głębokość znormalizowaną do zakresu [0, 1], a składnik w zawiera wartość głębokości w przestrzeni widokowej.

Wyjście

Output: float4
Położenie bieżącego piksela.
Brak
Powierzchnia normalna Powierzchnia normalna dla bieżącego piksela w przestrzeni obiektu.

Przy użyciu tej funkcji można obliczyć wkład oświetlenia i odbicia w przestrzeni obiektu.

Wyjście

Output: float3
Powierzchnia normalna dla bieżącego piksela.
Brak
Wektor Aparat spacji tangensa Wektor, który rozciąga się od bieżącego piksela do aparatu w przestrzeni stycznej.

Za pomocą tej funkcji można obliczyć odbicia w przestrzeni stycznej.

Wyjście

Output: float3
Wektor z bieżącego piksela do aparatu.
Brak
S tangensowy kierunek światła Wektor, który definiuje kierunek rzutowania światła ze źródła światła w tangensowej przestrzeni bieżącego piksela.

Służy to do obliczania oświetlenia i współtworzenia widmowego w przestrzeni stycznej.

Wyjście:

Output: float3
Wektor z bieżącego piksela do źródła światła.
Brak
Świat normalny Powierzchnia normalna dla bieżącego piksela w przestrzeni światowej.

Służy to do obliczania wkładu oświetlenia i odbicia w przestrzeni światowej.

Wyjście

Output: float3
Powierzchnia normalna dla bieżącego piksela.
Brak
Pozycja świata Położenie bieżącego piksela w przestrzeni światowej.

Wyjście

Output: float4
Położenie bieżącego piksela.
Brak

Węzły parametrów

W Projektant shader węzły parametrów reprezentują dane wejściowe do cieniowania, które są pod kontrolą aplikacji na podstawie narysu, na przykład właściwości materiału, światła kierunkowe, położenie kamery i czas. Ponieważ te parametry można zmienić za pomocą każdego wywołania rysowania, możesz użyć tego samego cieniowania, aby nadać obiektowi różne wyglądy.

Dokumentacja węzła parametrów

Węzeł Szczegóły Właściwości
Aparat pozycji światowej Położenie kamery w przestrzeni światowej.

Wyjście:

Output: float4
Położenie aparatu.
Brak
Kierunek światła Wektor, który definiuje kierunek, w którym światło jest rzucane ze źródła światła w przestrzeni światowej.

Służy to do obliczania oświetlenia i współtworzenia widmowego w przestrzeni światowej.

Wyjście:

Output: float3
Wektor z bieżącego piksela do źródła światła.
Brak
Otoczenie materiału Rozproszony wkład koloru bieżącego piksela, który jest przypisywany do oświetlenia pośredniego.

Rozproszony kolor piksela symuluje interakcję oświetlenia z szorstkimi powierzchniami. Można użyć parametru Material Ambient w celu przybliżenia sposobu, w jaki oświetlenie pośrednie przyczynia się do pojawienia się obiektu w świecie rzeczywistym.

Wyjście:

Output: float4
Rozproszony kolor bieżącego piksela, który jest spowodowany pośrednim oświetleniem otoczenia.
Uzyskaj dostęp
Publiczne , aby umożliwić ustawienie właściwości z Edytora modelu; w przeciwnym razie prywatny.

Wartość
Rozproszony kolor bieżącego piksela, który jest spowodowany pośrednim oświetleniem otoczenia.
Materiał rozproszony Kolor, który opisuje, jak bieżący piksel dyfuzoruje bezpośrednie oświetlenie.

Rozproszony kolor piksela symuluje interakcję oświetlenia z szorstkimi powierzchniami. Możesz użyć parametru Dyfuzor materiału, aby zmienić sposób, w jaki bieżący piksel rozprasza bezpośrednie oświetlenie — czyli kierunkowe, punktowe i punktowe.

Wyjście:

Output: float4
Kolor, który opisuje, jak bieżący piksel dyfuzoruje bezpośrednie oświetlenie.
Uzyskaj dostęp
Publiczne , aby umożliwić ustawienie właściwości z Edytora modelu; w przeciwnym razie prywatny.

Wartość
Kolor, który opisuje, jak bieżący piksel dyfuzoruje bezpośrednie oświetlenie.
Materiał Emisive Wpływ koloru bieżącego piksela, który jest przypisywany do oświetlenia, które dostarcza do siebie.

Za pomocą tej funkcji można symulować świecący obiekt; oznacza to, obiekt, który dostarcza własne światło. To światło nie ma wpływu na inne obiekty.

Wyjście:

Output: float4
Wpływ koloru bieżącego piksela, który jest spowodowany oświetleniem własnym.
Uzyskaj dostęp
Publiczne , aby umożliwić ustawienie właściwości z Edytora modelu; w przeciwnym razie prywatny.

Wartość
Wpływ koloru bieżącego piksela, który jest spowodowany oświetleniem własnym.
Widmo materiału Kolor, który opisuje, jak bieżący piksel odzwierciedla oświetlenie bezpośrednie.

Widmowy kolor piksela symuluje interakcję oświetlenia z gładkimi powierzchniami przypominającymi lustro. Możesz użyć parametru Material Specular, aby zmienić sposób, w jaki bieżący piksel odzwierciedla oświetlenie bezpośrednie — czyli kierunkowe, punktowe i punktowe.

Wyjście:

Output: float4
Kolor, który opisuje, jak bieżący piksel odzwierciedla oświetlenie bezpośrednie.
Uzyskaj dostęp
Publiczne zezwalanie na ustawianie właściwości z Edytora modelu; w przeciwnym razie prywatne.

Wartość
Kolor, który opisuje, jak bieżący piksel odzwierciedla oświetlenie bezpośrednie.
Moc specularna materiału Wartość skalarna, która opisuje intensywność wyróżniania widmowego.

Tym większa jest moc widmowa, tym bardziej intensywne i dalekosiężne stają się specularne wyróżnienia.

Wyjście:

Output: float
Termin wykładniczy opisujący intensywność wyróżniania widmowego na bieżącym pikselu.
Uzyskaj dostęp
Publiczne , aby umożliwić ustawienie właściwości z Edytora modelu; w przeciwnym razie prywatny.

Wartość
Wykładnik, który definiuje intensywność wyróżniania widmowego na bieżącym pikselu.
Znormalizowany czas Czas w sekundach znormalizowany do zakresu [0, 1], taki, że gdy czas osiągnie 1, resetuje się do 0.

Można użyć go jako parametru w obliczeniach cieniowania, na przykład w celu animowania współrzędnych tekstury, wartości kolorów lub innych atrybutów.

Wyjście:

Output: float
Znormalizowany czas w sekundach.
Brak
Czas Czas w sekundach.

Można użyć go jako parametru w obliczeniach cieniowania, na przykład w celu animowania współrzędnych tekstury, wartości kolorów lub innych atrybutów.

Wyjście:

Output: float
Czas w sekundach.
Brak

Węzły tekstury

W Projektant cieniowania węzły tekstury próbkują różne typy tekstur i geometrie oraz tworzą lub przekształcają współrzędne tekstury. Tekstury zapewniają szczegóły kolorów i oświetlenia na obiektach.

Odwołanie do węzła tekstury

Węzeł Szczegóły Właściwości
Przykład mapy modułu Pobiera próbkę koloru z mapy modułu na określonych współrzędnych.

Możesz użyć mapy modułu, aby zapewnić szczegóły koloru dla efektów odbicia lub zastosować do obiektu kulistego tekstury, która ma mniej zniekształceń niż tekstura 2D.

Wejście:

UVW: float3
Wektor określający lokalizację w module tekstury, w którym pobierana jest próbka. Próbka jest pobierana w miejscu, w którym ten wektor przecina moduł.

Wyjście:

Output: float4
Przykład koloru.
Tekstury
Rejestr tekstur skojarzony z próbkatorem.
Przykładowa mapa normalna Pobiera normalną próbkę z standardowej mapy 2D na określonych współrzędnych

Możesz użyć normalnej mapy, aby zasymulować wygląd dodatkowych geometrycznych szczegółów na powierzchni obiektu. Zwykłe mapy zawierają pakowane dane reprezentujące wektor jednostki zamiast danych kolorowych

Wejście:

UV: float2
Współrzędne, w których jest pobierana próbka.

Wyjście:

Output: float3
Normalna próbka.
Korekta osi
Współczynnik używany do dostosowywania poręczności normalnej próbki mapy.

Tekstury
Rejestr tekstur skojarzony z próbkatorem.
Pan UV Przesuwa określone współrzędne tekstury jako funkcję czasu.

Można go użyć, aby przenieść teksturę lub normalną mapę na powierzchni obiektu.

Wejście:

UV: float2
Współrzędne do patelni.

Time: float
Czas panowania w sekundach.

Wyjście:

Output: float2
Współrzędne panned.
Szybkość X
Liczba texelsów, które są przesuwane wzdłuż osi x na sekundę.

Szybkość Y
Liczba texelsów, które są przesuwane wzdłuż osi y, na sekundę.
Parallax UV Wypiera współrzędne określonej tekstury jako funkcję wysokości i kąta widzenia.

Efekt, który tworzy, jest znany jako mapowanie parallax lub mapowanie przemieszczeń wirtualnych. Można go użyć, aby stworzyć iluzję głębokości na płaskiej powierzchni.

Wejście:

UV: float2
Współrzędne do przesiedlenia.

Height: float
Wartość mapy wysokości skojarzona ze współrzędnymi UV .

Wyjście:

Output: float2
Współrzędne przesiedlone.
Płaszczyzna głębokości
Głębokość referencyjna efektu paralaksu. Domyślnie wartość to 0,5. Mniejsze wartości podniosą teksturę; większe wartości tonieją ją na powierzchnię.

Skala głębokości
Skala efektu paralaksu. To sprawia, że widoczna głębokość jest bardziej lub mniej wyraźna. Typowe wartości wahają się od 0,02 do 0,1.
Obracanie promieni UV Obraca określone współrzędne tekstury wokół punktu centralnego jako funkcję czasu.

Można go użyć do obracania tekstury lub normalnej mapy na powierzchni obiektu.

Wejście:

UV: float2
Współrzędne, które mają być obracane.

Time: float
Czas panowania w sekundach.

Wyjście:

Output: float2
Obrócone współrzędne.
Środek X
Współrzędna x, która definiuje środek obrotu.

Wyśrodkowanie Y
Współrzędna y, która definiuje środek obrotu.

Prędkość
Kąt, w radianach, za pomocą którego tekstura obraca się na sekundę.
Współrzędna tekstury Współrzędne tekstury bieżącego piksela.

Współrzędne tekstury są określane przez interpolację między atrybutami współrzędnych tekstury pobliskich wierzchołków. Można to traktować jako pozycję bieżącego piksela w przestrzeni tekstury.

Wyjście:

Output: float2
Współrzędne tekstury.
Brak
Wymiary tekstury Wyprowadza szerokość i wysokość mapy tekstury 2D.

Możesz użyć wymiarów tekstury, aby wziąć pod uwagę szerokość i wysokość tekstury w cieniatorze.

Wyjście:

Output: float2
Szerokość i wysokość tekstury, wyrażone jako wektor. Szerokość jest przechowywana w pierwszym elemecie wektora. Wysokość jest przechowywana w drugim elemecie.
Tekstury
Rejestr tekstury skojarzony z wymiarami tekstury.
Texel Delta Wyprowadza różnicę (odległość) między texelami mapy tekstury 2D.

Możesz użyć różnicy texel do próbkowania sąsiednich wartości texel w cieniowaniu.

Wyjście:

Output: float2
Delta (odległość) od texelu do następnego texelu (przesuwając się ukośnie w kierunku dodatnim), wyrażoną jako wektor w znormalizowanej przestrzeni tekstury. Można uzyskać pozycje wszystkich sąsiednich texels poprzez selektywne ignorowanie lub negowanie współrzędnych U lub V różnicy.
Tekstury
Rejestr tekstury, który jest skojarzony z delta texel.
Próbka tekstury Pobiera próbkę kolorów z mapy tekstury 2D na określonych współrzędnych.

Możesz użyć mapy tekstury, aby zapewnić szczegóły kolorów na powierzchni obiektu.

Wejście:

UV: float2
Współrzędne, w których jest pobierana próbka.

Wyjście:

Output: float4
Przykład koloru.
Tekstury
Rejestr tekstur skojarzony z próbkatorem.

Węzły matematyczne

W Projektant cieniowania węzły matematyczne wykonują algebraiczne, logiczne, trygonometryczne i inne operacje matematyczne.

Uwaga

Podczas pracy z węzłami matematycznymi w Projektant Shader podwyższenie poziomu typów jest szczególnie widoczne. Aby uzyskać więcej informacji na temat wpływu podwyższania typu na parametry wejściowe, zobacz sekcję Podwyższanie poziomu danych wejściowych .

Dokumentacja węzła matematyczna

Węzeł Szczegóły Właściwości
Abs Oblicza wartość bezwzględną określonego danych wejściowych na składnik.

Dla każdego składnika danych wejściowych Xwartości ujemne są dodatnie, aby każdy składnik wyniku miał wartość dodatnią.

Wejście:

X: float, , float3float2lubfloat4
Wartości, dla których należy określić wartość bezwzględną.

Output:

Output: taki sam jak dane wejściowe X
Wartość bezwzględna na składnik.
Brak
Dodaj Oblicza sumę składników określonych danych wejściowych na składnik.

Dla każdego składnika wyniku składniki danych wejściowych i wejściowych XY są dodawane razem.

Wejście:

X: float, , float3float2lubfloat4
Jedna z wartości do dodania razem.

Y: taki sam jak dane wejściowe X
Jedna z wartości do dodania razem.

Wyjście:

Output: taki sam jak dane wejściowe X
Suma na składnik.
Brak
Ceil Oblicza limit określonych danych wejściowych na składnik.

Limit wartości jest najmniejszą liczbą całkowitą większą lub równą tej wartości.

Wejście:

X: float, , float3float2lubfloat4
Wartości, dla których należy obliczyć limit.

Wyjście:

Output: taki sam jak dane wejściowe X
Sufit, na składnik.
Brak
Zacisk Zaciska każdy składnik określonego wejścia do wstępnie zdefiniowanego zakresu.

Dla każdego składnika wyniku wartości poniżej zdefiniowanego zakresu są równe wartości minimalnej w zakresie, wartości, które są powyżej zdefiniowanego zakresu, są równe maksymalnej wartości w zakresie, a wartości, które znajdują się w zakresie, nie są zmieniane.

Wejście:

X: float, , float3float2lubfloat4
Wartości do zacisku.

Wyjście:

Output: taki sam jak dane wejściowe X
Wartość zaciśniętą na składnik.
Maksimum
Największa możliwa wartość w zakresie.

Min
Najmniejsza możliwa wartość w zakresie.
Cos Oblicza cosinus określonego wejściowego w radianach na składnik.

Dla każdego składnika wyniku cosinus odpowiedniego składnika, który jest podany w radianach, jest obliczany. Wynik zawiera składniki, które mają wartości w zakresie [-1, 1].

Wejście:

X: float, , float3float2lubfloat4
Wartości do obliczenia cosinusu w radianach.

Wyjście:

Output: taki sam jak dane wejściowe X
Cosinus, na składnik.
Brak
Krzyż Oblicza produkt krzyżowy określonych wektorów trójskładnikowych.

Możesz użyć produktu krzyżowego, aby obliczyć normalną powierzchnię zdefiniowaną przez dwa wektory.

Wejście:

X: float3
Wektor po lewej stronie produktu krzyżowego.

Y: float3
Wektor po prawej stronie produktu krzyżowego.

Wyjście:

Output: float3
Produkt krzyżowy.
Brak
Odległość Oblicza odległość między określonymi punktami.

Wynik jest dodatnią wartością skalarną.

Wejście:

X: float, , float3float2lubfloat4
Jeden z punktów określających odległość między nimi.

Y: taki sam jak dane wejściowe X
Jeden z punktów określających odległość między nimi.

Wyjście:

Output: taki sam jak dane wejściowe X
Odległość.
Brak
Podzielić Oblicza iloraz mądry składników określonych danych wejściowych.

Dla każdego składnika wyniku odpowiedni składnik danych wejściowych X jest podzielony przez odpowiedni składnik danych wejściowych Y.

Wejście:

X: float, , float3float2lubfloat4
Wartości dywidendy.

Y: taki sam jak dane wejściowe X
Wartości dzielnika.

Wyjście:

Output: taki sam jak dane wejściowe X
Iloraz na składnik.
Brak
Dot Oblicza kropkę produktu określonych wektorów.

Wynik jest wartością skalarną. Możesz użyć kropki, aby określić kąt między dwoma wektorami.

Wejście:

X: float, , float3float2lubfloat4
Jeden z terminów.

Y: taki sam jak dane wejściowe X
Jeden z terminów.

Wyjście:

Output: float
Produkt kropkowy.
Brak
Podłogi Oblicza podłogę określonych danych wejściowych na składnik.

Dla każdego składnika wyniku jego wartość jest największą całkowitą wartością całkowitą, która jest mniejsza lub równa odpowiadającemu składnikowi danych wejściowych. Każdy składnik wyniku jest liczbą całkowitą.

Wejście:

X: float, , float3float2lubfloat4
Wartości, dla których należy obliczyć podłogę.

Wyjście:

Output: taki sam jak dane wejściowe X
Podłoga, na składnik.
Brak
Fmod Oblicza modulo mądre składników (pozostałe) określonych danych wejściowych.

Dla każdego składnika wyniku część całkowita (liczba całkowita) wielokrotna, m, odpowiadający składnik danych wejściowych Y jest odejmowany od odpowiedniego składnika danych wejściowych X, pozostawiając resztę. Wielokrotność, m, jest wybierana tak, że reszta jest mniejsza niż odpowiedni składnik danych wejściowych Y i ma ten sam znak co odpowiedni składnik danych wejściowych X. Na przykład fmod(-3.14, 1.5) to -0.14.

Wejście:

X: float, , float3float2lubfloat4
Wartości dywidendy.

Y: taki sam jak dane wejściowe X
Wartości dzielnika.

Wyjście:

Output: taki sam jak dane wejściowe X
Modulo, na składnik.
Brak
Frac Usuwa część całkowitą (całkowitą) określonego wejściowego elementu wejściowego na składnik.

Dla każdego składnika wyniku zostaje usunięta integralna część odpowiadającego mu składnika danych wejściowych, ale część ułamkowa i znak są zachowywane. Ta wartość ułamkowa spada w zakresie [0, 1). Na przykład wartość -3.14 staje się wartością -0,14.

Wejście:

X: float, , float3float2lubfloat4
Wartości, dla których należy obliczyć część ułamkową.

Wyjście:

Output: taki sam jak dane wejściowe X
Część ułamkowa na składnik.
Brak
Lerp Interpolacja liniowa. Oblicza średnią ważoną składników określonych danych wejściowych.

Dla każdego składnika wyniku średnia ważona odpowiednich składników danych wejściowych X i Y. Waga jest dostarczana przez Percent, skalarny i jest jednolicie stosowana do wszystkich składników. Służy do interpolacji między punktami, kolorami, atrybutami i innymi wartościami.

Wejście:

X: float, , float3float2lubfloat4
Wartość źródłowa. Gdy Percent wartość jest równa zero, wynik jest równy temu wejściu.

Y: taki sam jak dane wejściowe X
Wartość terminalu. Gdy Percent jest to jeden, wynik jest równy temu wejściu.

Percent: float
Waga skalarna wyrażona jako wartość procentowa odległości od danych wejściowych w kierunku danych wejściowych XY.

Wyjście:

Output: taki sam jak dane wejściowe X
Wartość, która jest zderzona z określonymi danymi wejściowymi.
Brak
Mnożenie dodaj Oblicza składnik mnożenia i dodawania określonych danych wejściowych.

Dla każdego składnika wyniku produkt odpowiednich składników danych wejściowych M i A jest dodawany do odpowiedniego składnika danych wejściowych B. Ta sekwencja operacji znajduje się w typowych formułach — na przykład w formule nachylenia punktu linii, a następnie w formule do skalowania, a następnie stronniczości danych wejściowych.

Wejście:

M: float, , float3float2lubfloat4
Jedna z wartości do pomnożenia razem.

A: taki sam jak dane wejściowe M
Jedna z wartości do pomnożenia razem.

B: taki sam jak dane wejściowe M
Wartości do dodania do produktu pozostałych dwóch danych wejściowych.

Wyjście:

Output: taki sam jak dane wejściowe M
Wynik pomnożenia dodawania na składnik.
Brak
Maksimum Oblicza mądre składniki maksimum określonych danych wejściowych.

Dla każdego składnika wyniku jest pobierana większa z odpowiednich składników danych wejściowych.

Wejście:

X: float, , float3float2lubfloat4
Jedna z wartości, dla których należy obliczyć maksymalną wartość.

Y: taki sam jak dane wejściowe X
Jedna z wartości, dla których należy obliczyć maksymalną wartość.

Wyjście:

Output: taki sam jak dane wejściowe X
Maksymalna wartość na składnik.
Brak
Min Oblicza minimalną liczbę określonych danych wejściowych dla składników.

Dla każdego składnika wyniku jest pobierana mniejsza z odpowiednich składników danych wejściowych.

Wejście:

X: float, , float3float2lubfloat4
Jedna z wartości, dla których należy obliczyć minimum.

Y: taki sam jak dane wejściowe X
Jedna z wartości, dla których należy obliczyć minimum.

Wyjście:

Output: taki sam jak dane wejściowe X
Minimalna wartość na składnik.
Brak
Pomnożyć Oblicza produkt mądry składników określonych danych wejściowych.

Dla każdego składnika wyniku odpowiednie składniki danych wejściowych X i Y są mnożone razem.

Wejście:

X: float, , float3float2lubfloat4
Jedna z wartości do pomnożenia razem.

Y: taki sam jak dane wejściowe X
Jedna z wartości do pomnożenia razem.

Wyjście:

Output: taki sam jak dane wejściowe X
Produkt, na składnik.
Brak
Normalizacji Normalizuje określony wektor.

Wektor znormalizowany zachowuje kierunek oryginalnego wektora, ale nie jego wielkość. Można użyć wektorów znormalizowanych, aby uprościć obliczenia, w których wielkość wektora nie jest ważna.

Wejście:

X: float2, , float3lub float4
Wektor do normalizacji.

Wyjście:

Output: taki sam jak dane wejściowe X
Znormalizowany wektor.
Brak
Jeden minus Oblicza różnicę między 1 a określonymi danymi wejściowymi na składnik.

Dla każdego składnika wyniku odpowiedni składnik danych wejściowych jest odejmowany od 1.

Wejście:

X: float, , float3float2lubfloat4
Wartości, które mają zostać odejmowane od 1.

Wyjście:

Output: taki sam jak dane wejściowe X
Różnica między 1 a określonymi danymi wejściowymi na składnik.
Brak
Power Oblicza wykładnik składników (moc) określonych danych wejściowych.

Dla każdego składnika wyniku odpowiedni składnik danych wejściowych X jest zgłaszany do potęgi odpowiedniego składnika wejściowego .Y

Wejście:

X: float, , float3float2lubfloat4
Wartości podstawowe

Y: taki sam jak dane wejściowe X
Wartości wykładnicze.

Wyjście:

Output: taki sam jak dane wejściowe X
Wykładnik, na składnik.
Brak
Nasycenia Zaciska każdy składnik określonego wejścia do zakresu [0, 1].

Tego zakresu można użyć do reprezentowania wartości procentowych i innych względnych pomiarów w obliczeniach. Dla każdego składnika wyniku odpowiednie wartości składowe danych wejściowych, które są mniejsze niż 0, są równe 0, wartości większe niż 1 są równe 1, a wartości, które znajdują się w zakresie, nie są zmieniane.

Wejście:

X: float, , float3float2lubfloat4
Wartości do saturacji.

Wyjście:

Output: taki sam jak dane wejściowe X
Wartość nasycona na składnik.
Brak
Grzechu Oblicza sinus określonego danych wejściowych w radianach na składnik.

Dla każdego składnika wyniku obliczany jest sinus odpowiedniego składnika, który jest dostarczany w radianach. Wynik zawiera składniki, które mają wartości w zakresie [-1, 1].

Wejście:

X: float, , float3float2lubfloat4
Wartości do obliczenia sinusu w radianach.

Wyjście:

Output: taki sam jak dane wejściowe X
Sinus na składnik.
Brak
Sqrt Oblicza pierwiastek kwadratowy określonego wejściowego składnika.

Dla każdego składnika wyniku jest obliczany pierwiastek kwadratowy odpowiedniego składnika.

Wejście:

X: float, , float3float2lubfloat4
Wartości, dla których ma być obliczany pierwiastek kwadratowy.

Wyjście:

Output: taki sam jak dane wejściowe X
Pierwiastek kwadratowy na składnik.
Brak
Subtract Oblicza różnicę między składnikami określonymi danymi wejściowymi.

Dla każdego składnika wyniku odpowiedni składnik danych wejściowych Y jest odejmowany od odpowiedniego składnika danych wejściowych X. Za pomocą tej funkcji można obliczyć wektor, który rozciąga się od pierwszego wejściowego do drugiego.

Wejście:

X: float, , float3float2lubfloat4
Wartości, z których mają zostać odejmowane.

Y: taki sam jak dane wejściowe X
Wartości do odejmowania z danych wejściowych X.

Wyjście:

Output: taki sam jak dane wejściowe X
Różnica na składnik.
Brak
Przekształcanie wektora 3-W Przekształca określony wektor 3D w inną przestrzeń.

Za pomocą tego polecenia można przenieść punkty lub wektory do wspólnej przestrzeni, aby można było ich używać do wykonywania znaczących obliczeń.

Wejście:

Vector: float3
Wektor do przekształcenia.

Wyjście:

Output: float3
Przekształcony wektor.
Z systemu
Natywna przestrzeń wektora.

Do systemu
Przestrzeń do przekształcenia wektora w.

Węzły narzędzi

W Projektant cieniowania węzły narzędzi reprezentują typowe, przydatne obliczenia cieniowania, które nie pasują starannie do innych kategorii. Niektóre węzły narzędzi wykonują proste operacje, takie jak dołączanie wektorów razem lub warunkowe wybieranie wyników, a inne wykonują złożone operacje, takie jak współtworzenie oświetlenia obliczeniowego zgodnie z popularnymi modelami oświetlenia.

Dokumentacja węzła narzędzia

Węzeł Szczegóły Właściwości
Wektor dołączania Tworzy wektor przez dołączenie określonych danych wejściowych razem.

Wejście:

Vector: float, , float2lub float3
Wartości do dołączenia do.

Value to Append: float
Wartość do dołączenia.

Wyjście:

Output: float2, lub float3float4 w zależności od typu danych wejściowychVector
Nowy wektor.
Brak
Fresnela Oblicza spadek Fresnel w oparciu o określoną powierzchnię normalną.

Wartość spadku Fresnel określa, jak blisko powierzchni bieżącego piksela pokrywa się z wektorem widoku. Gdy wektory są wyrównane, wynik funkcji wynosi 0; wynik zwiększa się, gdy wektory stają się mniej podobne i osiąga maksymalną wartość, gdy wektory są ortogonalne. Można to użyć, aby efekt bardziej lub mniej widoczny na podstawie relacji między orientacją bieżącego piksela a aparatem.

Wejście:

Surface Normal: float3
Powierzchnia normalna dla bieżącego piksela, zdefiniowana w tangensowym obszarze bieżącego piksela. Można jej użyć, aby wypaczyć pozorną powierzchnię normalną, jak w przypadku normalnego mapowania.

Wyjście:

Output: float
Odbicie bieżącego piksela.
Wykładnik
Wykładnik, który jest używany do obliczania spadku Fresnel.
If Warunkowo wybiera jeden z trzech potencjalnych wyników na składnik. Warunek jest definiowany przez relację między dwoma innymi określonymi danymi wejściowymi.

Dla każdego składnika wyniku wybierany jest odpowiedni składnik jednego z trzech potencjalnych wyników na podstawie relacji między odpowiednimi składnikami pierwszych dwóch danych wejściowych.

Wejście:

X: float, , float3float2lubfloat4
Wartość po lewej stronie do porównania.

Y: ten sam typ co dane wejściowe X
Wartość po prawej stronie do porównania.

X > Y: ten sam typ co dane wejściowe X
Wartości, które są wybierane, gdy X są większe niż Y.

X = Y: ten sam typ co dane wejściowe X
Wartości, które są wybierane, gdy X są równe Y.

X < Y: ten sam typ co dane wejściowe X
Wartości, które są wybierane, gdy X są mniejsze niż Y.

Wyjście:

Output: float3
Wybrany wynik na składnik.
Brak
Lambert Oblicza kolor bieżącego piksela zgodnie z modelem oświetlenia Lamberta przy użyciu określonej powierzchni normalnej.

Ten kolor jest sumą koloru otoczenia i rozproszonego wkładu oświetlenia w oświetleniu bezpośrednim. Kolor otoczenia przybliża całkowity wkład oświetlenia pośredniego, ale wygląda płasko i nudnie bez pomocy dodatkowego oświetlenia. Oświetlenie rozproszone pomaga dodać kształt i głębokość do obiektu.

Wejście:

Surface Normal: float3
Powierzchnia normalna dla bieżącego piksela, zdefiniowana w tangensowym obszarze bieżącego piksela. Można jej użyć, aby wypaczyć pozorną powierzchnię normalną, jak w przypadku normalnego mapowania.

Diffuse Color: float3
Kolor dyfuzora bieżącego piksela, zazwyczaj kolor punktu. Jeśli nie podano żadnych danych wejściowych, wartość domyślna to biały.

Wyjście:

Output: float3
Rozproszony kolor bieżącego piksela.
Brak
Wektor maski Maskuje składniki określonego wektora.

Za pomocą tego polecenia można usunąć określone kanały kolorów z wartości koloru lub zapobiec wpływowi określonych składników na kolejne obliczenia.

Wejście:

Vector: float4
Wektor do maskowania.

Wyjście:

Output: float4
Wektor maskowany.
Czerwony/X
Fałsz , aby zamaskować czerwony składnik (x), w przeciwnym razie wartość True.

Zielony /Y
Fałsz , aby zamaskować składnik zielony (y), w przeciwnym razie wartość True.

Niebieski/Z
Fałsz , aby zamaskować niebieski składnik (z), w przeciwnym razie wartość True.

Alfa/W
Fałsz , aby zamaskować składnik alfa (w), w przeciwnym razie wartość True.
wektor Emocje ion Oblicza wektor odbicia dla bieżącego piksela w przestrzeni stycznej na podstawie położenia aparatu.

Służy do obliczania odbicia, współrzędnych mapy modułu i współtworzenia oświetlenia widmowego

Wejście:

Tangent Space Surface Normal: float3
Powierzchnia normalna dla bieżącego piksela, zdefiniowana w tangensowym obszarze bieżącego piksela. Można jej użyć, aby wypaczyć pozorną powierzchnię normalną, jak w przypadku normalnego mapowania.

Wyjście:

Output: float3
Wektor odbicia.
Brak
Lustrzane Oblicza udział oświetlenia widmowego zgodnie z modelem oświetlenia String, przy użyciu określonej powierzchni normalnego.

Oświetlenie specularne daje błyszczący, odbijające się wygląd do obiektu, na przykład wody, tworzyw sztucznych lub metali.

Wejście:

Surface Normal: float3
Powierzchnia normalna dla bieżącego piksela, zdefiniowana w tangensowym obszarze bieżącego piksela. Można jej użyć, aby wypaczyć pozorną powierzchnię normalną, jak w przypadku normalnego mapowania.

Wyjście:

Output: float3
Składowa koloru wyróżniania specularnego.
Brak

Węzły filtrów

W Projektant cieniowania węzły filtru przekształcają dane wejściowe — na przykład próbkę koloru lub tekstury — na wartość koloru figuracyjnego. Te wartości kolorów figuracyjnych są często używane w renderowaniu nierealistycznym lub jako składniki w innych efektach wizualnych.

Dokumentacja węzła filtru

Węzeł Szczegóły Właściwości
Rozmycie Rozmywa piksele w teksturze przy użyciu funkcji Gaussian.

Można go użyć, aby zmniejszyć szczegóły kolorów lub szum w teksturze.

Wejście:

UV: float2
Współrzędne texelu do przetestowania.

Wyjście:

Output: float4
Rozmyta wartość koloru.
Tekstury
Rejestr tekstur skojarzony z próbkatorem używanym podczas rozmycia.
Desaturate Zmniejsza ilość koloru w określonym kolorze.

W miarę usuwania koloru wartość koloru zbliża się do równoważnika skali szarości.

Wejście:

RGB: float3
Kolor desaturacji.

Percent: float
Procent koloru do usunięcia, wyrażony jako znormalizowana wartość w zakresie [0, 1].

Wyjście:

Output: float3
Kolor odsadniany.
Luminancji
Wagi, które są podane do czerwonych, zielonych i niebieskich składników kolorów.
Wykrywanie krawędzi Wykrywa krawędzie w teksturze za pomocą detektora krawędzi Canny. Piksele krawędzi są wyświetlane jako białe; nieklinowane piksele są danymi wyjściowymi jako czarne.

Można go użyć do identyfikowania krawędzi w teksturze, aby można było użyć dodatkowych efektów w leczeniu pikseli krawędzi.

Wejście:

UV: float2
Współrzędne texelu do przetestowania.

Wyjście:

Output: float4
Biały, jeśli texel znajduje się na krawędzi; w przeciwnym razie, czarny.
Tekstury
Rejestr tekstur skojarzony z próbkatorem używanym podczas wykrywania krawędzi.
Wyostrzanie Wyostrza teksturę.

Można go użyć, aby wyróżnić drobne szczegóły w teksturze.

Wejście:

UV: float2
Współrzędne texelu do przetestowania.

Wyjście:

Output: float4
Rozmyta wartość koloru.
Tekstury
Rejestr tekstury skojarzony z próbkatorem używanym podczas wyostrzania.

Następne kroki

Aby dowiedzieć się więcej, zobacz Create Shaders with Shader Projektant in Visual Studio (Tworzenie cieniowania przy użyciu funkcji cieniowania Projektant w programie Visual Studio).