r02 p 03 VB4TWEFWVYXRAWRJ4Q3YLXJCA7EQLI5NXUADAUI


Rozdział 2.
Kubek

Nadeszła wreszcie pora, aby stworzyć jakąś prostą scenę w programie LightWave 3D. W tym rozdziale nauczymy się, jak wymodelować obiekt — a będzie nim kubek, nadać mu odpowiednie parametry materiałów oraz tekstury i zbudować dla niego scenę tak, aby po wizualizacji przypominał swój rzeczywisty odpowiednik. Nie bez powodu na przedmiot ćwiczenia wybrałem kubek — jest to prosta bryła obrotowa (oczywiście, pomijając jego ucho), która należy obok paczki papierosów i baterii do kanonu najczęściej modelowanych przedmiotów przez początkującego użytkownika dowolnego programu do grafiki 3D.

Ćwiczenie 2.1.
Tworzenie punktów

Konstruowanie obiektu zacznijmy od wykonania jego podstawowej części, czyli połowicznego przekroju. Po uruchomieniu Modelera powiększmy nieco obraz w widokach (na przykład za pomocą lupy z paska tytułowego widoku) tak, aby siatka miała wymiar 1 cm, co odczytamy z pola informacyjnego w lewym dolnym rogu ekranu. Następnie skupmy swoją uwagę na widoku Back, który możemy nawet przełączyć w tryb pełnoekranowy, poprzez ustawienie w jego obrębie kursora myszy i wybranie zera na klawiaturze numerycznej (NumLock musi być włączony); aby powrócić do pulpitu z czterema widokami, powtórnie wybieramy zero na klawiaturze numerycznej. Za pomocą polecenia Create/Points (+) tworzymy w tym widoku około 13 punktów tak, aby powstał zarys połowicznego przekroju kubka. Jeśli się cokolwiek tworzy lub modyfikuje, można to robić w module Modeler na co najmniej trzy sposoby:

  1. Przy użyciu myszki — wtedy wybieramy opcję Create/[Elements] Points (+) i klikając lewym klawiszem w oknie widokowym pozycjonujemy punkt, a prawym zatwierdzamy jego stworzenie.

  2. Przy użyciu okna Modeler/Windows/N umeric Options (n) — również musimy wybierać opcję Create//[Elements] Points (+), otworzyć okno numeryczne i do niego wpisywać współrzędne punktów, za każdym razem zatwierdzając je funkcją Modes/Deselect Tool (Make) (Enter).

  3. Łącząc powyższe metody — najpierw orientacyjnie umieszczamy punkt w danym widoku, a następnie w oknie Numeric (n) precyzyjnie ustalamy jego współrzędne.

Chcąc zbudować obiekt o dokładnych wymiarach, najlepiej posłużyć się oknem Numeric Options (n), które może być stale otwarte i zmienia swoją zawartość w zależności od wybranego narzędzia.

Zatem przechodzimy do trybu Points (Ctrl+g) i tworzymy punkty jednym z powyższych sposobów — dokładne ich współrzędne oraz wynik naszej pracy znajdują się na rysunku 2.1.

Rysunek 2.1. Współrzędne punktów oraz obraz w widoku po ich utworzeniu

X

Y

Z

0x01 graphic

Punkt 1

0

1 mm

0

Punkt 2

3 cm

1 mm

0

Punkt 3

3,2 cm

0

0

Punkt 4

3,5 cm

0

0

Punkt 5

3,6 cm

1 mm

0

Punkt 6

4 cm

5 mm

0

Punkt 7

4 cm

9 cm

0

Punkt 8

4,3 cm

9,9 cm

0

Punkt 9

4,3 cm

10 cm

0

Punkt 10

3,6 cm

9 cm

0

Punkt 11

3,6 cm

1 cm

0

Punkt 12

3,6 cm

6 mm

0

Punkt 13

0

5 mm

0

Ćwiczenie 2.2.
Łączenie punktów krzywą

Następnie powinniśmy połączyć punkty krzywą otwartą, czyli skorzystać z funkcji Create//[Elements] Make Curve: Make Open Curve (Ctrl+p), ale najpierw musimy się upewnić, czy są one zaznaczone w kolejności, w jakiej krzywa ma je łączyć. W tym celu najlepiej --> odznaczyć[Author:MK] całą zawartość widoku poleceniem Modes/Drop Current Tool (/) i ponownie zaznaczyć punkty poprzez przytrzymanie lewego klawisza myszy i przesuwanie jej kursora począwszy od Punktu 1, a skończywszy na Punkcie 13.

Jeżeli w trakcie zaznaczania zakreślimy niewłaściwy punkt, należy puścić lewy klawisz myszy, kliknąć niepotrzebnie zaznaczony punkt, aby zlikwidować jego zaznaczenie, następnie przytrzymać Shift i kontynuować zaznaczenie, przytrzymując lewy klawisz myszy i przesuwając ją nad odpowiednimi punktami — w ten sposób dodajemy dwie selekcje do siebie. Selekcję możemy również wykonywać z „wolnej ręki”, przytrzymując prawy klawisz myszy i zakreślając nią pożądany obszar. Jednak taka metoda uniemożliwia wyznaczenia odpowiedniej kolejności selekcjonowanych elementów i bardziej nadaje się do zaznaczania obiektów.

Teraz pozostaje już tylko użyć wcześniej wspomnianej funkcji, która łączy punkty w krzywą otwartą i w efekcie otrzymamy obrys z rysunku 2.2.

Rysunek 2.2. Połowiczny obrys kubka

0x01 graphic

