STENCIL
W
tym tutorialu chcę pokazać w jaki sposób skonstruowany jest materiał
wykorzystujący narzedzie STENCIL i shader LAYERED SHADER. Materiał
który stworzyłem wykorzystałem do nałożenia etykietki na prosty
model dzbanka. Narzedzie STENCIL pozwala nam wzbogacić textury o
dodatkowe warstwy przenikające sie dzięki kanałowi ALPHA. W tym
przykładzie STENCIL poslużył mi do kontrolowania koloru napisu i
obwódki na etykietce, oraz wykorzystania textury proceduralnej GRANITE
jako tła etykietki. Natomiast LAYERED SHADER umożliwił mi zastosowanie
dwóch różnych shaderów: do etykietki BLINN, a do powierzchni dzbanka
PHONG. Efekt końcowy obrazujący działanie tego materialu można zobaczyć
na poniższym obrazku .

Do
stworzenia takiej textury potrzebne są dwa pliki które będą stanowić
kanały alpha. Obie textury z kanałami wykorzystują wspólny PLACE2D
przyłączony do nich tylko poprzez Out UV->UV Coord. Jeden plik
będzie przyłączony do STENCIL drugi do transparencji shadera BLINN
w LAYERED SHADER. W Connection Editor łączymy Out Alpha Node zawierającego
plik maski dla etykietki z Mask narzedzia STENCIL.

Natomiast
kanał transparencji dla BLINN przygotowujemy łącząc drugi plik z
kanałem ALPHA do PROJECTOR [projekcja_maski] poprzez Out Color->Image.

Wróćmy
teraz do PLACE2D, aby nasza etykietka nie ulegała multiplikacji
kiedy będziemy ją skalować na obiekcie odznaczamy w PLACE2D Warp
U i Warp V.

Troszke
to zagmatwane, ale ile daje przyjemnosci :-) Teraz przyjżyjmy sie
bliżej STENCIL. Mamy już przyłączony jako MASK plik z napisem, który
umożliwi nam kontrolowanie koloru, faktury napisu jak i tla etykietki.
Teraz należy utworzyć texture GRANITE. Pojawi sie ona odrazu z przyłączonym
PLACE3D i nie musimy na tym łączeniu niczego modyfikowac.
Textura ta w tym przykładzie będzie stanowiła tło etykietki więc
jej kolor modyfikujemy zależnie od potrzeb - tutaj odcienie żółci.
przyłączamy do STENCIL wybierając na wyjściu granitu Out Color a
na wejściu stencil IMAGE.

Teraz
mąjac gotowe połączenia wejściowe do STENCIL'a przyglądamy sie czy
wszystko jest poprawne. I tutaj celowo wykonałem błąd. W takiej
konfiguracji mamy teraz kolory w pliku który jest naszą maską w
STENCIL, powoduja że GRANITE nie jest tłem etykietki lecz kolorem
napisu. By to poprawić wchodzimy w atrybuty naszego pliku maski
(np. 2x klikajac w niego). W zakładce Effects zaznaczamy INVERT

i
od tego momentu GRANITE jest tłem naszej etykietki. Wreszcie mamy
już gotowy do dalszego wykorzystania STENCIL :). Teraz tworzymy
drugi projektor. Jeden jest juz wykorzystany przez kanał transparencji
BLINN. Do nowego projektora przyłączamy STENCIL analogicznie do
pierwszego przykładu czyli poprzez Out Color->Image.

A
ten z kolei podpinamy do shadera BLINN: Out Color->Color. Pamiętajmy
że mamy w materiale dwa projektory. Sa one w tej chwili niezależne
od siebie, a przecież chcemy by nasz materiał był wygodny w użyciu.
By nasza etykietka mogła sie skalowac i przemieszczać równocześnie
z maską transparencji, dla shaderow konieczne jest połączenie naszych
projektorów. Pierwszą czynnością jest stworzenie dla obu wspólnego
PLACE3D i podłączenie do projektorow poprzez World Inverse Matrix->
Placement Matrix.

Nastepnie
projektory musza być informowane o tym jakie rozmiary ma textura
w drugim projektorze. Z jednego z nich wyprowadzamy połączenia V
Angle->V Angle.

Z
drugiego tylko U Angle->U Angle. Ważne jest to by z jednego projektora
nie wychodziły razem U i V Angle bo wtedy bedziemy mogli za pomoca
Interactive Placement danego projektora decydowac tylko o szerokości
lub wysokości textury. Połączenie na krzyż daje nam mozliwość kontroli
obu wartości z poziomu jednego Interactive Placement. Teraz mamy
już gotową cala strukturę naszej naklejki, ale do ukończenia całego
materiału musimy wykonać jeszcze kilka operacji. Możemy juz stworzyć
shader który będzie głownym materiałem naszego dzbanka. W przykładzie
dałem poprostu PHONG, który ustawiłem tylko tak by sie w miare ladnie
błyszczał :). Majac juz gotowe oba materialy należy je umieścić
na warstwach w LAYERED SHADER. Najpierw w Layered Shader Attributes
ustawiamy Compositing Flag na: LAYER TEXTURE.

Potem
w oknie Graph. Teraz z Graph network przeciągamy za pomocą środkowego
klawisza myszki kolejno materiały BLINN [etykietka] i PHONG [dzbanek].
Mamy teraz w okienku warstw 3 materialy. Pierwszy z nich jest standardowo
dodawany do LAYERED SHADER i należy go usunać klikajac na krzyzyk
pod nim. I teraz bardzo ważna operacja która praktycznie zakończy
budowę naszego materiału. Przyłączamy PROJECTOR [projekcja_maski]
do transparencji shadera BLINN w LAYERED SHADER.
Jako że PROJECTOR ten przejął obraz z pliku ALPHA porzez IMAGE,
wybieramy łączenie Out Color -> Inputs[xxx].transparency

gdzie
xxx okresla identyfikator warstwy w LAYERED SHADER zawierającej
naszą texturę etykietki. I na tym można własciwie zakończyć budowę
naszego materiału. Można go oczywiście dowolnie rozbudować dodajac
kolejne warstwy itp. Zachecam do zabaw z parametami w dołączonym
przykładzie, bo tylko wówczas wpełni bedzie można zrozumieć wzajemne
odziaływanie poszczególnych elementów układanki.
>>>
Pobierz przykład <<<
Autor:
Vink
4
kwietnia 2002
Tutorial
napisany dla: www.maya3d.users.pl
|