Graficzne modelowanie scen 3D. POV-Ray. Wykład 2

Podobne dokumenty
Podstawy POV-Ray a. Diana Domańska. Uniwersytet Śląski

Podstawy POV-Ray a. Diana Domańska. Uniwersytet Śląski

Grafika 3D program POV-Ray

Techniki wizualizacji. Ćwiczenie 10. System POV-ray tworzenie animacji

Grafika 3D program POV-Ray - 1 -

Tektura obiektów. Ogólnie sekcja opisująca teksturę wygląda następująco:

Podstawy POV-Ray a. Diana Domańska. Uniwersytet Śląski

Zajęcia z grafiki komputerowej Pov Ray część 2

Graficzne modelowanie scen 3D. POV-Ray. Wykład 3

Grafika Komputerowa Wykład 5. Potok Renderowania Oświetlenie. mgr inż. Michał Chwesiuk 1/38

Spora część kodu programu jest dla nas nieprzydatna. Dokonaj zmian tak, aby kod miał postać:

Grafika komputerowa. Model oświetlenia. emisja światła przez źródła światła. interakcja światła z powierzchnią. absorbcja światła przez sensor

Ustawienia materiałów i tekstur w programie KD Max. MTPARTNER S.C.

Oświetlenie. Modelowanie oświetlenia sceny 3D. Algorytmy cieniowania.

Animowana grafika 3D. Opracowanie: J. Kęsik.

Graficzne modelowanie scen 3D. Wykład. Pov-Ray

Oświetlenie obiektów 3D

6 Przygotował: mgr inż. Maciej Lasota

Techniki wizualizacji. Ćwiczenie 9. System POV-ray - wprowadzenie

Ćwiczenie 4 - Podstawy materiałów i tekstur. Renderowanie obrazu i animacji

rgbf<składowa_r,składowa_g,składowa_b,filter>. Dla parametru filter przyjmij kolejno wartości: 0.60, 0.70, 0.80, 0.90, 1.00, np.:

Rysunek 1: Okno timeline wykorzystywane do tworzenia animacji.

Model oświetlenia. Radosław Mantiuk. Wydział Informatyki Zachodniopomorski Uniwersytet Technologiczny w Szczecinie

OpenGL oświetlenie. Bogdan Kreczmer. Katedra Cybernetyki i Robotyki Wydziału Elektroniki Politechnika Wrocławska

Światła i rodzaje świateł. Dorota Smorawa

3 Przygotował: mgr inż. Maciej Lasota

Zjawisko widzenia obrazów

Przy dużej wielkości głębokości uzyskamy wrażenie nieskończoności: Dla głębokości zerowej uzyskamy tekst płaski:

GIMP. Ćwiczenie nr 6 efekty i filtry. Instrukcja. dla Gimnazjum 36 - Ryszard Rogacz Strona 18

Materiały. Dorota Smorawa

Grafika trójwymiarowa. Grafika trójwymiarowa. Pojęcie kamery. Źródła światła - przykłady. Rzutowanie trójwymiarowych obiektów. Grafika trójwymiarowa

Podstawy 3D Studio MAX

LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab

Pracownia Informatyczna Instytut Technologii Mechanicznej Wydział Inżynierii Mechanicznej i Mechatroniki. Podstawy Informatyki i algorytmizacji

Oświetlenie w OpenGL. Oprogramowanie i wykorzystanie stacji roboczych. Wykład 8. Światło otaczajace. Światło rozproszone.

GRK 4. dr Wojciech Palubicki

Grafika 3D program POV-Ray

Aleksandra Zając. Raport. Blender. Pokemon: Eevee

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Przewodnik po soczewkach

Techniki Multimedialne

Baltie 3. Podręcznik do nauki programowania dla klas I III gimnazjum. Tadeusz Sołtys, Bohumír Soukup

Cw.12 JAVAScript w dokumentach HTML

Polecenie ŚWIATPUNKT - ŚWIATŁO PUNKTOWE

WSTĘP DO GRAFIKI KOMPUTEROWEJ