Zanim przekształcimy obrys w obiekt obrotowy, warto go przekopiować do pustej warstwy, aby w przyszłości móc go wykorzystać jeszcze w innych projektach. Z dolnego paska wybierzmy więc opcję Copy (c), przejdźmy do warstwy, na przykład szóstej, za pomocą funkcji Paste wklejmy tam naszą dotychczasową pracę i powróćmy do pierwszej warstwy.

Ćwiczenie 2.3.
Bryła obrotowa

Teraz możemy już z połowicznego obrysu stworzyć figurę obrotową — trzeba wybrać opcję Multiply/[Extend] Lathe (L), w widoku Back przytrzymać lewy klawisz myszy w punkcie 0,Y,0 (ważne, aby zarówno współrzędna X, jak i Z były zerowe, natomiast Y może mieć dowolną wartość), a następnie przesunąć ją w górę po osi Y. Warto również cały czas mieć otwarte okno Numeric (n), które oferuje dostęp do dodatkowych parametrów narzędzia — zwiększmy wartość pola Sides z 24 do 48, aby uzyskać większą dokładność obrotu. Pozostaje jeszcze tylko zatwierdzić przeprowadzoną operację i w efekcie otrzymamy kształt kubka z rysunku 2.3.

Rysunek 2.3. Ostateczny kształt kubka

0x01 graphic

Ćwiczenie 2.4.
Bryła obrotowa a dodanie geometrii

Łatwo zauważyć, że do obrysu została dodana geometria. W programie LightWave kształt krzywej nadajemy poprzez jej punkty kontrolne, natomiast gdy chcemy z niej utworzyć obiekt ściankowy, to jej kształt jest „zamrażany”, co powoduje dodanie do niej (pomiędzy dawne punkty kontrolne) punktów pośrednich. Do określenia dokładności odwzorowania krzywej przy jej „zamrażaniu” służą opcje Coarse, Medium i Fine z okna General Options (o) — używając funkcji Undo (u) można cofnąć jedną operację, zmienić wartość Curve Division na Fine i, aby się przekonać o różnicy, powtórnie stworzyć obiekt kubka. Ale w naszym przykładzie najmniej dokładny podział krzywej jest wystarczający, ponieważ stworzyliśmy 13 punktów kontrolnych, co przy wymiarach i skomplikowaniu kubka nie jest małą liczbą.

Ogólnie można przyjąć zasadę, że im więcej punktów kontrolnych, tym krzywa wymaga mniejszej jakości odwzorowania.

Pozostawmy na chwilę wymodelowany obiekt, aby przejść do następnej warstwy i stworzyć ścieżki (krzywe otwarte), po których wyciągniemy przekrój ucha kubka.

Ćwiczenie 2.5.
Konstruowanie ścieżek dla ucha

Dwie ścieżki dla ucha konstruujemy w taki sam sposób, jak połowiczny obrys kubka, to znaczy najpierw przechodzimy (jeżeli w nim nie jesteśmy) do trybu Points (Ctrl+g) i w widoku Back (który możemy powiększyć na cały ekran) tworzymy dla pierwszej z nich 7 punktów o współrzędnych, jak na rysunku 2.4.

Rysunek 2.4. Współrzędne punktów oraz obraz w widoku po ich utworzeniu

X

Y

Z

0x01 graphic

Punkt 1

0

0

0

Punkt 2

2 mm

0

0

Punkt 3

5 mm

5 mm

0

Punkt 4

2,6 cm

3 cm

0

Punkt 5

3 cm

5,5 cm

0

Punkt 6

2 cm

7 cm

0

Punkt 7

0

7 cm

0

Zaznaczamy punkty w takiej kolejności, w jakiej ma je łączyć krzywa, ale tym razem ważne jest miejsce, z którego zaczynamy selekcję — czy będzie to punkt 1 i później 2, 3,... czy 9, 8, 7,... Proponuję wybrać pierwszą z ewentualności i zaznaczać punkty, rozpoczynając od tego o współrzędnych 0,0,0, czyli z indeksami narastającymi. Następnie korzystamy ze znanej już nam funkcji Create//[Elements] Make Curve: Make Open Curve (Ctrl+p) i otrzymujemy pierwszą krzywą otwartą, która została przedstawiona na rysunku 2.6.

Współrzędne punktów dla drugiej ścieżki oraz zarys ucha, który powstał po ich utworzeniu, widać na rysunku 2.5.

Rysunek 2.5. Współrzędne punktów oraz obraz w widoku po ich utworzeniu

X

Y

Z

0x01 graphic

Punkt 1

0

1 cm

0

Punkt 2

2,1 cm

3,4 cm

0

Punkt 3

2,4 cm

5,5 cm

0

Punkt 4

1,6 cm

6,6 cm

0

Punkt 5

5 mm

6,5 cm

0

Punkt 6

2 mm

6 cm

0

Punkt 7

0

6 cm

0

Ponownie zaznaczamy punkty w kolejności, w jakiej mają zostać połączone krzywą, biorąc jednocześnie pod uwagę sposób selekcji punktów dla pierwszej ze ścieżek — czyli zaczynamy zaznaczanie od Punktu 1, następnie 2, 3,... Tak, jak i przed chwilą, wybieramy teraz opcję Create//[Elements] Make Curve: Make Open Curve (Ctrl+p), aby uzyskać drugą krzywą otwartą, jak na rysunku 2.6.

Rysunek 2.6. Ścieżka dla ucha kubka

0x01 graphic

