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 X wartości ujemne są dodatnie, aby każdy składnik wyniku miał wartość dodatnią.Wejście: X : float , , float3 float2 lubfloat4 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 X Y są dodawane razem.Wejście: X : float , , float3 float2 lubfloat4 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 , , float3 float2 lubfloat4 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 , , float3 float2 lubfloat4 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 , , float3 float2 lubfloat4 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 , , float3 float2 lubfloat4 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 , , float3 float2 lubfloat4 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 , , float3 float2 lubfloat4 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 , , float3 float2 lubfloat4 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 , , float3 float2 lubfloat4 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 , , float3 float2 lubfloat4 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 , , float3 float2 lubfloat4 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 X Y .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 , , float3 float2 lubfloat4 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 , , float3 float2 lubfloat4 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 , , float3 float2 lubfloat4 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 , , float3 float2 lubfloat4 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 , , float3 lub 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 , , float3 float2 lubfloat4 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 , , float3 float2 lubfloat4 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 , , float3 float2 lubfloat4 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 , , float3 float2 lubfloat4 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 , , float3 float2 lubfloat4 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 , , float3 float2 lubfloat4 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 , , float2 lub float3 Wartości do dołączenia do. Value to Append : float Wartość do dołączenia. Wyjście: Output : float2 , lub float3 float4 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 , , float3 float2 lubfloat4 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).