1 - Temat 1: Ogólne informacje o programie POV-Ray
Transkrypt
1 - Temat 1: Ogólne informacje o programie POV-Ray
Temat 1: Ogólne informacje o programie POV-Ray. Interfejs programu. Ustawienie kamery i świateł. Podstawowe obiekty 3D, ich położenie, kolory i tekstura oraz przezroczystość. Skrót POV-Ray to rozwinięcie nazwy The Persistence of Vision™ Ray-Tracer. POV-Ray pozwala na opis różnych obiektów za pomocą wiersza poleceń Kiedy już opiszemy wszystkie kształty, ich położenie, kolory itd. Możemy ustawić kamerę i zlecić programowi wykonanie zdjęcia stworzonej przez nas scenki. Poleceń w POV-Ray jest bardzo dużo; na jego potrzeby stworzono specjalny język oparty na języku C++. Program dostępny jest bezpłatnie pod adresem www.pov-ray.org. Zanim przejdziemy do opisu pierwszej sceny niezbędne będzie nam trochę teorii: Program operuje na opisie obiektów w przestrzeni trójwymiarowej. Każdy element opisuje się trzema współrzędnymi <x,y,z> , które odpowiadają osiom jak na rysunku poniżej: Załóżmy, że środek monitora to punkt <0,0,0> regulacja w lewo-prawo powoduje zmiany na osi x (pierwsza współrzędna), góra-dół to oś y (druga współrzędna), problemy pojawiają się zwykle przy osi z (trzecia współrzędna), gdyż wbrew intuicji wartości dodatnie z skierowane są w stronę monitora (strzałka skierowana w naszą stronę to „–z”).Zapamiętajmy zatem, że zapis <1,2,8> oznacza przesunięcie o jeden w prawo, dwie jednostki w górę i 8 jednostek przed nami („w dal”). Po uruchomieniu programu pojawi się okno: Aby utworzyć scenę musimy kolejno: wstawić odwołania do bibliotek zawierających definicje kolorów, tekstur i kształtów, ustawić kamerę, ustawić minimum jedno źródło światła, stworzyć obiekty, na które patrzymy. Grafika 3D – program POV-Ray -1- Ćwiczenie 001 W edytorze programu wpisz poniższy kod (nie musisz wpisywać komentarzy): Kamera została ustawiona w punkcie (-6, 6, -6) i skierowana na początek układu współrzędnych. Źródło światła ustawiliśmy również w punkcie (-6, 6, -6); światło ma kolor biały (światło słoneczne). Wstawimy teraz czerwoną kulę o środku w punkcie (0, 0, 0) i promieniu 1. Wpisz dalszą część kodu: Celem zrenderowania utworzonej sceny zapisz plik na dysku, po czym kliknij na pasku narzędziowym programu narzędzie . Ujrzymy zrenderowany obraz: Tło będzie w domyślnym kolorze czarnym. Zapamiętaj! Najprostsza definicja kuli ma postać: sphere {środek promień texture {tekstura} } Jeśli tekstura jest nazwanym kolorem, to zapisujemy: pigment {color Nazwa} przy czym nazwę koloru zaczynamy zawsze od wielkiej litery (wielkość liter ma znaczenie) Dostępne są między innymi kolory: Red, Green, Blue, Yellow, Cyan, Magenta, White, Black, Gray85, Gray75, Gray50, Gray25, Gray10, Orange, YellowGreen. Grafika 3D – program POV-Ray -2- Ćwiczenie 002 Do sceny z poprzedniego programu dodaj kilka kul o różnych kolorach, rozmieszczonych jak na rysunku: Kody kul dodajemy według schematu: Ćwiczenie 003 Skopiuj kod z ćwiczenia 001, zmień kolor tła poleceniem background i teksturę z koloru na Cherry_Wood. Zrenderuj scenę: Kolor tła został ustalony w skali RGB (każda składowa jest liczbą z przedziału 0..1). Wstawimy jeszcze płaszczyznę (plane) prostopadłą do osi OY i nadamy jej teksturę White_Marble: Ponownie zrenderuj scenę: Grafika 3D – program POV-Ray -3- Zapamiętaj! Kolor tła zmienisz wpisując kod: background{ color rgb< składowa_R, składowa_G, składowa_B > } Płaszczyznę prostopadłą do osi wstawiamy poleceniem: plane{oś, położenie texture{tekstura} } Ćwiczenie 004 Uplastycznimy teraz scenę z poprzedniego ćwiczenia, dodając drugie źródło światła (tym razem będzie to światło żółte), oraz styl i odblask dla tekstury naszej kuli. Zmieniony kod sceny ma postać: Zrenderuj scenę: Zapamiętaj! Rozjaśnienie i odblask tekstury (lub koloru) obiektu ustalamy poleceniem: finish { phong parametr_1 reflection parametr_2 } gdzie oba parametry są liczbami z zakresu 0..1. finish – opisuje sposób rozchodzenia się, odbijania i przyjmowania światła na obiekcie 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. Grafika 3D – program POV-Ray -4- 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. Ćwiczenie 005 Zmienimy teksturę płaszczyzny z poprzedniego ćwiczenia i funkcji reflection dla tej tekstury przypiszemy wartość większą od zera. Teraz obiekty będą się odbijały w płaszczyźnie: Ćwiczenie 006 Wykorzystując poznane możliwości utwórz i zrenderuj poniższą scenę: Tło ma kolor: color rgb<0.2, 0.2, 1.0> Płaszczyzna prostopadła do osi Y jest koloru szarego (Gray50) i wartość reflection 0.15. Kule mają teksturę Cork i promienie odpowiednio 2, 1.5, 1 (licząc od dołu). Np.: Ćwiczenie 007 Do sceny z poprzedniego ćwiczenia dodaj płaszczyzny trzech ścian otaczających bałwanka: Grafika 3D – program POV-Ray -5- Ćwiczenie 008 Uzupełnij scenę sufitem (na wysokości 9, kolor Gray50): Musisz też nieco zmienić położenie źródeł światła: Ćwiczenie 009 Utwórz i wyrenderuj scenę z widoczną piramidą zbudowaną z czterech kul: Płaszczyźnie prostopadłej do osi Y nadaj teksturę Aluminum (wtedy kule będą się w niej dobrze odbijać). Kule mają mieć promienie długości 1. Ich środki muszą leżeć w wierzchołkach czworościanu foremnego o boku 2: 2 6 3 <1, , > 3 3 <0,0,0> <1,0, 3 > <2,0,0> Kule mają teksturę Rosewood. Pierwiastek z liczby zapisujemy jako sqrt(liczba), czyli zamiast 2 6 zapiszemy 2*sqrt(6)/3 3 Grafika 3D – program POV-Ray -6-