Krzywe z rysunku 2.6 będą pełnić rolę „prowadnic”, po których wyciągniemy przekrój ucha kubka. Zrobiliśmy dwie ścieżki, aby przekrój był zróżnicowany pod względem grubości w miejscach, gdzie ucho jest przytwierdzone do kubka. Natomiast zaznaczanie punktów krzywych w tej samej kolejności było o tyle istotne, że muszą one mieć swój początek i koniec w zbliżonych miejscach, czyli odpowiednio w dolnej i górnej części kubka. Jeśli spełnimy ten warunek, będziemy mieć gwarancję, że przekrój (który jest zawsze tworzony od punku początkowego krzywej do końcowego) zostanie właściwie poprowadzony i ucho będzie miało pożądany kształt.

Ćwiczenie 2.6.
Walec przekrojem ucha

Zatem należy jeszcze ów przekrój zbudować. Najodpowiedniejszym obiektem do tego celu będzie elipsa, a z uwagi na fakt, że wśród standardowych obiektów LightWave'a nie ma elipsy, posłużymy się walcem o zerowej wysokości, czyli właściwie potrzebna nam będzie jedynie jego podstawa. Przechodzimy do kolejnej pustej warstwy (powinna być to warstwa numer 3), a zawartość poprzedniej (ze ścieżkami dla ucha) ustawiamy jako tło. Wybieramy opcję Create/[Objects] Disc, następnie przytrzymujemy lewy klawisz myszy w oknie widoku Right i ustalamy środek bryły, a przeciągając mysz określamy wielkość jej podstawy. Nasz obiekt na razie jeszcze nie jest ostatecznie utworzony — symbolizują to jasnoniebieskie znaczniki w rogach, środkach boków i podstawy jego zarysu. Przytrzymując lewy klawisz myszy w okolicach takiego znacznika, możemy poprzez poruszanie myszą zmienić wymiary obiektu lub go przesunąć. Więc dopasujmy jego wysokość tak, aby odpowiadała odległości pomiędzy dwiema ścieżkami ucha kubka (co najlepiej widać w widoku Back), a długość ustalmy na około 1,6 cm. Aktualny stan naszej pracy został przedstawiony na rysunku 2.7.

Rysunek 2.7. Tworzenie przekroju ucha

0x01 graphic

Pozostaje jeszcze zaakceptować proponowany obiekt przekroju, czyli nie będziemy już go mogli poddać modyfikacjom w oknie Numeric (n), korzystając z funkcji Modes/Deselect Tool (Make) (Enter).

Ćwiczenie 2.7.
Wyciąganie przekroju po dwóch krzywych

Jeśli mamy już zrobione zarówno „prowadnice” dla ucha kubka, jak i jego przekrój, to możemy przystąpić do wyciągania po nich tegoż przekroju.

Funkcja Multiply/[Extend] Rail Extrude (Ctrl+r) pozwala na wyciąganie po jednej lub wielu krzywych. Jednak aby była ona dostępna w menu programu, musi zostać spełniony warunek: oprócz warstwy aktywnej, w której znajduje się obiekt przekroju, musi również być włączona jakaś warstwa w trybie tło, zawierająca krzywe, po których zostanie on wyciągnięty.

Należy sprawdzić, czy warstwa numer 3 jest aktywna, a warstwa numer 2 włączona jako tło. Jeżeli tak, to po wywołaniu powyższej funkcji otworzy się okno z jej parametrami — rysunek 2.8.

Rysunek 2.8. Parametry funkcji Rail Extrude

0x01 graphic

Skorzystamy z jej domyślnego ustawienia, czyli automatycznego (Automatic) doboru gęstości wyciągania na podstawie długości krzywych (Length), siły przyciągania przekroju do krzywych (Strength) ustawionej na 2.0 i włączonej orientacji przekroju względem krzywych (Oriented). Warto natomiast wyłączyć parametr Scaling, co zapobiegnie skalowaniu przekroju w miejscach, które nie są objęte zasięgiem krzywych, a więc po bokach ucha.

Po zaakceptowaniu parametrów funkcji Rail Extrude i naciśnięciu OK, przekrój ucha zostanie wytłoczony. Jeżeli po wykonaniu tej operacji wydaje się nam, że ścianki nowo powstałego obiektu zwrócone są w złą stronę (można to poznać po rozchodzeniu się światła na powierzchni obiektu w widoku cieniowanym), wtedy musimy je odwrócić poleceniem Detail/[Polygons] Flip (f). Ostatecznie otrzymaliśmy obiekt taki, jak na rysunku 2.9.

Rysunek 2.9. Końcowy wygląd ucha kubka

0x01 graphic

Ćwiczenie 2.8.
Ustalanie pozycji obiektów

Zrobiliśmy już wszystkie elementy kubka, ale zanim je przeniesiemy do jednej warstwy, powinniśmy jeszcze dopasować ich pozycje (choć można tę czynność przeprowadzić też później). Więc pozostawiamy aktywną warstwę numer 3 i włączamy jako tło warstwę numer 1 — dzięki temu w komfortowy sposób usytuujemy ucho względem reszty kubka. Zatem przesuńmy je w osi Y o około 2 cm, a w osi X o niespełna 4 cm, aby nieco zachodziło na kubek, ponieważ trzeba wziąć pod uwagę, że ucho ma pewną grubość wzdłuż osi Z. Efekt powyższych czynności widać na rysunku 2.10.

Jeżeli podczas przesuwania ucha posłużyliśmy się oknem Numeric (n), to musimy dodatkowo nacisnąć przycisk Apply, aby operacja została dodana do obiektu.

Rysunek 2.10. Pozycjonowanie ucha względem kubka

0x01 graphic

Przycisk Apply w oknie Numeric (n) jedynie dodaje do obiektu modyfikacje, jakie wprowadza na jego siatce dane narzędzie. Można się o tym łatwo przekonać, kilkakrotnie używając klawisza Apply — w efekcie kolejne modyfikacje będą się sumować. Natomiast, aby ostatecznie zatwierdzić daną modyfikację, należy wybrać opcję Modes/Deselect Tool (Make) (Enter).