Zastosowanie stereowizji do śledzenia trajektorii obiektów w przestrzeni 3D

1 Programowanie w matlabie - skrypty i funkcje

Grafika Komputerowa Wykład 6. Teksturowanie. mgr inż. Michał Chwesiuk 1/23

Jak tworzyć dobre wizualizacje? Porady do wykorzystania w programie KD Max. MTpartner s.c.

Śledzenie promieni w grafice komputerowej

Pętle. Dodał Administrator niedziela, 14 marzec :27

Przygotowanie grafiki 3D do gier komputerowych

Matlab Składnia + podstawy programowania

Światło. W OpenGL można rozróżnić 3 rodzaje światła

zajęcia 2 Definiowanie wektorów:

Ćwiczenie nr 8 - Modyfikacje części, tworzenie brył złożonych

Podstawy Programowania C++

Gry komputerowe: efekty specjalne cz. 2

OpenGL Światło (cieniowanie)

Julia 4D - raytracing

Wprowadzenie do rysowania w 3D. Praca w środowisku 3D

Wykład 4. Rendering (1) Informacje podstawowe

Plan wykładu. Akcelerator 3D Potok graficzny

1 Zrozumieć Flasha... 1 Co można zrobić za pomocą Flasha?... 2 Tworzenie obrazków do strony 3 Animowanie witryny 4 Tworzenie filmów

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach?

Grafika Komputerowa Wykład 4. Synteza grafiki 3D. mgr inż. Michał Chwesiuk 1/30

i ruchów użytkownika komputera za i pozycjonujący oczy cyberagenta internetowego na oczach i akcjach użytkownika Promotor: dr Adrian Horzyk

Grafika realistyczna. Oświetlenie globalne ang. global illumination. Radosław Mantiuk

Informacja o języku. Osadzanie skryptów. Instrukcje, komentarze, zmienne, typy, stałe. Operatory. Struktury kontrolne. Tablice.

GRAKO: ŚWIATŁO I CIENIE. Modele barw. Trochę fizyki percepcji światła. OŚWIETLENIE: elementy istotne w projektowaniu

Ćwiczenie 14 Dmuchawce

Podstawy POV-Ray'a. Diana Doma«ska. Uniwersytet l ski. Diana Doma«ska (U ) Podstawy POV-Ray'a 1 / 13

Dodatkowo klasa powinna mieć destruktor zwalniający pamięć.

Bartosz Bazyluk SYNTEZA GRAFIKI 3D Grafika realistyczna i czasu rzeczywistego. Pojęcie sceny i kamery. Grafika Komputerowa, Informatyka, I Rok

JAVAScript w dokumentach HTML - przypomnienie

Funkcje i instrukcje języka JavaScript

Komentarze w PHP (niewykonywane fragmenty tekstowe, będące informacją dla programisty)

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Procedury i funkcje. Programowanie komputerowe

Ćwiczenie 1 Galeria zdjęć

Zasada Fermata mówi o tym, że promień światła porusza się po drodze najmniejszego czasu.

Grafika Komputerowa. Wykład 8. Przygotowanie do egzaminu. mgr inż. Michał Chwesiuk 1/32

OpenGL Światło (cieniowanie)

Mathcad c.d. - Macierze, wykresy 3D, rozwiązywanie równań, pochodne i całki, animacje

Język programowania zbiór reguł określających, które ciągi symboli tworzą program komputerowy oraz jakie obliczenia opisuje ten program.

Optyka 2012/13 powtórzenie

Zajęcia nr 2 Programowanie strukturalne. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

ECDL/ICDL CAD 2D Moduł S8 Sylabus - wersja 1.5

Modelowanie i wstęp do druku 3D Wykład 1. Robert Banasiak

Animacja. Instrukcja wykonania animacji metodą klatek kluczowych. Autor: Bartosz Kowalczyk. Blender 2.61

Podstawy programowania skrót z wykładów:

Dziedziczenie. Zadanie 1

Lab 10. Funkcje w argumentach funkcji metoda Newtona. Synonimy nazw typów danych. Struktury. Tablice struktur.

