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 -