Ćwiczenie 2.9.
Porządkowanie warstw z obiektami i krzywymi

Zanim przejdziemy do dalszych czynności związanych z pracą nad obiektami, uprzątnijmy nieco zawartość warstw pliku obiektu i zachowajmy sam obiekt. Aktualnie w warstwie 1. znajduje się kubek, w 2. — ścieżki dla ucha, w 3. — ucho i w 6. — połowiczny obrys kubka. Proponuję, aby wszystkie obiekty mające ścianki, czyli te, które wykorzystamy w module Layout, zgromadzić w pierwszych warstwach, natomiast ścieżki, z których już skorzystaliśmy, w warstwach 6 i 7. Więc przejdźmy do warstwy 2., wytnijmy jej zawartość poleceniem Cut (x), uaktywnijmy warstwę 7. i tam ją wklejmy za pomocą funkcji Paste (v). Tę samą procedurę powtórzmy względem warstwy 3. i wklejmy ucho do warstwy 2. Obecnie mamy już uporządkowaną zawartość poszczególnych warstw i od tej pory jedynie dwie pierwsze z nich będą nas interesować. Warto również zachować wynik naszej dotychczasowej pracy — korzystamy z polecenia File/Save Object As (S) i w polu File Name otwartego okna wpisujemy nazwę, na przykład „Kubek” (rozszerzenie .lwo zostanie dodane automatycznie).

Ćwiczenie 2.10.
Nadawanie materiałów

Przydałoby się jeszcze nadać obiektom jakieś materiały — co prawda domyślnie każdy z tworzonych elementów ma przydzielany materiał Default, ale jest to jedynie rozwiązanie tymczasowe i prędzej czy później trzeba je zastąpić. Załóżmy, że kubek i jego ucho mają taką samą charakterystykę powierzchni, więc można im nadać ten sam materiał. Aby zrobić to najszybciej, wystarczy jednocześnie uaktywnić warstwy 1. i 2. (przytrzymując Shift i klikając lewym klawiszem myszy w górne części ich symboli), a następnie skorzystać z polecenia Detail/[Polygons] Surface (q) i w nowo otwartym oknie w polu Name wpisać nazwę materiału, na przykład „kubek”, tak jak przedstawia to rysunek 2.11. W dolnej części okna znajduje się funkcja wygładzania ścianek — Smoothing, którą powinniśmy włączyć, gdyż w przeciwnym razie, aby uzyskać gładką powierzchnię, musielibyśmy zbudować obiekt o nieskończonej gęstości siatki. Można też zdefiniować w polu Smooth Threshold kąt pomiędzy ściankami, powyżej którego ta funkcja przestaje działać, ale wartość 89.5 stopnia zwykle jest odpowiednia. Zaznaczona opcja Make Default spowoduje, że gdybyśmy jeszcze tworzyli jakieś obiekty, to standardowo będą one miały nadany materiał „kubek” — do chwili, gdy nie wprowadzimy nowej nazwy materiału w tym oknie.

Rysunek 2.11. Nadanie nazwy materiału obiektowi

0x01 graphic

Ćwiczenie 2.11.
Rodzaje rzutowania map

Warto powierzchnię kubka wzbogacić jeszcze o jakieś napisy lub rysunki, często spotykane na tego typu przedmiotach. Owe urozmaicenia osiągniemy poprzez przypisanie odpowiedniego obrazka do obiektu kubka. W programie LightWave mamy do wyboru pięć opcji rzutowania map:

Z uwagi na fakt, że kubek w budowie najbardziej zbliżony jest do walca, wybierzemy rzutowanie cylindryczne. Gdybyśmy nadali obiektowi tylko jeden rodzaj materiału, na przykład „kubek”, to tekstury byłyby widoczne zarówno od jego strony zewnętrznej, jak i wewnętrznej, ponieważ nie możemy zdefiniować głębokości, na jaką ma sięgać mapa — ten niepożądany efekt widoczny jest na rysunku 2.12.a.

Rysunek 2.12. Różnice pomiędzy mapowaniami cylindrycznymi:

  1. nieprawidłowo — bez rozróżnienia powierzchni wewnętrznej i zewnętrznej

  2. prawidłowo — z rozróżnieniem, napis pojawia się tylko na zewnętrznej stronie kubka

0x01 graphic

Ćwiczenie 2.12.
Podział materiału kubka na część wewnętrzną i zewnętrzną

Aby pozbyć się tej niedogodności, wystarczy zaznaczyć ścianki, które tworzą zewnętrzną część kubka i zdefiniować dla nich inny materiał, na przykład „kubek napis”. Więc najpierw przyjdźmy w tryb Polygons (Ctrl+h) i w widoku Perspective (ważne, aby podgląd był jakikolwiek inny niż Wireframe) ustawmy tak obiekt, jak to pokazano na rysunku 2.13, to znaczy aby wszystkie ścianki wewnętrzne były zasłaniane przez zewnętrzne. Teraz, przytrzymując prawy klawisz myszy, robimy zakreślenia wokół kubka. Następnie obracamy nieco zawartość widoku za pomocą ikony lupy z paska tytułu widoku i przytrzymując Shift znowu zakreślamy zaznaczenie, które jest dodawane do poprzedniego, tak jak to pokazano na rysunku 2.13.

Rysunek 2.13. Zaznaczanie zewnętrznych ścianek kubka

0x01 graphic