TECHNIKI MULTIMEDIALNE LABORATORIUM GIMP: Projektowanie tła

Programowanie gier komputerowych Tomasz Martyn Wykład 6. Materiały informacje podstawowe

Animowana grafika 3D. Opracowanie: J. Kęsik.

Mamy co prawda trawiastą powierzchnię ziemi i niebo, ale scena wygląda mało realistycznie. Zmieńmy nieco właściwości tekstury płaszczyzny gruntu:

Przykładowo, jeśli współrzędna x zmienia się od 0 do 8 co 1, a współrzędna y od 12 co 2 do 25, to punkty powinny wyglądać następująco:

Opis Edytora postaci Logomocji

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

4. Funkcje. Przykłady

Transkrypt:

POV-Ray Wykład 2

Własne obiekty Deklarowanie własnego obiektu: #declare nazwa = definicja_obiektu; nazwa jest to nazwa do jakiej będziemy się odwoływać w dalszej części naszego skryptu, definicja_obiektu jest to właściwa definicja obiektu składająca się np. z prymitywów, obiektów powstałych przez zastosowanie CSG. Przykład #declare kolo=union { sphere{<0,0,0> 0.5 texture{pigment{color Black}} scale<1,1,0.2> } sphere{<0,0,0> 0.25 texture{pigment{color White}} scale<1,1,0.5> } } Po zadeklarowaniu własnego obiektu możemy z niego skorzystać w swoim skrypcie wielokrotnie. Aby skorzystać z własnego obiektu: object{kolo} object{kolo translate<-4.5,0.5,-1.5>} object{kolo rotate<0,45,0> translate<-4.5,0.5,1.5>}

Przykład - Autobusy #declare kolo=union { sphere{<0,0,0> 0.5 texture{pigment{color Black}} scale<1,1,0.2> } sphere{<0,0,0> 0.25 texture{pigment{color White}} scale<1,1,0.5> } } #declare reflektor=union { sphere{<0,0,0> 0.2 texture{pigment{color White} finish{ambient 0.9}} scale<1,1,0.4> } } #declare autobus=union { difference { union { box{<-6,0.5,-1.5><6,3.5,1.5> texture{pigment{color Red}}} object{kolo translate<-4.5,0.5,-1.5>} object{kolo translate<-4.5,0.5,1.5>} object{kolo translate<3.8,0.5,-1.5>} object{kolo translate<3.8,0.5,1.5>} object{kolo translate<5,0.5,-1.5>} object{kolo translate<5,0.5,1.5>} light_source{<0, 0, 0> color White looks_like{reflektor} rotate<0,90,0> translate<-6, 1,-1>} light_source{<0, 0, 0> color White looks_like{reflektor} rotate<0,90,0> translate<-6, 1, 1>} } box{<-6.1, 2, -1.3><6.1, 3, 1.3> texture{pigment{color Brown}}} box{<-5.9, 2, -1.6><-4.9, 3, 1.6> texture{pigment{color Silver}}} box{<-4, 2, -1.6><-2, 3.3, 1.6> texture{pigment{color Silver}}} box{<-1.5, 2, -1.6><0.5, 3.3, 1.6> texture{pigment{color Silver}}}

box{<1, 2, -1.6><3, 3.3, 1.6> texture{pigment{color Silver}}} box{<3.5, 2, -1.6><5.5, 3.3, 1.6> texture{pigment{color Silver}}} box{<-5.9, 2.5, -1.4><5.9, 3.4, 1.4> texture{pigment{color Yellow}}} box{<-5.9, 1, -1.4><5.9, 2.5, 1.4> texture{pigment{color Brown}}} } } object{autobus rotate<0,-75,0>} object{autobus rotate<0,-75,0> translate<-6,0,0>} object{autobus rotate<0,-75,0> translate<6,0,0>} camera { location <8,2,-20> look_at <0,2,0> }

camera { location <0,2.5,0> look_at <-6,2,-6> }

