Cześć Pierwsza. Do czego służy Povray



Podobne dokumenty
Grafika 3D program POV-Ray - 1 -

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

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

Grafika 3D program POV-Ray

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

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.:

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

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

(1,10) (1,7) (5,5) (5,4) (2,1) (0,0) Grafika 3D program POV-Ray

Przed rozpoczęciem pracy otwórz nowy plik (Ctrl +N) wykorzystując szablon acadiso.dwt

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

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

CorelDRAW. 1. Rysunek rastrowy a wektorowy. 2. Opis okna programu

Grażyna Koba. Grafika komputerowa. materiały dodatkowe do podręcznika. Informatyka dla gimnazjum

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

narzędzie Linia. 2. W polu koloru kliknij kolor, którego chcesz użyć. 3. Aby coś narysować, przeciągnij wskaźnikiem w obszarze rysowania.

Grafika 3D program POV-Ray

Przykładowe plany zajęć lekcyjnych Design the Future Poland

Praktyczne przykłady wykorzystania GeoGebry podczas lekcji na II etapie edukacyjnym.

Księgarnia internetowa Lubię to!» Nasza społeczność

Oto przykłady przedmiotów, które są bryłami obrotowymi.

Politechnika Warszawska Wydział Mechatroniki Instytut Automatyki i Robotyki

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

Lekcja 5 - PROGRAMOWANIE NOWICJUSZ

c. Przesuwamy sześcian wzdłuż osi Z o wartość 5

Przekształcanie wykresów.

STEREOMETRIA CZYLI GEOMETRIA W 3 WYMIARACH

Grafika 3D program POV-Ray

TWORZENIE SZEŚCIANU. Sześcian to trójwymiarowa bryła, w której każdy z sześciu boków jest kwadratem. Sześcian

Gimp - poznaj jego możliwości!

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

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:

Dodawanie grafiki i obiektów

Główne elementy zestawu komputerowego

Wstęp 7 Rozdział 1. OpenOffice.ux.pl Writer środowisko pracy 9

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

w jednym kwadrat ziemia powietrze równoboczny pięciobok

Ćwiczenie 6 Animacja trójwymiarowa

Użycie przestrzeni papieru i odnośników - ćwiczenie

Animacje z zastosowaniem suwaka i przycisku

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

Tematy lekcji informatyki klasa 4a styczeń 2013

Rysunek 1: Okno timeline wykorzystywane do tworzenia animacji.

37. Podstawy techniki bloków

Tematy lekcji zajęć komputerowych klasa 5b grupa 1 i grupa 2

Cel: Przypisujemy przyciskom określone funkcje panel górny (Panel1)

IRONCAD. TriBall IRONCAD Narzędzie pozycjonujące

Przewodnik po soczewkach

Konspekt lekcji informatyki w kl. VI. Temat: Praca z edytorem tekstu i edytorem grafiki.

BLENDER- Laboratorium 1 opracował Michał Zakrzewski, 2014 r. Interfejs i poruszanie się po programie oraz podstawy edycji bryły

RYSUNEK TECHNICZNY I GEOMETRIA WYKREŚLNA INSTRUKCJA DOM Z DRABINĄ I KOMINEM W 2D

Misja#3. Robimy film animowany.

CorelDraw - wbudowane obiekty wektorowe - prostokąty Rysowanie prostokątów

Edytor tekstu OpenOffice Writer Podstawy

Fragment tekstu zakończony twardym enterem, traktowany przez edytor tekstu jako jedna nierozerwalna całość.

Ćwiczenie nr 5 i 6 Przygotowanie dokumentacji technicznej dla brył

Adobe InDesign lab.1 Jacek Wiślicki, Paweł Kośla. Spis treści: 1 Podstawy pracy z aplikacją Układ strony... 2.

Maskowanie i selekcja

Ćwiczenie 1 Galeria zdjęć

Materiały pomocnicze do programu AutoCAD 2014

Pokażę w jaki sposób można zrobić prostą grafikę programem GIMP. 1. Uruchom aplikację GIMP klikając w ikonę na pulpicie.

Jak posługiwać się edytorem treści

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

Wstęp do GIMP wycinanie obiektu z obrazka, projekt napisu. Rozpoczynamy prace w GIMP-e

Narysujemy uszczelkę podobną do pokazanej na poniższym rysunku. Rys. 1

Informatyka II. Laboratorium Aplikacja okienkowa

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

Rys 3-1. Rysunek wałka

Spis treści. strona 1 z 10

Ćw. I Projektowanie opakowań transportowych cz. 1 Ćwiczenia z Corel DRAW

Oświetlenie obiektów 3D

CorelDraw - podstawowe operacje na obiektach graficznych

TWORZENIE PREZENTACJI MS POWERPOINT

CZĘŚĆ A 18 pkt. 3. Które z poniższych brył A, B, C, D przedstawiają bryłę zaznaczoną kolorem szarym?

TWORZENIE SZEŚCIANU. Sześcian to trójwymiarowa bryła, w której każdy z sześciu boków jest kwadratem. Sześcian

Scenariusz lekcji. Scenariusz lekcji. opisać działanie narzędzi przybornika. korzystać z Edytora postaci programu Logomocja;

Kolejną czynnością będzie wyświetlenie dwóch pasków narzędzi, które służą do obsługi układów współrzędnych, o nazwach LUW i LUW II.

Definicja obrotu: Definicja elementów obrotu:

Uwaga! CorelDRAW ćwiczenia kl. III Strona 1 z 6

Ćwiczenie 1 Automatyczna animacja ruchu

INSTRUKCJA UŻYTKOWNIKA. Spis treści. I. Wprowadzenie II. Tworzenie nowej karty pracy a. Obiekty b. Nauka pisania...

Tworzenie dokumentacji 2D

Zajęcia komputerowe klasy I-III- wymagania

Stożkiem nazywamy bryłę obrotową, która powstała przez obrót trójkąta prostokątnego wokół jednej z jego przyprostokątnych.

Ćwiczenie dodatkowe - Wybrane narzędzia modelowania Zadanie Przygotować model stołu z krzesłami jak na rysunku poniżej(rys. 1).

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie.

Cykl lekcji informatyki w klasie IV szkoły podstawowej. Wstęp

Ćwiczenie nr 3 Edycja modeli bryłowych

Simba 3D LOGO. Cele zajęć: - Poznanie zasad i sposobów tworzenia procedur z parametrami. - Poznanie zasad wywoływania procedur z parametrami.

Jak zrobić klasyczny button na stronę www? (tutorial) w programie GIMP

Grafika Komputerowa Materiały Laboratoryjne

Scratch pierwszy program

1. Dockbar, CMS + wyszukiwarka aplikacji Dodawanie portletów Widok zawartości stron... 3