Czynność powtarzamy, dopóki nie zostaną wyselekcjonowane wszystkie zewnętrzne ścianki kubka. Gdy już to zrobimy, pozostaje nadać im nowy materiał poprzez Detail/[Polygons] Surface (q) i wpisać nazwę kubek napis w pole Name. Warto również już teraz zmienić nieco kolor materiału, aby odróżnić go od materiału „kubek” i tym samym przekonać się, czy przy zaznaczaniu żadna ścianka nie została pominięta. Możemy łatwo i szybko manipulować kolorem: ustawiamy kursor na którejś z jego składowych i przytrzymując lewy klawisz myszy, przesuwamy ją w lewo lub w prawo. Ja ustawiłem dla materiału „kubek napis” kolor 0, 0, 200, czyli nad czerwoną i zieloną składową przytrzymałem lewy klawisz myszy, a samą mysz przesunąłem w lewo — rysunek 2.14. Oczywiście, kolor można też zmienić w inny sposób — można kliknąć lewym klawiszem na kwadracie z jego próbką i w otwartym oknie Select Color wybrać jakiś odcień z palety lub wpisać jego składowe.

Rysunek 2.14. Przydzielanie materiału wyselekcjonowanym ściankom

0x01 graphic

Po zatwierdzeniu zmian w oknie Change Surface przyciskiem OK i odznaczeniu selekcji opcją Modes/Drop Current Tool (/) powinniśmy otrzymać obraz z rysunku 2.15. Dzięki powyższym zabiegom tekstura będzie rzutowana tylko na zewnętrzną stronę obiektu, bo jej nadano inny materiał.

Rysunek 2.15. Kubek z nadanymi dwoma materiałami

0x01 graphic

Na tym etapie skończymy już pracę nad kubkiem w Modelerze, a ustawienie odpowiednich cech powierzchni i tekstur dla materiałów przeprowadzimy w module Layout.

Ćwiczenie 2.13.
Tworzenie obiektu podłoża

Należy jednak przeprowadzić jeszcze parę kosmetycznych zabiegów. Przede wszystkim warto przenieść zawartość warstwy numer 2 do warstwy 1., bo podział obiektu pomiędzy parę warstw jest w tym przypadku całkowicie zbyteczny — należy zaznaczyć obie warstwy i użyć narzędzia Detail/[Layers] Flatten Layers lub przenieść zawartość drugiej do pierwszej. Również proponuję, aby w teraz już pustej warstwie 2. zrobić przedmiot, na którym będzie stał nasz kubek w scenie — może to być najzwyklejszy kwadrat o wymiarach 2 na 2 metry, pokazany na rysunku 2.16. Jednak po jego stworzeniu należy zwrócić uwagę, że ma on nadany materiał „kubek napis”, więc używając funkcji Detail/[Polygons] Surface (q), trzeba przygotować dla niego nowy materiał o nazwie „podloze” o przykładowym kolorze 200, 200, 200.

Rysunek 2.16. Tworzenie obiektu podłoża

0x01 graphic

Ćwiczenie 2.14.
Praca na warstwach — okno Layers

Powróćmy jeszcze na chwilę do warstw. Modeler oferuje bardzo przydatne okno do zarządzania nimi, które znajdziemy w Modeler/Windows/Layer Browser (Ctrl+F5). Jest ono podzielone na parę kolumn i kolejne z nich oznaczają :

Aktualnie okno Layers powinno mieć zawartość, pokazaną na rysunku 2.17a.

Rysunek 2.17. Okno Layers:

  1. przed modyfikacją

  2. po modyfikacji

0x01 graphic

0x01 graphic

Aby zmienić nazwę warstwy, co niewątpliwie ułatwi poruszanie się pomiędzy nimi, należy kliknąć lewym klawiszem myszy na jej domyślnym określeniu (unnamed) i w otwartym oknie w polu Name wpisać nową nazwę — rysunek 2.18.

Rysunek 2.18. Zmiana nazwy warstwy numer 1

0x01 graphic

Dla 1. warstwy może to być „kubek”, dla 2. „podloze”, a dla 6. i 7. odpowiednio: „zarys kubka” i „zarys ucha”. Powinniśmy jeszcze w ostatniej kolumnie okna Layers odznaczyć, które z warstw nie muszą być widoczne w module Layout. Na pewno nie będą to warstwy 1. i 2., zawierające kubek i podłoże. Natomiast nie osiągniemy żadnych korzyści z wyświetlania warstw 6. i 7., więc można je wyłączyć, klikając kropkę znajdującą się na końcu ich wiersza lewym klawiszem myszy. Ostatecznie okno Layers w naszym projekcie powinno wyglądać, jak to z rysunku 2.17.b.

Zachowajmy jeszcze końcową wersję pliku obiektu poleceniem File/Save Object (s) i dalszą część pracy będziemy już kontynuować w module Layout.

Ćwiczenie 2.15.
Wczytanie obiektu do Layouta

Po uruchomieniu Layouta ukaże się pusta scena, zawierająca jedynie stałe elementy — światło i kamerę. Aby wczytać wcześniej zachowany plik, korzystamy z opcji File/Load/Load Object (+) i w otwartym oknie odszukujemy nazwę kubek.lwo — teraz ekran programu powinien wyglądać, jak na rysunku 2.19.

Rysunek 2.19. Ekran Layouta po wczytaniu obiektu „kubek.lwo

0x01 graphic

Ćwiczenie 2.16.
Pozycjonowanie kamery

