Temat 14: Tworzenie i wykorzystanie makr oraz bibliotek

Transkrypt

Temat 14: Tworzenie i wykorzystanie makr oraz bibliotek
Temat 14: Tworzenie i wykorzystanie makr oraz bibliotek. Użycie funkcji sinus w animacji.
Utworzymy kilka modeli mebli, które będziemy chcieli wykorzystać w
różnych konfiguracjach i kolorystyce. Rozpoczniemy od modelu szafki. Jej kod
napiszemy jednorazowo, ale będziemy mogli umieścić ja na scenie w różnych
rozmiarach i teksturach.
Ćwiczenie 088
Wpisz poniższy kod:
Grafika 3D – program POV-Ray
- 114 -
Przed tworzeniem kodu szafki zadeklarowaliśmy zmienne dla jej wymiarów i tekstur. Szafka powstała
poprzez odjęcie od prostopadłościanu (box) jej bryły mniejszego prostopadłościanu (powstało zagłębienie
nad drzwiczkami). Następnie dodaliśmy dwa prostopadłościany drzwiczek oraz dwa niewielkie walce –
uchwyty drzwiczek.
Oczywiście łatwiej byłoby nam wpisywać konkretne wymiary, zamiast zmiennych, ale nie powstało by
wtedy makro. Renderujemy naszą scenę (po dopisaniu kodu wywołującego szafkę):
W celu utworzenia pierwszego makra zapisujemy nasz plik pod nazwą meble.inc. Usuwamy początek
kodu i doprowadzamy go do postaci:
Grafika 3D – program POV-Ray
- 115 -
Zauważmy od razu, że zapis kodu makra ma postać:
#macro nazwa_obiektu(lista_zmiennych)
treść_makra
#end
Jeśli teraz wpiszemy kod:
to zobaczymy cztery różne szafki:
Jeżeli wykorzystywane makra są umieszczone w osobnych plikach *.inc, to należy te pliki zadeklarować
na początku kodu sceny. Ponadto pliki te muszą być zapisane w tym samym folderze co plik sceny, lub
w folderze include programu POV-Ray.
Grafika 3D – program POV-Ray
- 116 -
Ćwiczenie 089
Zmieniając odpowiednio początkowy kod z ćwiczenia 088 tworzymy scenę zawierającą nadstawkę na
szafkę (zbudujemy regał):
Nadstawka znajduje się na poziomie 0, więc aby ją postawić na szafce musimy przesunąć w górę.
Grafika 3D – program POV-Ray
- 117 -
Fragment kodu począwszy od definicji nadstawki kopiujemy do pliku meble.inc i zmieniamy
odpowiednio zapis:
Budujemy scenę z wykorzystaniem obu obiektów z biblioteki:
Grafika 3D – program POV-Ray
- 118 -
Ćwiczenie 090
Tworzymy scenę zawierającą stolik:
Grafika 3D – program POV-Ray
- 119 -
Zatem do pliku meble.inc dopiszemy:
po czym sprawdzimy działanie makra:
Grafika 3D – program POV-Ray
- 120 -
Ćwiczenie 091
Do kompletu dodamy jeszcze krzesło:
Grafika 3D – program POV-Ray
- 121 -
Do pliku meble.inc dopiszemy zatem kod:
Dysponujemy teraz kilkoma rodzajami mebli, co pozwoli nam zbudować scenę przedstawiającą
umeblowane pomieszczenie.
Ćwiczenie 092
Utwórzmy scenę przedstawiającą pomieszczenie:
Grafika 3D – program POV-Ray
- 122 -
Pomieszczenie to jest chwilowo puste:
Dopiszmy kod mebli:
Grafika 3D – program POV-Ray
- 123 -
Po zrenderowaniu sceny zobaczymy umeblowane pomieszczenie:
Ćwiczenie 093
Chcemy „rozejrzeć się” po pomieszczeniu utworzonym w ćwiczeniu 092. Będziemy obracać kamerę
(poziomo) w lewo i w prawo o 25 stopni od położenia początkowego. Zmieniamy kod kamery:
Jak widać kamerę umieściliśmy bliżej narożnika pokoju i oglądamy scenę pod kątem 40 stopni.
Ponieważ funkcja sinus w zakresie 0..2π przyjmuje wszystkie wartości od -1 do 1, to zapis:
rotate y*25*sin(clock*2*pi)
spowoduje obroty kamery od -25 do 25 stopni.
Wygeneruj film przyjmując liczbę klatek = 200.
Grafika 3D – program POV-Ray
- 124 -
Ćwiczenie 094
Oczywiście funkcję sinus możemy wykorzystać również dla ruchu obiektu. Wpisz poniższy kod:
Po wyrenderowaniu sceny zobaczymy wahadło:
Wygeneruj film przyjmując liczbę klatek = 100.
Grafika 3D – program POV-Ray
- 125 -