Odblaski, predefiniowane tekstury W celu dodania odblasku do obiektu po pigment dodajemy polecenie finish{specular s roughness r} gdzie s jest to liczba z [0,1] definiująca nasycenie odblasku, r jest to wielkość miejsca odblasku (domyślnie 0.05; nie może przyjmować wartości 0). Predefiniowane tekstury znajdują się w plikach: textures.inc, golds.inc, metals.inc, stones.inc, woods.inc (http://www.povray.org/documentation/3.7.0/ http://texlib.povray.org/byname.html). Przeźroczystość Przeźroczystość możemy uzyskać za pośrednictwem metody filter lub metody transmit. texture{ pigment{color Red filter 0.7 }} texture{ pigment{color Red transmit 0.7 }}

Aby utworzyć efekt podobny do szkła, należy użyć interior{ior 1.5} Domyślna wartość ior 1,0 da żadnego załamania. Współczynnik załamania światła w powietrzu wynosi 1, wody 1.33, szkła 1.5 a diamentu 2.4.

Przednie szyby autobusów są koloru zielonego z parametrem odpowiedzialnym za stopień przeźroczystości określonym na poziomie 0.9 oraz współczynnikiem załamania światła odpowiadającym szkłu (1.5).

finish - opisuje sposób rozchodzenia się, odbijania i przyjmowania światła na obiekcie. finish{parametry} Wybrane parametry funkcji finish: Ambient - symuluje światło rozproszone w przestrzeni, obiekty w cieniu oświetlone są przez światło odbite od innych przedmiotów znajdujących się na scenie, ponieważ modelowanie takiego oświetlenia za pomocą raytraycing'u jest bardzo skomplikowane i czasochłonne, wykorzystywany jest w tym celu właśnie ambient. Wartość domyślna wynosi 0.1, wartość funkcji należy do przedziału [-1, 1], ale można używać parametrów z poza tego przedziału. Diffuse - rozproszenie światła odbitego, określa ile procent padającego światła ulega rozproszeniu. Wartość domyślna wynosi 0.6 (oznacza to, że 60% światła widzianego pochodzi bezpośrednio ze źródła oświetlenia), wartość funkcji należy do przedziału [0,1], ale można używać parametrów z poza przedziału. Brilliance - połysk, ilość światła, które ulega rozproszeniu po odbiciu od powierzchni obiektów, zależy od typu powierzchni i od kąta padania

promieni świetlnych. Parametr ten pozwala na modyfikację zachowania się lśniących powierzchni. Wartość domyślna wynosi 1.0, wartość funkcji należy do przedziału [-1, 10], ale można używać parametrów z poza przedziału. Phong - opisuje punktowe rozjaśnienia powierzchni obiektu, typowy efekt dla metalowych i szklanych powierzchni. Wartość domyślna wynosi 0.0, wartość funkcji należy do przedziału [0, 1] ale można używać parametrów większych niż 1, w przypadku gdy wartość jest równa 0, nie ma żadnego efektu, gdy parametr przyjmuje wartość większą od 0, występuje rozjaśnienie. Pong_size - występuje tylko gdy wcześniej został użyty phong (jeśli nie został użyty phong, phong_size nie da żadnego efektu), opisuje wielkość rozjaśnienia wywołanego przez phong. Wartość domyślna wynosi 40.0, wartość funkcji należy do przedziału <-1,1000>, ale można używać parametrów z poza przedziału, wówczas efekt jest nieco dziwny. Specular - funkcja bardzo podobna do phong (używa nieco odmiennego modelu), opisuje zjawiska świetlne na granicy przedmiotu, dotyczy zjawisk blisko granicy (horyzontu) przedmiotu. Wartość domyślna wynosi 0.0, wartość funkcji należy do przedziału [0, 1] ale można używać parametrów

większych niż 1, w przypadku gdy wartość jest równa 0, nie ma żadnego efektu, gdy parametr przyjmuje wartość większą od 0, występuje rozjaśnienie. Roughness - funkcja bardzo podobna do phong_size, występuje tylko gdy wcześniej został użyty specular (jeśli nie został użyty specular, roughness nie da żadnego efektu), opisuje wielkość rozjaśnienia wywołanego przez specular. Wartość domyślna wynosi 0.05, wartość funkcji należy do przedziału [-1,1], ale można używać parametrów z poza przedziału, wówczas efekt jest nieco dziwny. Metallic - występuje tylko gdy wcześniej został użyty phong lub specular (jeśli nie został użyty phong lub specular, metallic nie da żadnego efektu), opisuje kolor rozjaśnienia wywołanego przez phong lub specular. Wartość domyślna wynosi 0.0,wartość funkcji należy do przedziału [0, 1] ale można używać parametrów z poza przedziału.. Reflection - funkcja symulująca odbicie lustrzane na danym obiekcie. Wartość domyślna wynosi 0.0, wartość funkcji należy do przedziału [0, 1], ale można używać parametrów większych niż 1, w przypadku gdy wartość jest równa 0, nie ma żadnego efektu, gdy parametr przyjmuje wartość większą od 0, występuje efekt odbicia, gdy parametr jest równy 1.0

wówczas mamy idealne lustro. Dodatkowo w reflection występują takie funkcje jak: Rgb - kolor odbicia, obiekt może odbijać tylko jeden kolor. Wartość domyślna funkcji wynosi rgb <0,0,0>, wartość funkcji jest ustawiana jak zwykły kolor rgb. W przypadku gdy wartość jest równa 0, nie ma żadnego efektu [brak odbicia], gdy parametr przyjmuje wartość większą od 0, występuje efekt odbicia (konkretnie, ustawionego koloru), gdy parametr jest równy 1.0 wówczas mamy idealne lustro (efekt taki jak przy reflection równym 1.0). Irid - funkcja symuluje efekt światła na powierzchni z mikroskopijną przeźroczystą powłoką (plama oleju na kałuży). Wartość domyślna funkcji wynosi 0.0, wartość funkcji należy do przedziału [0,1] ale można używać parametrów większych niż 1. W irid występują takie funkcje jak: Thickness - grubość powłoki. Wartość domyślna funkcji wynosi 0.0,wartość funkcji należy do przedziału liczb całkowitych, znak nie ma tu żadnej różnicy. Turbulence - występuje tylko gdy wcześniej został użyty thickness, opisuje wielkość turbulencji, zaburzeń w powłoce irid. Wartość domyślna wynosi 0.0, wartość funkcji należy do przedziału liczb całkowitych (najlepsze efekty są przy małych liczbach).

Zestawienie wybranych tekstur

Zmienne Do definiowania zmiennych służą dwie instrukcje #declare nazwa1 = wartość1; #local nazwa2 = wartość2; Różnica jest taka, ze declare definiuje zmienną globalną, a local zmienną lokalną (widoczna jest jedynie w pliku/funkcji, w którym ja utworzono). Operatory arytmetyczne: +, -, *, /. Wbudowane stałe: pi, true, false, yes, no, on, off. Operatory logiczne: &,,!. Operatory porównania: <, <=, =,!=, >=, > Wybrane funkcje matematyczne abs(x) wartość bezwzględna mod(x, y) modulo y z x div(x, y) dzielenie całkowite pow(x, y) potęgowanie x do y log(x) logarytm o podstawie 10 floor(x) exp(x) funkcja ekspotencjalna ceil(x) sin(x) sinus rand(x) cos(x) cosinus seed(x) zaokrągla liczby do liczb całkowitych (w dół) zaokrągla liczby do liczb całkowitych (w górę) zwraca liczbę pseudolosowa z przedziału [0,1] ustawia ziarno generatora pseudolosowego

Instrukcja warunkowa #if(warunek 1) // polecenia #elseif(warunek 2) // polecenia #else //polecenia #end Pętle #while ( warunek ) // polecenia #end #for( identyfikator, start, koniec [, krok] ) // polecenia #end Deklaracja tablicy (indeksowanie elementów zaczyna się od 0) #declare tab_name = array[r1][r2]...; #declare tab1 = array[3]{1, 2, 3}; #declare tab2 = array[2][3]{{1, 2, 3}, {4, 5, 6}}; Zapis wartości do tablicy #declare tab_name[1] = pigment{red};

Definiowanie własnego makra #macro nazwa (param1, param2,... ) // polecenia #end W przypadku gdy wewnątrz makra będzie tworzony np. obiekt to makro będzie się zachowywać jak funkcja zwracająca pojedynczą wartość (ten obiekt). Drugim sposobem zwracania wartości jest zwracanie przez parametr, np. #macro przyklad (zm1,zm2, zm3) #declare zm1 =zm2 * zm3; #end Przykład Zdefiniowanie za pośrednictwem makra postaci piłkarza, w ramach którego parametrami wejściowymi będą kolory koszulki, spodenek i rękawów koszulki.

Pętla for w praktyce tworzenie trybun stadionu

Tablice, zmienne, liczby losowe w praktyce

Kamera Definicja kamery opisuje pozycje, typ rzutowania oraz właściwości kamery. Do zdefiniowania pozycji oraz ułożenia kamery służy polecenie: camera { location <x, y, z> direction <x, y, z> right <x, y, z> up <x, y, z> sky <x, y, z> angle k look_at <x, y, z> }

Wektory right, up służą do określenia formatu obrazu (aspect ratio). Do zmiany położenia kamery możemy również używać transformacji: translate, rotate. Typy rzutowania (pierwszy parametr w camera): perspective rzutowanie perspektywiczne (domyślne), parametr angle musi przyjmować wartość z przedziału (0, 180), orthographic rzutowanie równoległe, fisheye rzutowanie sferyczne, angle=180 daje standardowe rzutowanie sferyczne. Otrzymany obraz powinien być okrągły lub eliptyczny (w zależności od formatu obrazu), ultra_wide_angle działa podobnie jak rzutowanie sferyczne z ta różnica, że rzutowanie następuje na prostokąt a nie koło, omnimax rzutowanie sferyczne z katem poziomym 180 i zredukowanym katem pionowym, cylinder typ rzutowanie cylindryczne, scena jest rzutowana na cylinder. Parametr typ przyjmuje jedną z wartości: 1, 2, 3 lub 4, spherical scena rzutowana jest na sferę, panoramic rzutowanie panoramiczne. Obchodzi problem degeneracji rzutowania perspektywicznego kiedy kąt patrzenia zbliża się do 180 stopni.

Inne własności kamery: blur_samples [value] liczba próbek - wartość całkowita określająca maksymalną liczbę promieni w użyciu dla każdego piksela. Zastosowanie większej liczby promieni daje gładszy wygląd ale generuje większą liczbę obliczeń co przekłada się na czas generowania sceny. aperture value - definiowanie przesłony, im większa wartość tym większe rozmycie focal_point <x, y, z> ogniskowa - środek strefy ostrości jest określony przez wektor focal_point. Strefa ostrości jest płaszczyzną przechodzącą przez focal_point i jest równoległa do kamery. Obiekty w pobliżu płaszczyzny ostrości są w centrum uwagi, a te położone dalej są bardziej rozmyte. Domyślną wartością jest focal_point <0,0,0>. confidence i variance parametry definiujące funkcję adaptacyjną. confidence jest stosowany do określenia czy poszczególne próbki są wystarczająco blisko danego (oczekiwanego) koloru. variance to wartość wariancji określająca dopuszczalną tolerancję w zakresie wariancji pobranych próbek. Proces tworzenia sceny jest kończony gdy prawdopodobieństwo uzyskania oczekiwanych kolorów z poszczególnych próbek osiągnie przyjęte wartości graniczne.

camera { location <12,4,-30> look_at <0,0,0>} camera { location <12,4,-30> right<5, 0> up<0,1> look_at <0,0,0>}

Tworzenie filmów animacji W ramach programu POV-Ray nie ma możliwości bezpośredniego tworzenia animacji. Jednak istnieje możliwość wygenerowania określonej liczby kolejnych scen, z których za pośrednictwem innego programu (np. bmp2avi) można zmontować film (animację). Do wygenerowania określonej liczby scen wykorzystuje się zmienną clock, która domyślnie zmienia swoją wartość od 0 do 1 z wartością kroku uzależnioną od liczby zdefiniowanych klatek (scen). W ramach podstawowego zastosowania programu POV-Ray (quickres.ini) liczbę klatek definiuje się następująco: -j +kffx gdzie x jest liczbą klatek jakie mają zostać wygenerowane. Należy zwrócić uwagę na rozmiar oraz parametry generowanych scen (im większa scen tym dłuższy czas generowania co ma duże znaczenie w przypadku generowania większej liczby scen).

Ponieważ zmienna clock domyślnie przyjmuje kolejne wartości z zakresu od 0 do 1 dlatego należy opracować metodę umożliwiającą jej wykorzystanie do zmiany płożenia ruchomych obiektów w ramach danej sceny. Przykład (animacja przykładu z wykładu 2) Przyjęte założenia: poruszająca się w kierunku górnego prawego rogu bramki piłka uderzona z 20 metra (z punktu (0,0,-20)), poruszająca się za piłką kamera, interweniujący bramkarz.

Przykład (animacja przykładu z laboratorium 1) Przyjęte założenia: obejście budynku dookoła (360 stopni, wzrok skierowany na budynek) wejście przez drzwi wejściowe a następnie odwiedzenie kuchni i dużego pokoju (płynne zmiany kierunku i miejsca na który skierowany jest wzrok - kamera).

Ponieważ budynek o wymiarach (20,15,6) był utworzony od współrzędnych (0,0,0) to przed procesem projektowania animacji należy go wyważyć względem punktu ciężkości na płaszczyźnie XY (translate<-10, 0, -7.5>).

Położenie budynku ma duże znaczenie wobec zastosowania funkcji rotate, za pośrednictwem której zrealizowano okrążenie budynku.

Pliki konfiguracyjne (*.ini) Tak jak pokazały powyższe przykłady domyślna wartość zmiennej clock [0,1] w praktycznym zastosowaniu wymaga obróbki (przemnożenia przez odpowiednią wartość). Jednak istnieje możliwość zdefiniowania własnych parametrów generowanej sceny (w tym zakresu zmiennej clock) za pośrednictwem własnego pliku konfiguracyjnego (domyślna ścieżka to C:\Users\nazwa_konta\Documents\POV-Ray\v3.7\ini).

W plikach konfiguracyjnych możemy zdefiniować różne właściwości dotyczące renderingu. [nazwa pliku, dane informacyjne] Height/Width wysokość/szerokość wynikowego obrazu, Oputput_File_Type typ obrazu wynikowego (C TGA z kompresja, T TGA bez kompresji, N PNG, P PPM, S BMP), Quality jakość renderingu liczba ze zbioru {0,...,11} (domyślnie 9),

Antialias wygładzanie krawędzi (on włączony, off wyłączony). Antialias_Threshold współczynnik wygładzania, Initial_Clock wartość początkowa zmiennej clock, Final_Clock wartość końcowa zmiennej clock, Initial_Frame numer pierwszej klatki, Final_Frame numer ostatniej klatki (Final_Frame - Initial_Frame = liczba klatek do wyrenderowania), Dodatkowo: Input_File_Name nazwa skryptu, którego dotyczy plik ini, Output_File_Name nazwa wynikowego obrazu, Antialias_Depth opisuje głębie antialiasu (wartości 1 do 9) W sytuacji jeżeli któreś sceny źle wyrenderują się (ew. chcemy coś w nich zmodyfikować) wówczas nie musimy całego procesu powtarzać od początku tylko możemy zdefiniować zakres scen, które mają zostać ponownie wygenerowane. Subset_Start_Frame numer sceny od której rozpocznie się proces renderowania, Subset_End_Frame numer sceny na której skończy się proces renderowania.

W przykładzie (moj_plik_konfiguracyjny.ini) wartość początkowa clock to 1 a końcowa 140 co przy 140 klatkach (od 1 do 140) oznacza, że wartość clock będzie przyjmowała kolejne wartości całkowite: 1, 2, 3,,139, 140. Zmodyfikowany przykład (laboratorium 1)