Od razu widać, że widok z kamery nie jest zbyt atrakcyjny, więc najpierw zmienimy jej pozycję, aby lepiej widzieć zawartość sceny. Zatem zaznaczmy kamerę (na przykład w oknie widoku Schematic), klikając środkowym klawiszem myszy symbolizujący ją zielony prostokąt. W tym momencie zmieni się zawartość pola numerycznego, ponieważ do tej pory określało ono pozycję w przestrzeni warstwy „Kubek: podłoże”, a teraz zaznaczonej kamery. Dla opcji Items/[Tools] Move (t) wpiszmy w odpowiednie pola wartości: X=10 cm; Y=20 cm; Z=-20 cm. W efekcie kamera przybliżyła się do obiektów sceny, ale nadal „patrzy” przed siebie, więc należy ją jeszcze obrócić w dół. Przechodzimy do funkcji Items/[Tools] Rotate (y) i za pomocą okręgów, które przedstawiają osie rotacji, nakierowujemy kamerę na obiekt kubka. Oczywiście, można też wykorzystać okno numeryczne i w jego pola wpisać dla H: -25, dla P: 34, a B pozostawić bez zmian. Zawartość okna widoku Camera powinna być zbliżona do tej z rysunku 2.20.

Rysunek 2.20. Końcowa pozycja kamery

0x01 graphic

Ćwiczenie 2.17.
Okno właściwości kamery

Skoro mamy już zaznaczoną kamerę, to możemy, niejako przy okazji, otworzyć okno jej właściwości, klikając na dolnym pasku przycisk Item Properties (p). W konsekwencji otworzy się okno z rysunku 2.21.

Rysunek 2.21. Okno właściwości kamery

0x01 graphic

Mamy tutaj kilkanaście opcji, które charakteryzują kamerę w naszej scenie. Dwie najważniejsze z nich to :

Resolution (rozdzielczość) — definiuje, jakiej wielkości będzie wizualizować obrazek; im większa wartość, tym więcej czasu potrzeba będzie na liczenie sceny. Oczywiście, możemy wybrać jakąś już zdefiniowaną lub wpisać nowe wymiary w pola Width (szerokość) i Height (wysokość).

Antialiasing (wygładzenie) — efekt polegający na wygładzeniu krawędzi obiektów, aby nie były one „schodkowe”. Może ono odbywać się w różnej ilości przejść, co ma duży wpływ na jego skuteczność, ale także na czas obliczeń — wydaje się, że najlepiej ustawić wygładzanie na Low lub Medium, a dla animacji odpowiednio Enhanced Low i Enhanced Medium.

Więc dla opcji Resolution pozostawmy domyślne ustawienia, a dla Antialiasing wybierzmy z belki linię Low i zamknijmy okno Camera Properties.

Ćwiczenie 2.18.
Okno właściwości wizualizacji (renderingu)

Zanim po raz pierwszy przeliczymy scenę, powinniśmy jeszcze otworzyć okno właściwości wizualizacji, pokazane na rysunku 2.22, które znajdziemy w menu Rendering/Render Options.

Rysunek 2.22. Okno właściwości wizualizacji

0x01 graphic

Kilka opcji, znajdujących się w górze okna (oddzielonych poziomą linią), definiuje parametry wizualizacji animacji i zostaną one omówione w rozdziale 3. Natomiast teraz interesują nas wszystkie pozostałe opcje:

Na razie proponuję ustawić wartości poszczególnych opcji, tak jak na rysunku 2.22 — VIPER ma bardzo uproszczony kod generujący (dzięki temu jest szybki), więc nie musimy włączać żadnej funkcji z grupy Ray Trace, bo i tak efekt nie będzie widoczny w podglądzie VIPERA.

Ćwiczenie 2.19.
Próbne wyliczenie sceny

Okno Render Options możemy zamknąć, a aby wyliczyć daną klatkę sceny, użyjemy polecenia Rendering/Render Current Frame (F9). Na ekranie powinno się otworzyć okno z rysunku 2.23a, natomiast gdy liczenie dobiegnie końca, także okno z rysunku 2.23b.

Rysunek 2.23. Okna otwierające się w trakcie (a) i po (b) wizualizacji

0x01 graphic

0x01 graphic

Pierwsze z nich w swojej górnej części informuje o podstawowych parametrach wizualizacji, a w dolnej wyświetla podgląd, obrazujący zaawansowanie procesu liczenia klatki. Jeżeli chcemy zamknąć okno Render Status, to naciskamy przycisk Abort (Esc), ponieważ naciśnięcie Continue (Enter) powoduje rozpoczęcie obliczeń dla kolejnej klatki. Drugie z okien przedstawia obraz w jego naturalnej wielkości już po wizualizacji i za pomocą menu File można go zapisać na dysk.

Ćwiczenie 2.20.
Korzystanie z VIPERA w edytorze materiałów

Zatem zamknijmy oba okna, gdyż chcieliśmy wykonać tę próbną wizualizację tylko po to, aby móc uruchomić VIPERA. W tym celu najpierw otwórzmy okno edytora materiałów Surface Editor (Ctrl+F3) — rysunek 2.24a. Następnie kliknijmy przycisk VIPER, który znajduje się w menu każdej z zakładek głównego okna programu — w efekcie otwiera się kolejne okno z zawartością do złudzenia przypominającą przed chwilą wykonaną wizualizację sceny — rysunek 2.25b. Jeżeli jednak zamiast kubka widzimy czarne tło, to należy kliknąć któryś z materiałów z listy okna Surface Editor albo przycisk Render.

Rysunek 2.24. Edytor materiałów (a) i podgląd sceny z VIPERA (b)

0x01 graphic

0x01 graphic

Okno VIPER ma kilka opcji, których znaczenie warto poznać:

Więc przekonajmy się teraz, jak komfortowe może być nadawanie materiałów obiektom z wykorzystaniem ich podglądu.

Ćwiczenie 2.21.
Jednoczesna edycja dwóch materiałów

