Jaka jest różnica między współrzędnymi tekstury „wygenerowanej” i „normalnej”?
Nie mogę zrozumieć z dokumentacji różnicy w węźle współrzędnych tekstury (w Shaderze) między wygenerowanym i normalnym , a nawet celu samego węzła współrzędnych tekstury , który mam jako pierwszy węzeł.
Odpowiedzi
Pomocne może być wizualizowanie tego w ten sposób:
Kiedy renderujemy scenę, dla każdego piksela w aparacie rzutujemy promień, a jeśli stykamy się z powierzchnią obiektu, pytamy „Jaki kolor należy zgłosić dla tego piksela przy danych właściwościach materiału, oświetleniu, okluzji itp?"

Jest to dość proste, gdy materiał ma jednolity kolor, ale co z różnymi materiałami?
Materiał proceduralny może być traktowany jako „pole” w sensie fizyki, istnieje i ma wartość w każdej pozycji w twojej scenie. Kiedy odwzorowujesz tę teksturę na obiekt i patrzysz na nią w rzutni, wyświetlasz przekrój tego pola, który pokrywa się z powierzchnią twojego obiektu.

Węzeł współrzędnych tekstury definiuje jedynie przestrzeń współrzędnych X, Y, Z używaną do odwzorowania tekstury. Na przykład współrzędne obiektu używają ustawienia skali Blendera i ustawiają początek obiektu na 0,0,0. Wygenerowane współrzędne używają obwiedni obiektu jako przestrzeni współrzędnych w zakresie od 0,0,0 do 1,1,1.

Normalne współrzędne są trochę dziwne. Obecnie rozumiem, że są one mniej oparte na pozycji, a bardziej na rotacji każdej indywidualnej twarzy (a dokładniej na normalnym kierunku). Może ktoś rozszerzy, jak to może być dla Ciebie przydatne, moja wiedza na ten temat jest ograniczona.
Aby rozwinąć trochę dobrą odpowiedź Allena Simpsona :

Wygenerowane współrzędne zwracają położenie aktualnie ocenianego punktu cieniowania, powiedzmy P , obliczone w przestrzeni tekstury `` Wygenerowano '', która niezależnie od rozmiaru cieniowanego obiektu mierzy 0-1 wzdłuż boków ramki ograniczającej, pochodzenie na minimum. Obwiednia jest równoległa do lokalnych osi obiektu (które mogą być pochylone względem siatki, jeśli obrócono siatkę w trybie edycji).
(To jest ustawienie domyślne; „Wygenerowaną” przestrzeń faktycznie można skalować i przesuwać w panelu Przestrzeń tekstur na karcie Dane obiektu .. ale myślę, że to trochę dziedzictwo?)
Dwa z tych wyjść współrzędnych tekstury węzła, Normal i refleksji , nie należy zwracać lokalizację z P ; wrócą kierunki od P : lokalizacje na urządzeniu kula na środku P .
Normalna w węźle Współrzędne tekstury zwraca wektor z punktu P , w kierunku interpolowanej (po wygładzeniu) normalnej powierzchni, do wierzchołka żółtej strzałki o długości 1 jednostki Blendera. Jest mierzony w przestrzeni obiektu: jego komponenty X, Y i Z są równoległe do X, Y i Z Obiektu.
Normalny w węźle Geometria zwraca to samo, ale w przestrzeni świata. Te odbite powraca wyjściowe kierunek obecnie badane promienia wejściowego, dalej, po odbiciu z powierzchni w P . Jest również mierzony wzdłuż osi wyrównanych ze światem.