06. Tekst w przestrzeni trójwymiarowej. Podstawy
Transkrypt
06. Tekst w przestrzeni trójwymiarowej. Podstawy
Temat 6: Tekst w przestrzeni trójwymiarowej. Podstawy tworzenia animacji. Instrukcja warunkowa if. Program pozwala umieszczać na scenie nie tylko bryły, czy figury płaskie, ale też tekst. Polecenie tworzące tekst ma postać: text < ttf ”plik.ttf”, ”tekst”, głębokość, offset > Głębokość jest liczbą rzeczywistą, zaś offset wynosi na ogół 0. Pierwsza litera znajduje się w początku układu współrzędnych. Tekst możemy również skalować, obracać i przesuwać. Sprawdźmy w praktyce różne parametry polecenia. Ćwiczenie 041 Wpisz kod i zrenderuj scenę: Przy dużej wielkości głębokości uzyskamy wrażenie nieskończoności: Dla głębokości zerowej uzyskamy tekst płaski: Nieoczekiwany efekt uzyskamy dla ujemnej wartości głębokości: Grafika 3D – program POV-Ray - 29 - Prześledźmy teraz, co daje zmiana wartości offsetu. Dla wartości dodatnich tekst będzie rozrzedzony, a kolejne litery wznosić się będą schodkowo do góry: Dla ujemnych wartości offsetu tekst będzie ściśnięty, a litery zstępować będą schodkowo w dół: Ćwiczenie 042 W kodzie poprzedniego ćwiczenia zmień rodzaj czcionki, a zamiast wyrazu „Tekst” wpisz wyraz „Złość”. Wyświetlone zostaną tylko dwie litery – polskie znaki zostaną zignorowane: W pomocy programu możemy przeczytać, że dowolny znak kodowany w utf-8 uzyskamy wpisując po znaku „\” odpowiedni kod ASCII w notacji szesnastkowej (po literze c). Kody te łatwo znaleźć w Internecie. W notacji przyjętej w POV-Ray są to: Ą u0104 Ć u0106 Ę u0118 Ł u0141 Ń u0143 Ó u00D3 Ś u015A Ź u0179 Ż u017B ą u0105 ć u0107 ę u0119 ł u0142 ń u0144 ó u00F3 ś u015B ź u017A ż u017C Po zastąpieniu polskich liter nie otrzymamy niestety jeszcze zadowalającego rezultatu: Musimy jeszcze przed wstawieniem tekstu zadeklarować stronę kodową: Grafika 3D – program POV-Ray - 30 - Ćwiczenie 043 Utwórz scenę zbliżoną do poniższej ilustracji: Mamy już wystarczająco dużą wiedzę na temat tworzenia obiektów i scen aby utworzyć prostą animację. Zacznijmy od budowy sceny zawierającej koło: Ćwiczenie 044 Utwórz scenę: Grafika 3D – program POV-Ray - 31 - Zapis rotate z*kąt oznacza obrót wokół osi z o podany kąt. Użyjemy parametru clock. Parametr ten w trakcie renderingu klatek animacji wzrasta od zera do jedności w tylu krokach, ile jest klatek. Zamiast rotate z*0 wpiszemy zatem rotate z*clock*360. W linii komend wpisujemy +kff36 +ft, gdzie +kff36 oznacza polecenie utworzenia 36 klatek, a +ft oznacza format TGA graficznych plików wynikowych. Otrzymane ponumerowane kolejno pliki umieszczamy w osobnym folderze: Do tego samego foldera kopiujemy plik pjBmp2Avi.exe. Po jego uruchomieniu ustalamy typ plików (TGA), nazwę pliku wyjściowego (film.avi) i liczbę klatek na sekundę (25). Po kliknięciu przycisku [Create] z listy rozwijalnej wybieramy parametry kompresji i klikamy [OK]. Klip filmowy zostanie utworzony w naszym folderze. Grafika 3D – program POV-Ray - 32 - Ćwiczenie 045 W poprzednim ćwiczeniu animowany obiekt przekształcany był przez obrót. Teraz wykonamy animację w oparciu o przesunięcie. Animacja przedstawiać będzie strzałę zmierzającą w kierunku tarczy. Na początek projektujemy scenę: Współrzędna x czubka grotu strzały ma wartość 10, zaś dla tylnej ściany tarczy jest to -10. Aby strzała trafiła w środek tarczy musi być przesunięta o -20 wzdłuż osi x. Zmieniamy zatem ostatnią linijkę kodu: W linii komend wpisujemy +kff100 +ft, gdzie +kff100 oznacza polecenie utworzenia 100 klatek, a +ft oznacza format TGA graficznych plików wynikowych. Uruchamiamy rendering i generujemy 100 klatek filmu. Gotowy klip otrzymujemy wykonując operacje analogiczne, jak w poprzednim ćwiczeniu. Grafika 3D – program POV-Ray - 33 - Ćwiczenie 046 Wygenerowana przez nas animacja ma jedną wadę – po wbiciu strzały w tarczy animacja kończy się i nie widać efektu trafienia (zatrzymania). Postaramy się to zmienić. Strzała będzie się przesuwać w kierunku tarczy przez 0,8 czasu trwania animacji, a przez pozostałe 0,2 czasu będzie nieruchoma. Jeśli strzała pokona dystans 20 jednostek przez 0,8 czasu, to przez cały czas pokonałaby 25 jednostek. W miejsce ostatniej linii kodu wpisujemy zatem: Zapis użytej instrukcji warunkowej oznacza: jeżeli minęło co najwyżej 0,8 czasu to zadeklaruj przesunięcie -25*czas w przeciwnym razie zadeklaruj przesunięcie -20 koniec Wygeneruj klatki animacji i cały film przy ustawieniach jak w poprzednim ćwiczeniu. Efekt będzie dużo lepszy. Zapamiętaj! Instrukcja warunkowa if w programie POV-Ray ma strukturę: #if (warunek) lista poleceń #else lista poleceń #end Polecenie #declare zmienna = wartość; pozwala zadeklarować różne wartości parametrów w zależności od warunków. Grafika 3D – program POV-Ray - 34 - Ćwiczenie 047 W ćwiczeniu 040 wygenerowaliśmy przezroczysty model sześcianu. Utworzymy animację w oparciu o ten model. Utwórz nowy plik i przekopiuj do niego kod utworzony w ćwiczeniu 040. Zmień kod tak, aby otrzymać deklarację obiektu szescian i jego wywołanie: Jak widać tym razem w kolejnych krokach animacji sześcian będzie obracany wokół każdej osi. Utwórz animację generując uprzednio 72 klatki. Grafika 3D – program POV-Ray - 35 -