Zarówno materiał „kubek”, jak i „kubek napis” mają te same właściwości, jedynie drugi z nich różni się od pierwszego napisem. Zatem w oknie Surface Editor kliknijmy nazwę materiału „kubek”, a następnie, przytrzymując Shift, powtórzmy to dla „kubek napis” — w ten sposób będziemy edytować dwa materiały równocześnie. Parametry obu materiałów, które się nie pokrywają (w naszym przypadku jest to kolor), są oznaczone jako (mixed), ale oznaczenie to zniknie, gdy tylko je ujednolicimy. Po kliknięciu kwadratu z próbką koloru otworzy się okno Select Color, w którym dla składowych RGB wpiszmy odpowiednio: 255, 224, 192 — rysunek 2.25. Po zaakceptowaniu zmian przyciskiem OK okno zostanie zamknięte, kolor nadany, a VIPER odświeży widok sceny, uwzględniając wprowadzone zmiany.

Rysunek 2.25. Ustalanie koloru dla kubka

0x01 graphic

Ćwiczenie 2.22.
Parametry materiału a powierzchnia kubka

Tworząc dobry materiał dla kubka warto zmniejszyć nieco parametr Diffuse (rozpraszanie światła) do wartości około 90%. Natomiast koniecznie powinniśmy zwiększyć Specularity, nawet do 400%, aby światło tworzyło na powierzchni kubka wyraźne odblaski. Ważna też jest ich ostrość, gdyż odblask nie powinien zanikać w sposób stopniowy — ten efekt kontroluje parametr Glossiness, który ustawimy na 80%. Oczywiście, nie możemy też zapomnieć o fakcie, że powierzchnia kubka, w sposób niewielki, ale jednak, odbija otoczenie — więc ustawmy opcję Reflection na 10%. Wszystkie zmiany, które wprowadziliśmy powyżej, są widoczne na rysunku 2.26a, a ich efekt w podglądzie VIPERA w części b) tegoż rysunku.

Rysunek 2.26. Parametry materiału dla kubka (a) oraz jego aktualny wygląd (b)

0x01 graphic

0x01 graphic

Jednak swoją prawdziwą przydatność VIPER ukazuje dopiero podczas nadawania obiektom tekstur, gdyż cechy materiału (które ustawialiśmy przed chwilą) można z powodzeniem dobrać, wspomagając się okienkiem podglądu Surface Editora. Natomiast prawidłowe usytuowanie mapy wymagałoby wielu próbnych, a więc i czasochłonnych, wizualizacji obiektu.

Ćwiczenie 2.23.
Przygotowanie tekstur napisów

Zanim jednak przejdziemy do pokrywania napisami kubka, musimy najpierw przygotować odpowiednie tekstury. Pierwsza z nich zostanie użyta jako mapa koloru i powinna przedstawiać dowolny napis, ale proponuję, aby nie był on jednokolorowy. Druga zaś jest czarno-białym odpowiednikiem pierwszej, przedstawionym w negatywie i jest przeznaczona do użycia jako kanał alfa. Rozdzielczość tekstur nie ma znaczenia i można je wykonać w dowolnym programie do grafiki rastrowej, na przykład: Adobe PhotoShop czy Corel Painter — przykładowe znajdują się na rysunku 2.27.

Rysunek 2.27. Przykładowa tekstura napisu i jej kanał alfa

0x01 graphic

0x01 graphic

Ćwiczenie 2.24.
Przydzielenie materiałowi tekstury

W Surface Editorze musimy zlikwidować zaznaczenie --> [Author:MK] materiału „kubek”, którego już nie będziemy edytować — możemy to zrobić dwojako: albo kliknąć nazwę „kubek napis”, albo przytrzymać Alt lub Ctrl i kliknąć „kubek”. Przyciskamy literę T w parametrze Color, co pozwoli nam nałożyć na obiekt mapę koloru. W efekcie otworzyło się okno Texture Editor, przedstawione na rysunku 2.28.

Rysunek 2.28. Okno Texture Editor

0x01 graphic

Najpierw musimy wczytać przygotowaną mapę, więc z belki w polu Image wybieramy opcję (load image) i po odnalezieniu w otwartym oknie Load Clip or Still odpowiedniego obrazka (może w tym pomóc przełączenie w tryb Show Icons) klikamy na nim dwa razy. W efekcie został on wgrany do programu, co można poznać po jego miniaturce w dotąd czarnym okienku. Obecnie zawartość Texture Editora i okna VIPER wygląda, jak na rysunku 2.29.

Rysunek 2.29. Zawartość okien po wczytaniu obrazka „napis.jpg”

0x01 graphic

0x01 graphic

Ćwiczenie 2.25.
Opcje pozycjonujące teksturę na obiekcie

Już na pierwszy rzut oka widać, że z teksturą coś jest „nie tak”. Jeżeli bliżej zapoznamy się z ważniejszymi parametrami, jakie oferuje okno Texture Editor, sprawa stanie się jasna:

Zatem, aby mapa była właściwie ustawiona, musimy przełączyć typ rzutowania obiektu z Planar na Cylindrical, wartość opcji Width Wrap Amount (która określa, ile razy ma się powtórzyć tekstura dla mapowania cylindrycznego) ustawić na 2.0, zmienić oś rzutowania z Z na Y oraz skorzystać z opcji Automatic Sizing, która samoczynnie dobierze odpowiednie wartości dla parametru Scaling i Position tak, aby napisy jak najlepiej prezentowały się na kubku. Jeśli się patrzy na obraz w podglądzie VIPER, to można zauważyć, że warto jeszcze trochę obrócić naszą teksturę, więc przechodzimy do zakładki Rotation i w polu H wpisujemy -90. Obecnie powinniśmy otrzymać obraz z rysunku 2.30.