Adobe InDesign lab. 3 Jacek Wiślicki,

Fotografia cyfrowa obsługa programu GIMP

przedmiot kilka razy, wystarczy kliknąć przycisk Wyczaruj ostatni,

Tworzenie prezentacji w MS PowerPoint

Poniżej przedstawiono przykład ich zastosowania dla najprostszego obiektu 3D kostki.

; B = Wykonaj poniższe obliczenia: Mnożenia, transpozycje etc wykonuję programem i przepisuję wyniki. Mam nadzieję, że umiesz mnożyć macierze...

Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu.

Transkrypt:

(tekst jest kompilacją tekstów pochodzących z http://www.povray.pl oraz http://jacenty.kis.p.lodz.pl/pov-ray/povkurs/index.htm) Cześć Pierwsza Do czego służy Povray Na powyższe pytanie można odpowiedzieć jednym zdaniem - do tworzenia grafiki 3D - zarówno obrazów statycznych jak i animacji. Być może nie wszyscy jednak wiedzą na czym polega ten szczególny rodzaj grafiki. W skrócie można to przedstawić tak: tworzymy scenę zawierającą obiekty przestrzenne, pokryte różnorodnymi materiałami, światła i kamerę, w której powstanie obraz. Tak przygotowaną scenę poddaje się procesowi zwanemu renderingiem. W jego trakcie komputer oblicza jak biegną promienie od źródeł, co się dzieje, gdy światło pada na powierzchnie obiektów i co widzi kamera. W wyniku powstaje płaski obraz trójwymiarowego świata. Raz przygotowaną scenę możemy oglądać z różnych miejsc, przy pomocy kamer o różnych parametrach. Możliwe jest także utworzenie animacji zamiast obrazów statycznych. Efekty pracy artystów zajmujących się grafiką 3D obserwować możecie w postaci efektów specjalnych w wielu filmach. Program Povray jest jednym z wielu programów do tworzenia fotorealistycznych obrazów symulujących trójwymiarowe sceny i animacje. Można powiedzieć, że Povray pod tym względem należy do licznej rodziny programów wśród których można wymienić choćby 3DStudio Max, Maya, Lightwave, Realsoft3D, Cinema4D i wiele, wiele innych programów. Od wymienionych powyżej różni się jednak zasadniczo: sceny tworzymy opisując występujące w nich obiekty przy użyciu języka programowania. Poniższy rysunek przedstawia fragment kodu sceny napisanej w programie Povray. Rys.1 Okno programu POvray w przykładową sceną Strona 1 z 30

Inną cechą odróżniającą Povray od wymienionych wyżej programów jest to, iż jest on całkowicie darmowy. Znaleźć go można w wielu miejscach w sieci a jego stroną domową jest www.povray.org. Najnowsza wersja ma numer 3.50. Jest dostępna na wszystkie znane mi platformy sprzętowe i systemowe - dla Windows, Linux-a, Max OS, Mac OS X. Ja pisząc te materiały używam wersji dla Windows i wszystkie rysunki i opisy pochodzą z tej wersji. Ze względu na sposób tworzenia sceny nie jest to program najłatwiejszy, ma jednak wiele cech, które powodują, że posiada zwolenników na całym świecie. Autorzy podają, że w ciągu roku pobierany jest 100 000 razy. Niewątpliwie jest świetnym narzędziem do ćwiczenia wyobraźni przestrzennej. Napisano wiele dodatkowych programów współpracujących z Povray-em. Są to edytory scen i tekstur, programy ułatwiające deformację obiektów, konwertujące zbiory klatek do plików filmowych. Zaczynamy pracę z programem Zanim utworzymy jakąkolwiek scenę spróbujmy najpierw wykorzystać jedną z gotowych scen przykładowych dołączonych do programu. Najpierw jednak rzućmy okiem na interfejs programu Rys. 2 Okno programu Povray dla Windows z opisanymi podstawowymi elementami interfejsu Aby rozpocząć pracę z nowym plikiem wybieramy z menu File/Open File. W otwartym standardowym oknie dialogowym odszukajmy katalog scenes\advanced\fish13 a w nm plik fish13.pov i otwórzmy go. W oknie roboczym pojawi się tekst sceny. Proponuję niczego w Strona 2 z 30

nim nie zmieniać. Uruchamiamy rendering wciskając przycisk Run na pasku narzędziowym i obserwujemy efekt. Musimy trochę poczekać bo celowo wybrałem dosyć skomplikowaną scenę. Jeśli obrazek jest za mały wybieramy inny rozmiar w odpowiednim miejscu interfejsu - patrz rysunek 2. Ćwiczenie Możesz otworzyć inne sceny i zobaczyć jakie obrazy otrzymasz po renderingu. Jak Povray widzi świat Musimy zacząć od przypomnienia pewnych niezbędnych wiadomości z matematyki. Narysuj na kartce papieru prostokąt. Wyznaczają go cztery punkty stanowiące jego wierzchołki. Aby precyzyjnie opisać położenie naszego prostokąta musimy użyć układu współrzędnych. Jeśli podamy współrzędne każdego wierzchołka jednoznacznie określimy nie tylko położenie prostokąta ale także jego wielkość. Gdybyśmy podali te współrzędne innej osobie może ona dokładnie odtworzyć cały nasz prostokąt. Rysunek poniżej przypomina jak definiujemy współrzędne punktu na płaszczyźnie posługując się płaskim układem współrzędnych. Rys. 3 Współrzędne płaskie Budując sceny w Povray-u tworzymy bryły, które mają, podobnie do rzeczywistych obiektów, trzy wymiary. Dwie osie płaskiego układu współrzędnych nie wystarczą do określenia położenia punktów składających się na te obiekty. Musimy użyć układu trójwymiarowego. Taki układ składa się z trzech wzajemnie prostopadłych osi : X, Y i Z. Na rysunku poniżej pokazano jak określa się współrzędne punktów w przestrzeni. Strona 3 z 30

Rys. 4 Określanie współrzędnych punktu w przestrzeni przy użyciu trójwymiarowego układu Narysowana w rzucie oś X w rzeczywistości powinna wchodzić w kartkę ( lub ekran monitora) prostopadle. W programie Povray używamy inaczej ustawionych osi. Jeśli patrzysz na ekran oś X skierowana jest w prawo, oś Y do góry a oś Z wchodzi w ekran - punkty o dodatnich współrzędnych są "wewnątrz" monitora a punkty położone pomiędzy tobą a monitorem mają współrzędne z ujemne. Na rysunku wygląda to tak: Rys. 5 Układ osi używany przez program Povray Strona 4 z 30

Pierwsza scena Komentarze Przy pisaniu jakichkolwiek programów dobrym zwyczajem jest opisywanie poszczególnych fragmentów tak, aby wiadomo było do czego służą. Znaczenie komentarzy docenią ci, którzy powracają do programu po jakimś czasie od jego napisania lub szukają w programie błędów. Tekst komentarza jest ignorowany przy tworzeniu sceny przez Povray. Komentarze umieszczamy w następujący sposób: //to jest tekst komentarza lub /* tu zaczyna się komentarz tu ciągnie się dalej a tu się kończy*/ Zaczynamy pisać pierwszą scenę od opisu. Z menu File wybieramy polecenie New i wpisujemy: //Wojciech Mickiewicz //2002-04-03 //moja pierwsza scena w Povray-u Oczywiście możesz wpisać inne informacje, zadbaj jednak o to aby coś mówiły o tworzonym pliku. Zaczynamy tworzyć scenę Teraz wpiszemy trzy linijki, których znaczenie omówię za chwilę. #include "colors.inc" #include "shapes.inc" #include "textures.inc" Polecenia zapisane powyżej powodują, że do naszej sceny dołączamy pliki o nazwach podanych w cudzysłowie. Oczywiście równie dobrze można byłoby te pliki po prostu przepisać, lub nawet korzystając z funkcji kopiuj i wklej wstawić bezpośrednio do naszej sceny. Podany tu sposób jest jednak znacznie wygodniejszy a długość naszego pliku znacznie krótsza - co ułatwi jego przeglądanie i analizę. Zawartość dołączanych plików bardzo nam się niebawem przyda. Pierwszy z nich - colors.inc -zawiera zdefiniowane kolory, dzięki niemu jeśli coś ma być niebieskie to wpiszemy po prostu Blue a jeśli czerwone to Red. Drugi plik - shapes.inc zawiera podstawowe bryły, nie będziemy musieli definiować kuli czy walca - już są zdefiniowane. Trzeci plik textures.inc zawiera tekstury a co to jest - opowiemy dalej. Do utworzenia sceny potrzebne są: 1. Obiekty tworzące elementy widzialne sceny - modele 2. Źródła światła, które oświetlą scenę 3. Kamerę, która pozwoli cokolwiek zobaczyć. Dodajemy kamerę Zaczniemy od kamery. Ustawmy w punkcie o współrzędnych (0,10,-15) i niech będzie skierowana na punkt (0,0,0). Przypomnij sobie jak ustawione są osie układu współrzędnych Strona 5 z 30

wykorzystywanego przez Povray-a i zastanów się, gdzie znajdują się wymienione punkty. Kamerę wpisujemy tak: camera location <0,10,-15> // miejsce umieszczenia kamery look_at <0,0,0> // punkt na który kamera jest skierowana angle 35 // kąt widzenia kamery w stopniach Oświetlenie sceny Teraz czas na źródła światła. Umieścimy dwa punktowe źródła emitujące światło białe. light_source <-10,10,-10> White //kolor określony słownie light_source <3,20,5> color RGB <1, 1, 1> //kolor określony liczbowo poćwicz trochę wyobraźnie i postaraj się odpowiedzieć na pytanie: jak względem kamery położone są światła? Właśnie utworzyliśmy coś co może stanowić szablon sceny do dalszych ćwiczeń. Zapiszmy go więc pod nazwą szablon.pov. Nie będziemy musieli za każdym razem pisać wszystkiego od początku. Pierwsza bryła Teraz kolej na bryły tworzące obiekty widzialne sceny. Na początek umieścimy w punkcie (0,0,0) kulę o promieniu 2. Pomalujmy ją na czerwono. sphere <0,0,0>, //położenie środka kuli 2 // promień kuli texture pigment color red 1 green 0 blue 0 Jak zauważyłeś kolor możemy podać określając jego składowe w podstawowych barwach modelu RGB. Ten sam efekt otrzymamy pisząc: texture pigment color rgb <1,0,0> udział każdego z kolorów bazowych określamy liczbą z zakresu od 0 do 1. Rendering Jeśli już wszystko wpisałeś do pliku zapisz go pod nazwa scena1.pov i uruchom rendering wciskając na pasku narzędziowym przycisk Run. Teraz poczekaj chwilę na efekt. A oto on: Strona 6 z 30

Rys.5 Pierwsza scena Pierwsza scena za za nami. Zanim przejdziemy dalej warto zwrócić uwagę na to jak opisaliśmy kolor naszej kuli. texture pigment color rgb <1,0,0> Linijka ta zaczyna się od słowa kluczowego texture Wszystko to co jest zawarte pomiędzy klamrowymi nawiasami za tym słowem opisuje teksturę czyli najprościej mówiąc materiał, którym pokryty jest obiekt. Będzie o tym mowa w dalszej części. Część opisu tekstury decyduje o tym jakim kolorem (kolorami) będzie pokryty obiekt. Decyduje o tym zawarta w klamrowych nawiasach po słowie kluczowym pigment. W naszym przykładzie określiliśmy kolor określając jego składowe w modelu RGB. Poćwicz stosowanie różnych parametrów. Można też zrobić inaczej. Wiele kolorów zostało utworzonych już wcześniej i zapisanych w pliku Colors.inc, który, jak pamiętasz, dołączyliśmy do naszej sceny. Zajrzymy do tego pliku ale nie bezpośrednio: 1. pracując w programie otwórz plik scena1.pov, następnie przejdź do pomocy. 2. w prawej ramce masz spis treści, odszukaj Standard Include Files kliknij na nim 3. z rozwiniętej listy wybierz colors.inc, następnie wskaż Predefined Colors 4. w prawej ramce masz pokazaną w wygodny sposób zawartość tego pliku. Wybierz odpowiadający ci kolor i zapisz dokładnie jego nazwę. 5. wpisz tę nazwę do pliku opisu sceny po słowie color 6. uruchom rendering i podziwiaj efekt. Możesz poćwiczyć stosowanie różnych kolorów w twojej pierwszej scenie. Na zakończenie pierwszego spotkania z programem kilka ćwiczeń: Ćwiczenie 2 Jaki obiekt można zbudować z samych kul? Zima wprawdzie skończyła się ale każdy chyba pamięta jak wygląda bałwan śniegowy?. Zbuduj więc model bałwana, Strona 7 z 30

dobierając odpowiedniej wielkości i odpowiednio rozmieszczone kule. Postaraj się znaleźć odpowiedni kolor. Ćwiczenie 3 Po utworzeniu sceny z ćwiczenia pierwszego zmieniaj ustawienie kamery aby oglądać scenę z różnych miejsc. Jeśli efekt zawsze zgadza się z oczekiwaniami możesz uważać, ze rozumiesz układ współrzędnych. Ćwiczenie 4 Utwórz scenę jak na ilustracji poniżej. Osie i płaszczyznę poziomą dodano dla orientacji. W tym przykładzie przyda się trochę matematyki. proponuję najpierw narysować sobie rzut prostokątny układu kul i obliczyć jakie powinny być współrzędne kul. Promień kuli jest równy 2 Rys.6 Układ kul do ćwiczenia 4 Część Druga Trochę szerzej o obiektach Inne bryły Niestety kula nie wystarczy do zbudowania zbyt wielu ciekawych scen. W tej części pokażemy jak wprowadzić do naszej sceny inne bryły. Prostopadłościan Dla zdefiniowania prostopadłościanu potrzebujemy współrzędne dwóch wierzchołków A i B tak jak to pokazano na rysunku: Strona 8 z 30

Rys.7 Współrzędne punktów A i B definiują prostopadłościan Kiedy już ustalimy współrzędne wymaganych punktów wpisujemy do pliku sceny: box <x 1,y 1,z 1 >, <x 2,y 2,z 2 >, texture pigment color Blue i już mamy w naszej scenie prostopadłościan, który tym razem pomalowałem na niebiesko ale ty możesz wybrać inny kolor. Następne bryły podam już bez zbędnych opisów. Oczywiście kolory mogą być wybrane dowolnie. Strona 9 z 30

Walec, stożek, torus Opis oznaczeń: A i B - środki podstaw - górnej i dolnej r - promień walca cylinder <x 1,y 1,z 1 >,<x 2,y 2,z 2 >, r texture pigment color Green Oznaczenia: A - środek dolnej podstawy r 1 - promień dolnej podstawy B - środek górnej podstawy r 2 - środek górnej podstawy cone <x 1,y 1,z 1 >,r 1,<x 2,y 2,z 2 >,r 2, texture pigment color DustyRose cone <0,0,0>,3,<0,8,0>,0.5 texture pigment color red 0 green 1 blue 0 Jeśli nie chcesz stożka ściętego podaj promień górnej podstawy równy 0 Strona 10 z 30

Torus wygląda dokładnie tak jak napompowana dętka wyjęta z koła rowerowego. Określają go dwa parametry: r 1 - odpowiednik promienia koła roweru i r 2 - określający promień przekroju dętki. Aby dodać torus do swojej sceny wpisz: torus r 1,r 2 pigment color Red Zwróć uwagę na to, że nie podajemy położenia tej bryły względem układu współrzędnych tylko jej rozmiary. Zbuduj scenę zawierającą tylko torus i osie współrzędnych aby zobaczyć jak program umieścił tę bryłę w przestrzeni. Pokazane wyżej obiekty nie wyczerpują wszystkich możliwości programu ale wystarczą do zbudowania dosyć skomplikowanych scen dlatego na nich poprzestanę. O innych możesz poczytać w dokumentacji programu. Warto w tym miejscu zwrócić uwagę na wymiary obiektów. Do tej pory posługiwaliśmy się jedynie współrzędnymi punktów. Nic jednak nie stoi na przeszkodzie aby przyjąć, że osie naszego układu współrzędnych są wyskalowane w centymetrach i punkt o współrzędnych (100,0,0) znajduje się na osi X w odległości 100 cm od początku układu. Mówiąc zupełnie niefachowo możemy stwierdzić, że współrzędne wyrażone są w centymetrach. Przy okazji jeszcze jedna uwaga - sceny tworzymy w edytorze tekstów, należy więc jak najszerzej korzystać z tego faktu. Jeśli mamy na przykład umieścić w scenie dwa prostopadłościany to wpisujemy jeden a potem kopiujemy i wklejamy odpowiedni fragment tekstu i odpowiednio zmieniamy współrzędne. Na koniec tego rozdziału proponuję wykonanie przedstawionych na ilustracjach prostych modeli. Pudełko z trzech walców, nie da się wprawdzie otworzyć ale można wyobrazić sobie, że w środku jest kapelusz Strona 11 z 30

Model lampki nocnej wykonany w walca i dwóch stożków Wykonany z prostopadłościanów regał. Zauważ, że zawiera on kilka jednakowych brył. Wystarczy napisać jedną i skopiować ją kilka razy przez proste powielanie tekstu a następnie odpowiednio zmienić współrzędne Do wykonania tej półki potrzebne są prostopadłościany i walce Prostym złożony z czterech prostopadłościanów stoli. Zakładamy, że stolik został wykonany z płyty o grubości 2 cm a poszczególne elementy mają następujące wymiary: blat 60 x 100 cm nogi 50 x 60 cm poprzeczka 40 x 71 cm Strona 12 z 30

Część Trzecia Operacje boolowskie Operacje, które chcę teraz przedstawić znacznie powiększają możliwości tworzenia bardziej skomplikowanych brył. Zamiast opowiadać o tym na czym polegają operację boolowskie pokażę to na przykładach figur płaskich: Mamy dwa obiekty: A i B. Obiekty te częściowo się pokrywają Operacja Union Nowy obiekt powstaje przez połączenie obiektów A i B. union obiekt_a obiekt_b Operacja Intersection Nowy obiekt jest częścią wspólną obiektów A i B Intersection obiekt_a obiekt_b Strona 13 z 30

Operacja difference A-B W tej operacji od obiektu A odejmujemy obiekt B difference obiekt_a obiekt_b Operacja difference B-A Tu natomiast od obiektu B odejmujemy obiekt A difference obiekt_b obiekt_a Tak samo można zastosować operacje boolowskie do brył. Poniżej podaję trzy przykłady. Operacja union Połączymy trzy kule tak aby utworzyły bałwana union // zapis operacji łączenia brył //pierwsza kula sphere <0,-1,0>,1.5 pigment color LightGray //druga kula sphere <0,1,0>,1 pigment color LightGray //trzecia kula sphere <0,2.3,0>,0.6 pigment color LightGray Strona 14 z 30

A oto efekt: Efektu operacji union nie widać bezpośrednio w modelu. Efekt jest taki sam jaki uzyskalibyśmy umieszczając te same obiekty osobno. Są jednak sytuacje, w których jest ona potrzebna - na przykład przemieszczanie obiektów. Operacja difference Zbudujmy prostą szklankę. Można ją utworzyć przez wycięcie jednego ściętego stożka z drugiego. Na rysunku niżej po lewej widać jak powstanie nasza szklanka a po prawej gotowy efekt: A oto kod, który zdefiniował ten obiekt: difference //operacja boolowska cone <0,0,0>,2,<0,8,0>,2.5 //pierwszy stożek cone <0,0.5,0>,1.9,<0,9,0>,2.45 //drugi stożek, trochę wyżej i wyższy pigment color Blue Strona 15 z 30

Operacja intersection Zastosuję tę operację aby uzyskać ćwiartkę kuli. Umieszczę kulę o promieniu 2 w środku układu współrzędnych, Drugą bryłą będzie sześcian o boku 2 umieszczony tak, aby jeden z jego wierzchołków znajdował się w środku kuli. intersection sphere <0,0,0>,2 box <:0,0,0>,<2,2,2> pigment color Scarlet Tak wygląda utworzona bryła: Zwróć uwagę na to, że wewnętrzny stożek musi być trochę wyższy od zewnętrznego. Teraz już możesz wycinać w swoich obiektach otwory i tworzyć najprzeróżniejsze obiekty. Oto kilka przykładów do ćwiczeń: Klocek Lego powstał przez połączenie prostopadłościanu z walcami za pomocą operacji union Pudełeczko powstanie jeśli w jednego prostopadłościanu wytniemy drugi. Oczywiście potrzebna jest tu operacja difference Strona 16 z 30

Inny przykład operacji difference - ściana narożnik pokoju z trzema oknami. Trzeba tylko dostawić meble. Sam narożnik pokoju powstał za pomocą operacji union dla dwóch prostopadłościanów. Okna wycięto stosując jeszcze raz tę samą operację, jako bryły do wycięcia posłużyły trzy odpowiednio ustawione prostopadłościany Bryła przypominająca kształtem kostkę do gry utworzona jako część wspólna sześcianu o boku 4 cm i kuli o promieniu 3.6 umieszczonych w środku układu współrzędnych. Zastosowano oczywiście operację intersection Część Czwarta Podstawowe transformacje obiektów Przesunięcie - translacja - obiektów Każdą bryłę utworzoną gdziekolwiek w przestrzeni można przesunąć w dowolnym kierunku. Dokładniej mówiąc można ją przesunąć o dowolną ilość jednostek w kierunku każdej z osi: X, Y i Z. Robimy to przy pomocy modyfikatora translate według wzoru: translate <x,y,z> gdzie x, y i z określają o ile jednostek przesuwamy obiekt w kierunku osi X, Y i Z. Oto przykład: Sześcian o boku a=4 umieszczony w początku układu współrzędnych przesuniemy o dwie jednostki w prawo, wzdłuż osi X. box <-2,-2,-2>,<2,2,2> texture pigmentcolor Scarlet translate <2,0,0> //w tym właśnie miejscu wpisane jest przesunięcie poniżej na rysunku po lewej stronie sześcian jest jeszcze w początku układu współrzędnych. po prawej stronie jest już przesunięty. Osie umieszczono dla orientacji. Strona 17 z 30

Obrót obiektów Każdy obiekt możemy obrócić o wybrany kąt względem każdej z osi. Zapis obrotu wygląda tak: rotate <a,b,c> gdzie: a - kąt o jaki obracamy względem osi X, b - kąt o jaki obracamy względem osi Y, c - kąt o jaki obracamy względem osi Z. Oczywiście możemy obrócić tylko względem jednej lub dwóch osi, wówczas pozostałe kąty są równe 0. Obrócimy teraz nasz wyjściowy sześcian względem osi Y o 45 stopni. Definicja obiektu wyglądać będzie tak: box <-2,-2,-2>,<2,2,2> rotate <0,0,45> pigment color Scarlet a końcowy efekt jest następujący: Obrót odbywa się względem osi układu współrzędnych sceny i dlatego może ci czasem sprawić niespodziankę. Aby to lepiej rozumieć przyjrzyj się dwóm pokazanym niżej scenom. W pierwszej z nich sześcian obrócono o kąt 45 stopni względem osi Z a następnie przesunięto o wektor <-3,0,0>. W drugiej obie te transformacje wykonano w odwrotnej kolejności. Zastanów się czy rozumiesz skąd wzięła się różnica efektów końcowych? Strona 18 z 30

takich niespodzianek może być więcej, radzę uważać a w przypadku problemów najlepiej poćwiczyć w rzeczywistymi przedmiotami. Powiększanie lub pomniejszanie czyli skalowanie bryły Ostatnią w transformacji jest skalowanie. Każdą bryłę możemy powiększyć lub pomniejszyć wybrana ilość razy, względem dowolnej z osi. Wykonujemy to wpisując do definicji obiektu następujący kod: scale <a,b,c> gdzie: a - określa ile razy powiększyliśmy lub pomniejszyliśmy względem osi X b - określa ile razy powiększyliśmy lub pomniejszyliśmy względem osi Y c - określa ile razy powiększyliśmy lub pomniejszyliśmy względem osi Z Dla przykładu powiększmy nasz sześcian dwukrotnie względem osi x. Definicja naszej bryły wygląda tak: box <-2,-2,-2>,<2,2,2> scale <2,1,1> //2 razy zwiększamy wzdłuż osi X, w pozostałych kierunkach bez zmian pigment color Scarlet A tak to wygląda po zrenderowaniu: Strona 19 z 30

Przez wykorzystanie operacji boolowskich i transformacji do omówionych do tej pory brył możemy już uzyskać całkiem skomplikowane obiekty. Trzeba będzie jednak sporo pisać i często powtarzać te same fragmenty kodu. Niebawem pokażę jak tego uniknąć, ale tymczasem proponuję wykonanie kilku obiektów w ramach ćwiczeń. Palisada Pojedynczy pal powstał przez połączenie walca i stożka przez operację union. Aby utworzyć palisadę skopiowałem kilkakrotnie kod definiujący pal i każdy z nich przesunąłem na odpowiednią odległość w kierunku osi X za pomocą translate Kwiatek Płatki powstały z 6 walców, każdy kolejny jest obrócony w stosunku do poprzedniego o 30 o za pomocą rotate. Środek jest kulą umieszczoną w środku układu współrzędnych Koło Koło powstało podobnie jak kwiat, tylko walce zostały tu zastąpione przez prostopadłościany a obręcz jest wykonana za pomocą operacji difference z dwóch walców Strona 20 z 30

TEXT - Tekst Pisać w POV-Ray'u też można. Aplikacja potrafi załadować dowolny plik czcionki TrueType i przekształcić żądany tekst w obiekt trójwymiarowy. Obiekt tekstu ma następującą postać: text ttf "plik.ttf", "Tekst", głębokość, offset transformacje // opcjonalnie pigment definicja koloru Nazwę pliku czcionki i tworzony tekst zapisujemy w znakach cudzysłowu. Parametr głębokości liter może być dowolną liczbą dodatnią, a offset wymaga krótkiego wyjaśnienia. Najczęściej używa się tu wartości 0. Jest to wyrażenie wektorowe oznaczające przesunięcie każdej kolejnej litery tekstu o dany wektor w stosunku do jej przewidywanego, oryginalnego położenia. Bardzo łatwo wykonać więc np. napis, którego kolejne litery "wchodzą" lub "schodzą" po schodach. Najlepiej będzie, jeżeli sprawdzisz ten efekt samodzielnie, ponieważ powyższy tekst może być nieco mylący. Przykład: text ttf "Arial.ttf" "INFORMATYKA" 1,0 texture Aluminum scale 0.9 rotate <0,0,0> translate <-2,0.1,-2> texture wypełnienie wybraną teksturą, scale przeskalowanie wielkości, rotate obrót wokół wybranych osi, translate przesunięcie wzdłuż odpowiednich osi POLYGON - Wielokąt Kod przykładowego wielokąta: polygon ilość następujących wyrażeń, <wierzchołek pierwszy>, <wierzchołek drugi>,... // i tak dalej <wierzchołek ostatni>, <ponownie wierzchołek pierwszy> transformacje // opcjonalnie pigment definicja koloru Wielokąt ma bardzo wiele wspólnego ze swoim geometrycznym odpowiednikiem. Wszystkie jego punkty leżą na jednej płaszczyźnie. POV-Ray ułatwia nieco sprawę i wszystkie domyślnie umieszcza względem płaszczyzny wyznaczonej przez osie X i Y. W każdym więc punkcie współrzędna Z wynosi 0. Aby oszczędzić wklepywania tego jednego zera, twórcy POV-Ray'a zadecydowali, że w przypadku wielokąta wszystkie punkty będą miały w wyrażeniach wektorowych tylko współrzędne X i Y. Należy jeszcze zwrócić uwagę na konieczność powtórzenia współrzędnych pierwszego wierzchołka przy tworzeniu wielokątów. Strona 21 z 30

Tekstury - nowe szaty brył Znamy już całkiem sporo figur i brył, ale czegoś im chyba do szczęścia jeszcze potrzeba. Chciałoby się, żeby choć trochę uprzyjemnić ich wygląd zewnętrzny. Dlatego na chwilę zajmiemy się teksturami. Spójrzmy jeszcze raz na definicję standardowej bryły: bryła // ewentualnie figura parametry pigment color rgb <definicja koloru> Znudzony schemat, nieprawdaż? A teraz porównajmy to z poniższą definicją bryła // ewentualnie figura parametry texture pigment color rgb <definicja koloru> finish parametry Widzimy różnicę? (Spokojnie, to tylko pytanie retoryczne) Doszło nam trochę do tej definicji. Mowa oczywiście o tkwiącym w niej nawiasie texture, a także o partnerze pigmentu o dziwnie brzmiącej nazwie finish. Po co to właściwie jest? Mówimy przez to POV-Ray'owi, że nasza tekstura oprócz pokrycia litym kolorem będzie nieco bardziej skomplikowana. W nawiasie z teksturą umieszczamy zatem najpierw określenie jej pigmentu, a następnie... Finish - Gładka, jak pupa niemowlaka Ogólnie rzecz biorąc, w nawiasie finish przechowywana jest seria parametrów określająca zachowanie się tekstury pod wpływem padającego na nią światła. Ponieważ można te parametry podawać wybiórczo i w dowolnej kolejności i nie oddzielamy ich także od siebie przecinkami, stosowanie ich nie powinno nikomu nastręczyć żadnych kłopotów. Oto pełna lista owych parametrów, a poniżej, szczegółowy opis: finish ambient wartość diffuse wartość brilliance wartość specular wartość roughness wartość phong wartość // alternatywa dla specular phong_size wartość // alternatywa dla roughness reflection wartość reflection_exponent wartość metallic opcjonalna wartość irid wartość thickness wartość turbulence wartość Strona 22 z 30

AMBIENT - jasność w cieniu Dokładnie tak, jak napisane, parametr ambient określa względną jasność danej tekstury w miejscach, w których nie jest ona zupełnie oświetlona. Domyślnie wynosi on 0.1, czyli 10% jasności. Wartość ta może oscylować między 0, a 1, dając odpowiednio obiekt kompletnie czarny w cieniu, lub jednakowo jasny na całej powierzchni. Właściwie wartość po parametrze jest wyrażeniem wektorowym koloru, ale pełny zapis ambient <r, g, b> jest używany bardzo rzadko. Chociaż usyskuje się przez to ciekawe efekty. Nie bronię nikomu się pobawić. DIFFUSE - tolerancja na kąt padania światła Ten parametr również przyjmuje wartości od 0 do 1, które również są wektorami koloru. Domyślnie wynosi od 0.6 i określa jasność tekstury w zależności od kąta, pod którym pada na nią światło. Im większy jest ów kąt, tym jaśniejsza powierzchnia bryły. Diffuse ustala, jak małe kąty padania wywołują widoczne rozświetlenie tekstury w stosunku do jej jasności określonej parametrem ambient. BRILLIANCE - wariacja tolerancji Spadek jasności obiektu w zależności od kąta padania światła można nieco modyfikować przy pomocy parametru brilliance. Parametr ten domyślnie przyjmuje wartość 1 i jest wykładnikiem potęgi funkcji, która odpowiada za sposób, w jakim tekstura traci jasność. W przypadku wartości 1 jest to spadek liniowy. Podanie wartości 2 lub 0.5 spowoduje powstanie opadu opartego odpowiednio na funkcji kwadratowej lub pierwiastkowej. Dozwolone są oczywiście dowolne wykładniki. Brilliance używany jest głównie w teksturach wypolerowanych metali. SPECULAR vs. PHONG Odblask Na obiektach często można zaobserwować jasną plamkę w miejscach, gdzie są one oświetlone pod kątem prostym. POV-Ray symuluje siłę takich odblasków używając niemal identycznych parametrów specular oraz phong. Efekt ich działania jest prawie identyczny (phong tworzy minimalnie bardziej matowe rozbłyski). Oba przyjmują wartości od 0 do 1 wyrażone ponownie wektorami, a ich wartość domyślna wynosi 0 (brak odblasku). ROUGHNESS vs. PHONG_SIZE gładkość Bardziej wypolerowane, gładsze powierzchnie charakteryzują się mniejszymi plamkami odblasków, bardziej matowe - większymi. Wielkość odblasku kontrolują w programie parametry roughness (wykorzystywane tylko w parze ze specular) oraz phong_size (w parze z phong). Jeśli nie określono żadnego odblasku, stosowanie roughness i phong_size nie da żadnego efektu. Jeszcze tylko sprawa wartości, które w obu przypadkach niezwykle się różnią: PARAMETR WARTOŚĆ DOMYŚLNA TYPOWE WARTOŚCI roughness 0.05 od 0.0005 do 1 phong_size 40 od 1 do 400 REFLECTION - odbicie Strona 23 z 30

Ten parametr mówi praktycznie sam za siebie. Domyślnie przyjmujący wartość 0 i ponownie określony wyrażeniem wektorowym koloru, opisuje siłę, z jaką dana tekstura odbija otoczenie. Przypisanie mu wartości 1 stworzy idealne lustro. Pod uwagę należy jednak wziąć fakt, że im wyższy współczynnik odbicia, tym więcej ze swojego naturalnego koloru bryła traci. Kolor obiektu kontrolujemy w tym wypadku dodatkowo parametrem diffuse. REFLECTION_EXPONENT - wykładnik odbicia Parametr ten ma nieco niefortunną nazwę, gdyż nie oznacza ona dosłownie tego, co nazywa. Ogólnie rzecz biorąc, wykładnik odbicia kontroluje siłę, z jaką odbite zostają od obiektu obiekty jasne lub ciemne. Domyślnie wykładnik ten jest równy 1, ale można eksperymentować z innymi wartościami dodatnimi. Opcja ta nie ma odzwierciedlenia w rzeczywistości, jednakże może posłużyć za całkiem artystyczny przykład. METALLIC - zabarwienie odblasku Odbicie w wielu metalach (np. w złocie) barwi odbity obraz na kolor danego metalu. To samo dzieje się z plamką odblasku. Dodając do tekstury parametr metallic zabarwiamy odbicie i odblask. Opcjonalnie dodana do parametru wartość z przedziału od 0 do 1 kontroluje siłę tego zabarwienia. IRIDESCENCE opalizacja Parametr ten tworzy na powierzchni obiektu delikatne tęczowe plamki podobne do tych, jakie powstają w kałużach benzyny bądź na powierzchni mydlanych baniek. Efekt ten powoduje istniejąca na tych powierzchniach mikroskopijnie cienka warstewka opalizująca. Opcja iridescence opiera się na trzech własnych parametrach, które stosujemy następująco: irid wartość thickness wartość turbulence wartość Pierwszy z nich określa nasilenie efektu. Dobrze stosować tu wartości od 0 do 1 choć inne nie są niedozwolone. Kolejne: thickness oraz turbulence odpowiadają już tylko za wygląd ogólny efektu, odpowiednio gęstość i turbulencję warstwy opalizującej. zakres stosowanych wartości również oscyluje między 0 a 1. Przykład - Dwie kulki. Która ładniejsza? Strona 24 z 30

Dołączenie grafiki do planu Rysunek na powierzchni kuli (z wcześniej przygotowanego obrazka drzewo.gif). Kod zawiera wywołanie gifa. sphere <4,3,0> 2 pigment image_map gif "drzewo.gif" map_type 10 finish reflection 0.6 sphere <-0.5,3,0> 2 pigment color Red finish reflection 0.6 Obrazek przedstawia taką samą kulę z powierzchnią jednobarwną i pokrytą obrazkiem: Ćwiczenie 1 - Ołówek Krok 1 - przygotowanie tekstur Do wykonania ołówka potrzebne nam są cztery tekstury: grafit, drewienko (ewentualnie plastik, jeśli ktoś się uprze, że używa tych nowych francuskich ołówków), farba (ja zrobię niebieską) i złoto. Oto ich kody: texture // grafit pigment rgb 0.3 finish ambient 0.7 diffuse 0.8 specular 0.8 roughness 0.01 brilliance 2 texture // drewienko (lub plastik) pigment rgb <0.8, 0.55, 0.4> finish ambient 0.2 diffuse 0.8 specular 0.2 roughness 0.3 texture // błękitna farba pigment rgb <0.2, 0.4, 1> finish diffuse 0.8 specular 0.5 roughness 0.01 reflection 0.1 metallic 0.3 texture // złoto Strona 25 z 30

pigment rgb <0.85, 0.7, 0.3> finish ambient 0.25 diffuse 0.9 specular 0.8 reflection 0.3 brilliance 4 metallic 0.5 Krok 2 - baza obiektu Składać się ona będzie z ułożonych jedna po drugiej, następujących brył: Stożek obłożony teksturą grafitu Stożek ścięty obłożony teksturą drewna Walec obłożony tą samą teksturą W tym momencie powinno to wyglądać mniej więcej tak: Krok 3 - struktura tnąca Ołówek powinien mieć w przekroju poprzecznym sześciokąt foremny. Jak to zrobić? Przygotowujemy w tym celu trzy prostopadłościany wystarczająco długie, żeby zmieścić w sobie całą bazę ołówka i przecinające sie w taki sposób, jak pokazuje obrazek obok: Widzisz kształt sześciokąta wewnątrz konstrukcji? Należy tak dobrać wysokości prostopadłościanów, aby długość boku owego sześciokąta wyniosła dokładnie tyle, co promień walca w bazie ołówka. Tu najprawdopodobniej trzeba będzie wziąć jakąś kartkę i wszystko narysować. Bryłom nadajemy teksturę farby Krok 4 - Nałożenie konstrukcji tnącej Następnie robimy następujące operacje: Bazę ołówka zamykamy w nawias union Uwzględniamy tę unię w nawiasie intersection razem z utworzoną przed chwilą konstrukcją tnącą. I mamy (mam nadzieję) taki wynik: Krok 5 - Ozdobne napisy Pozostaje nam tylko dodać to stworzonej bryły wytłaczane złote napisy (tak jak na prawdziwym ołówku). Robimy to tak: Strona 26 z 30

Wszystko, co do tej pory zrobiliśmy zamykamy w nawias difference tak, aby stanowiło to odjemną (bryłę ciętą) Jako odjemnik uwzględniamy napis umieszczony tak, aby częściowo zagłębiał się w ściance ołówka I bryła gotowa. Prawda, że nie takie złe? Nasze dziełko prezentuje się tak: Ćwiczenie 2 - Śrubka Krok 1 - tekstura metalu Zazwyczaj śrubki robi się z metalu. Wykonajmy zatem jakąś ciekawą teksturkę: texture // fajny metal pigment rgb 0.9 finish ambient 0.2 diffuse 0.7 brilliance 2 specular 0.7 reflection 0.3 metallic Krok 2 - baza obiektu Stwórzmy unię, składającą się z trzech obiektów ustawionych w rzędzie: superelipsoidy, walca i ściętego stożka. Nakładamy na nie nasz metal. Powinno to wyglądać mniej więcej tak: Krok 3 - ścięcie główki Wykorzystujemy identyczny tok myślenia jak w przypadku tworzenia konstrukcji tnącej ołówka. Superelipsoidę zamykamy w nawiasie intersection wraz z trzema odpowiednio przecinającymi się prostopadłościanami. W tej chwili główka naszego obiektu powinna przybrać taki kształt: Krok 4 - Stworzenie gwintu Tu będzie sporo roboty. Jest nam potrzebne całkiem sporo torusów rozciętych na pół. Strona 27 z 30

Wykorzystując obrót oraz przesunięcia przemieszczamy je tak, aby tworzyły spiralę. Ostatnia połówka torusa założona najbardziej po lewej stronie powinna mieć nieco większy promień. Cała spirala przedstawia się następująco: Krok 5 - Nałożenie gwintu Ta część jest chyba najgorsza. Nakładając na obiekt gwint musimy wykonać następujące operacje: Wokół walca i stożka tworzymy nawias union Wokół unii tworzymy nawias difference tak, aby walec ze stożkiem były odjemną tejże różnicy. Jako odjemniki wstawiamy połówki torusów z przygotowanego wcześniej gwintu. Tekstury: Aluminum, Apocalypse, Blood_Marble, Blood_Sky, Blue_Agate, Blue_Sky, Blue_Sky2, Blue_Sky3, Brass_Metal, Brass_Valley, Bright_Blue_Sky, Bright_Bronze, Bronze_Metal, Brown_Agate, Brushed_Aluminum, Candy_Cane, Cherry_Wood, Chrome_Metal, Clouds, Copper_Metal, Cork, Dark_Wood, DMFDarkOak, DMFLightOak, DMFWood1, DMFWood2, DMFWood3, DMFWood4, DMFWood5, DMFWood6, EMBWood1, FBM_Clouds, Gold_Metal, Gold_Nugget, Jade, Lightning1, Lightning2, New_Brass, New_Penny, Peel, Pine_Wood, Pink_Granite, PinkAlabaster, Polished_Brass, Polished_Chrome, Red_Marble, Rosewood, Rust, Rusty_Iron, Sandalwood, Sapphire_Agate, Shadow_Clouds, Silver_Metal, Silver1, Silver2, Silver3, Spun_Brass, Starfield, T_Stone1, T_Stone10, T_Stone11, T_Stone12, T_Stone13, T_Stone14, T_Stone15, T_Stone16, T_Stone17, T_Stone18, T_Stone19, T_Stone2, T_Stone20, T_Stone21, T_Stone22, T_Stone23, T_Stone24, T_Stone25, T_Stone26, T_Stone27, T_Stone28, T_Stone29, T_Stone3, T_Stone30, T_Stone31, T_Stone32, T_Stone33, T_Stone34, T_Stone35, T_Stone36, T_Stone37, T_Stone38, T_Stone39, T_Stone4, T_Stone40, T_Stone41, T_Stone42, T_Stone43, T_Stone44, T_Stone5, T_Stone6, T_Stone7, T_Stone8, T_Stone9, T_Wood1, T_Wood10, T_Wood11, T_Wood12, T_Wood13, T_Wood14, T_Wood15, T_Wood16, T_Wood17, T_Wood18, T_Wood19, T_Wood2, T_Wood20, T_Wood21, T_Wood22, T_Wood23, T_Wood24, T_Wood25, T_Wood26, T_Wood27, T_Wood28, T_Wood29, T_Wood3, T_Wood30, T_Wood31, T_Wood32, T_Wood33, T_Wood34, T_Wood35, T_Wood4, T_Wood5, T_Wood6, T_Wood7, T_Wood8, T_Wood9, Tan_Wood, Tinny_Brass, Tom_Wood, Water, White_Marble, White_Wood, Yellow_Pine Strona 28 z 30

STANDARDOWE OPCJE STARTU: #include "COLORS.INC" // definiowanie kolorów #include "TEXTURES.INC" // definiowanie tekstur i pigmentów #include "CHARS.INC" // Biblioteka znaków #include "CONSTS.INC" // Odmiany stałych #include "FINISH.INC" // Wykończenia #include "GLASS.INC" // Szkło #include "GOLDS.INC" // Złoto #include "METALS.INC" // Metal pigmenty, wykończenia i tekstury #include "RAD_DEF.INC" // Gradacje #include "SHAPES.INC" // Standardowe obiekty z POV-Ray's #include "SHAPES2.INC" // Przydatne kształty #include "SHAPESQ.INC" // Ćwierć kształty #include "SKIES.INC" // Definiowanie nieba #include "stars.inc" // Gwiazdozbiory #include "stdcam.inc" // Standardowe kamery #include "STONES.INC" // Związane z definiowaniem STONES1 i STONES2 #include "STONES1.INC" // Duże tekstury kamienne #include "STONES2.INC" // Inne #include "WOODMAPS.INC" // Podstawowe słoje drewna #include "WOODS.INC" // Tekstury drewna Zestaw gotowych pigmentów (layered patterns) agate = pigment agatowy, kolisty boxed = pojedyńczy czworokątny element w centrum obrazu bozo = kolorowe czerwono-zielone plamy brick = Łączenie kafelków- pigment brick pigmentjade, pigmentblack_marble lub normal brick normalbumps 0.2, normalgranite 0.3 bumps = ciapki checker = szachownica - normal checker 0.5 crackle = popękane szkło cylindrical = pojedyńczy kolisty element w centrum obrazu dents = pofałdowania gradient = liniowanie - pigment gradient x granite = pigment szlifowanego kamienia hexagon = klepka z sześciokatów - normal hexagon 0.5 leopard = plamy skóropodobne mandel = mglisty pejzaż- normal mandel 0.5 onion = koliste fale niby cebula marble = linie zbieżne do horyzontu?marmur planar = koliste kręgi o dużym promieniu quilted = pikowany materiał radial = promienie - pigement radial color_map[0.5 Black][0.5 White] frequency 10 ripples = koliste falowanie wody spherical = pojedyńczy kolisty element w centrum obrazu spiral1 = pigment spiralopodobny kolisty - normal spiral1 0.5 spiral2 = pigment spiralopodobny z osobnych elementów spotted = centkowanie, nakrapianie waves = koliste fale, wir chmur, trąba powietrzna wood = drewnopodobny Strona 29 z 30

Modyfikacja kształtów obiektu Należy dopisać do kodu opisującego dany kształt (np. kula - sphere), w wierszu poprzedzającym ostatni zamykający nawias klamrowy, definicję polecenia modyfikującego. Modyfikatory: bounded_by = ograniczenie dla box = bounded_by box -(x+y+z) +(x+y+z) clipped_by = wycięcie fragmentu kuli = clipped_by sphere 0.5*y, 2.5 hollow = wgłębienie, wydrąrzenie w box? interior = pokazanie wnętrza media = zaawansowane no_shadow = bez cienia padającego od obiektu open = otwiera jeden z boków walca (cylinder). Walec przypomina teraz rurkę Proszę zaprojektować choinkę jak na obrazku poniżej: Tło: sky_sphere pigment gradient <0,1,0> color_map [0 color rgb<1,0,1>] [0.4 color rgb<0.14,0.14,0.56>] [0.6 color rgb<0.14,0.14,0.56>] [1.0 color rgb<1,1,1>] scale 2 plane <0,1,0>, 0 texture pigmentcolor Grey Co oznaczają powyższe zapisy? Strona 30 z 30