Rysunek 2.30. Zawartość okien po modyfikacji parametrów rzutowania tekstury

0x01 graphic

0x01 graphic

Ćwiczenie 2.26.
Tekstura a kanał alfa

Wszystko wygląda dobrze, ale kubek jest z zewnętrznej strony biały, a konkretnie w kolorze tła napisu. Aby to tło wyeliminować, skorzystamy z trybu przenikania Alpha i przygotowanego wcześniej drugiego obrazka. Jako że druga tekstura będzie miała dokładnie takie same parametry, jak pierwsza, więc możemy przekopiować zawartość warstwy z pierwszej i wkleić ją do nowej warstwy. Zatem najpierw z belki Copy okna Texture Editor wybieramy funkcję Current Layer, a następnie z belki Paste funkcję Add to Layers — pojawiła się nowa warstwa z tą samą zawartością. Dla górnej warstwy wystarczy teraz jedynie ustawić opcję Blending Mode na Alpha, a dla Image ponownie wybrać na belce linię (load image), tym razem wczytując obrazek „napis-alpha.jpg”. Kubek z napisami jest przedstawiony na rysunku 2.31. Aby zapamiętać ustawienia tekstur, zamykamy okno Texture Editora, naciskając przycisk Use Texture.

Rysunek 2.31. Kubek już z właściwie nadanymi napisami

0x01 graphic

0x01 graphic

Ćwiczenie 2.27.
Korzystanie z tekstur proceduralnych

Można jeszcze pokusić się o nadanie jakiejś bardziej atrakcyjnej powierzchni materiałowi „podloze”. W tym celu zaznaczmy go, klikając jego nazwę na liście okna Surface Editor albo obiekt w oknie VIPER, a następnie również dla parametru Color kliknijmy klawisz z literą T. W górze okna Texture Editor znajduje się opcja Layer Type, określająca typ warstwy — zmieńmy ją na Procedural Texture (tekstura proceduralna). W polu Procedural Type wybierzmy z belki teksturę Ripples i następująco zmodyfikujmy jej kolor: R: 96, G: 128 B: 160, a pozostałe parametry ustawmy, jak na rysunku 2.32a. Efekt działania tekstury widać na rysunku 2.32b.

Rysunek 2.32. Tekstura proceduralna nadawana obiektowi podłoża

0x01 graphic

0x01 graphic

Okno Texture Editora zamykamy tak, jak poprzednio, czyli naciskając przycisk Use Texture. Możemy również opuścić okna VIPERA i Surface Editora, gdyż zakończyliśmy już ustawianie parametrów materiałów dla obiektów.

Ćwiczenie 2.28.
Światło w scenie

Pozostaje jeszcze tylko dobrać dla naszej sceny odpowiedniejsze oświetlenie— zaznaczamy światło i klikamy przycisk Item Properties (p). LightWave oferuje pięć rodzajów światła:

W otwartym oknie zmieniamy Light Type z Distant na Area Light (dzięki temu cień rzucany przez kubek będzie znacznie bardziej realistyczny), poprawiamy jakość cieni, wpisując w pole Linear/Area Light Quality cyfrę 5 i zmniejszamy intensywność światła do 50% — rysunek 2.33a. Możemy jeszcze skorzystać z funkcji wygładzania „szumów”, które powstają między innymi w obrębie cieni, gdy Antialiasing ustawiony jest na jedną z niższych wartości — klikamy przycisk Global Illumination, który znajduje się w górnej części okna Light Properties i włączamy opcję Shading Noise Reduction, jak pokazano na rysunku 2.33b.

Rysunek 2.33. Ustawianie parametrów światła

  1. okno właściwości światła

  2. okno Global Illumination

0x01 graphic

0x01 graphic

Ćwiczenie 2.29.
Końcowa wizualizacja sceny

Aby zakończyć to ćwiczenie, pozostało jedynie wyliczyć scenę w jej finalnej postaci. Jednak pamiętajmy, aby najpierw we właściwościach wizualizacji Rendering/Render Options wyłączyć opcję Enable Viper oraz włączyć wszystkie cztery z grupy Ray Trace. Końcowa ilustracja przedstawiona jest na rysunku 2.34. Jeśli chcemy ją zachować, musimy użyć polecenia File/Save RGBA z okna, w którym wyświetlana jest wizualizacja i wybrać dowolny format pliku graficznego.

Rysunek 2.34. Końcowa wizualizacja kubka

0x01 graphic

Ćwiczenie 2.30.
Zakończenie pracy nad projektem

Kończąc każdy projekt, musimy pamiętać o jego zachowaniu na dysku. Aby zapisać scenę, korzystamy z opcji File/Save/Save Scene As (S). Musimy również zachować wszystkie obiekty sceny, gdyż informacje o ich materiałach nie są zapisywane w pliku sceny, ale w pliku obiektu — wybieramy funkcję File/Save/Save All Objects.

2 Część I Podstawy obsługi systemu WhizBang (Nagłówek strony)

15 E:\LightWave\3 po poprawkach\r02-p-03.doc

?

?



Wyszukiwarka

Podobne podstrony:
R02-03, ## Documents ##, C++Builder 5
R02 03
03 Sejsmika04 plytkieid 4624 ppt
03 Odświeżanie pamięci DRAMid 4244 ppt
podrecznik 2 18 03 05
od Elwiry, prawo gospodarcze 03
Probl inter i kard 06'03
TT Sem III 14 03
03 skąd Państwo ma pieniądze podatki zus nfzid 4477 ppt
03 PODSTAWY GENETYKI
Wyklad 2 TM 07 03 09

więcej podobnych podstron