POV-Ray 3 - Uniwersytet Śląski
Transkrypt
POV-Ray 3 - Uniwersytet Śląski
Podstawy POV-Ray’a Diana Domańska Uniwersytet Śląski Tekst 1 2 3 4 5 6 7 text { ttf "czcionka.ttf" "tekst" t, <x, y, z> [(opt.)] } // // // // nazwa uzytej czcionki tekst do wyswietlenia "grubosc" w kierunku Z dodatkowy odstep miedzy znakami Czcionki obsługiwane przez POV-Ray: TrueType Font (ttf), TrueType Collecion (ttc). Tekst zostanie umieszczony w początku układu współrzędnych i będzie się rozciągał w kierunku dodatniej osi X . 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 #include "colors.inc" camera { location <0, 1, -5> look_at <0, 0, 0> } light_source {<5, 5, -10> White} text { ttf "arial.ttf" "Hello" 2, <0, 0, 0> pigment{Red} translate <-1, 1, 0> } text { ttf "arial.ttf" "World" 1.5, <0, 0, 0> pigment{Green} translate <-1.3, -1.5, 0> } Bryły obrotowe Surface of Revolution (SoR) Ï SoR powstaje poprzez obrót wykresu funkcji wokół osi Y . Bryły obrotowe Surface of Revolution (SoR) Ï SoR powstaje poprzez obrót wykresu funkcji wokół osi Y . Ï Wykres funkcji (krzywą) definiujemy poprzez podanie punktów na płaszczyźnie XY , przez które krzywa będzie przechodzić i które zostaną połączone w sposób gładki. Bryły obrotowe Surface of Revolution (SoR) Ï SoR powstaje poprzez obrót wykresu funkcji wokół osi Y . Ï Wykres funkcji (krzywą) definiujemy poprzez podanie punktów na płaszczyźnie XY , przez które krzywa będzie przechodzić i które zostaną połączone w sposób gładki. Ï Pierwszy i ostatni podany punkt nie będą należeć do krzywej, służą one jedynie do wyznaczenia kształtu krzywej. Bryły obrotowe Surface of Revolution (SoR) Ï SoR powstaje poprzez obrót wykresu funkcji wokół osi Y . Ï Wykres funkcji (krzywą) definiujemy poprzez podanie punktów na płaszczyźnie XY , przez które krzywa będzie przechodzić i które zostaną połączone w sposób gładki. Ï Pierwszy i ostatni podany punkt nie będą należeć do krzywej, służą one jedynie do wyznaczenia kształtu krzywej. Ï Każdemu y musi odpowiadać jeden punkt na krzywej, więc krzywa nie może być zamknięta czy też „zawracać”. Bryły obrotowe Surface of Revolution (SoR) Ï SoR powstaje poprzez obrót wykresu funkcji wokół osi Y . Ï Wykres funkcji (krzywą) definiujemy poprzez podanie punktów na płaszczyźnie XY , przez które krzywa będzie przechodzić i które zostaną połączone w sposób gładki. Ï Pierwszy i ostatni podany punkt nie będą należeć do krzywej, służą one jedynie do wyznaczenia kształtu krzywej. Ï Każdemu y musi odpowiadać jeden punkt na krzywej, więc krzywa nie może być zamknięta czy też „zawracać”. Ï Krzywa nie może przecinać osi Y , bo może to powodować późniejsze błędy. Bryły obrotowe Surface of Revolution (SoR) Ï SoR powstaje poprzez obrót wykresu funkcji wokół osi Y . Ï Wykres funkcji (krzywą) definiujemy poprzez podanie punktów na płaszczyźnie XY , przez które krzywa będzie przechodzić i które zostaną połączone w sposób gładki. Ï Pierwszy i ostatni podany punkt nie będą należeć do krzywej, służą one jedynie do wyznaczenia kształtu krzywej. Ï Każdemu y musi odpowiadać jeden punkt na krzywej, więc krzywa nie może być zamknięta czy też „zawracać”. Ï Krzywa nie może przecinać osi Y , bo może to powodować późniejsze błędy. Ï SoR używane jest do tworzenia butelek, wazonów itp. 1 2 3 4 5 6 7 8 9 sor { n, // liczba punktow definiujacych krzywa (min. 4) <x1, y1>, // wspolrzedne punktow definiujacych krzywa <x2, y2>, ... <xn, yn> [open] [(opt.)] } Lathe Ï Lathe powstaje poprzez obrót dwuwymiarowej krzywej wokół osi Y . Lathe Ï Lathe powstaje poprzez obrót dwuwymiarowej krzywej wokół osi Y . Ï Krzywą definiujemy poprzez podanie punktów, które są łączone krzywą liniową, kwadratową, kubiczną lub krzywą Béziera. Lathe Ï Lathe powstaje poprzez obrót dwuwymiarowej krzywej wokół osi Y . Ï Krzywą definiujemy poprzez podanie punktów, które są łączone krzywą liniową, kwadratową, kubiczną lub krzywą Béziera. Ï Minimalna liczba punktów zależy od metody łączenia: liniowa – 2 punkty, kwadratowa – 3, kubiczna – 4, Bézier – 4 (liczba musi być wielokrotnością 4). Lathe Ï Lathe powstaje poprzez obrót dwuwymiarowej krzywej wokół osi Y . Ï Krzywą definiujemy poprzez podanie punktów, które są łączone krzywą liniową, kwadratową, kubiczną lub krzywą Béziera. Ï Minimalna liczba punktów zależy od metody łączenia: liniowa – 2 punkty, kwadratowa – 3, kubiczna – 4, Bézier – 4 (liczba musi być wielokrotnością 4). Ï W zależności od metody łączenia przez niektóre punkty krzywa nie będzie przechodzić: kwadratowa – pierwszy, kubiczna – pierwszy i ostatni. Lathe Ï Lathe powstaje poprzez obrót dwuwymiarowej krzywej wokół osi Y . Ï Krzywą definiujemy poprzez podanie punktów, które są łączone krzywą liniową, kwadratową, kubiczną lub krzywą Béziera. Ï Minimalna liczba punktów zależy od metody łączenia: liniowa – 2 punkty, kwadratowa – 3, kubiczna – 4, Bézier – 4 (liczba musi być wielokrotnością 4). Ï W zależności od metody łączenia przez niektóre punkty krzywa nie będzie przechodzić: kwadratowa – pierwszy, kubiczna – pierwszy i ostatni. Ï W odróżnieniu od SoR krzywa może być zamknięta. 1 2 lathe { typ // // n, // <x1, y1>, // <x2, y2>, ... <xn, yn> [(opt.)] 3 4 5 6 7 8 9 10 } linear_spline, quadratic_spline, cubic_spline, bezier_spline liczba punktow definiujacych krzywa wspolrzedne punktow 1 2 3 4 5 sor { 6, <0, 0>, <1, 1>, <3, 2>, <2, 3>, <2, 4>, <0,4> pigment{color <1, 0, 0>} } 1 2 3 4 5 6 lathe { linear_spline 6, <0, 0>, <1, 1>, <3, 2>, <2, 3>, <2, 4>, <0,4> pigment{color <1, 0, 0>} } 1 2 3 4 5 6 lathe { cubic_spline 6, <0, 0>, <1, 1>, <3, 2>, <2, 3>, <2, 4>, <0,4> pigment{color <1, 0, 0>} } Bryły ciągnięte Ï Są to bryły zdefiniowane przez jedną lub więcej dwuwymiarowe zamknięte krzywe leżące na płaszczyźnie XZ i ciągnięte wzdłuż osi Y . Bryły ciągnięte Ï Ï Są to bryły zdefiniowane przez jedną lub więcej dwuwymiarowe zamknięte krzywe leżące na płaszczyźnie XZ i ciągnięte wzdłuż osi Y . Krzywe zdefiniowane są podobnie jak w przypadku lathe przez punkty i sposób ich łączenia (liniowy, kwadratowy, kubiczny, Béziera). Bryły ciągnięte Ï Ï Ï Są to bryły zdefiniowane przez jedną lub więcej dwuwymiarowe zamknięte krzywe leżące na płaszczyźnie XZ i ciągnięte wzdłuż osi Y . Krzywe zdefiniowane są podobnie jak w przypadku lathe przez punkty i sposób ich łączenia (liniowy, kwadratowy, kubiczny, Béziera). Należy pamiętać o zamknięciu krzywej: liniowy – pierwszy i ostatni punkt muszą być równe, kwadratowy – ostatni i drugi punkt muszą być równe, kubiczny – drugi i przedostatni punkt muszą być równe. Bryły ciągnięte Ï Ï Ï Ï Są to bryły zdefiniowane przez jedną lub więcej dwuwymiarowe zamknięte krzywe leżące na płaszczyźnie XZ i ciągnięte wzdłuż osi Y . Krzywe zdefiniowane są podobnie jak w przypadku lathe przez punkty i sposób ich łączenia (liniowy, kwadratowy, kubiczny, Béziera). Należy pamiętać o zamknięciu krzywej: liniowy – pierwszy i ostatni punkt muszą być równe, kwadratowy – ostatni i drugi punkt muszą być równe, kubiczny – drugi i przedostatni punkt muszą być równe. W definicji obiektu po zamknięciu krzywej kolejne punkty definiują następną krzywą. Bryły ciągnięte Ï Ï Ï Ï Ï Są to bryły zdefiniowane przez jedną lub więcej dwuwymiarowe zamknięte krzywe leżące na płaszczyźnie XZ i ciągnięte wzdłuż osi Y . Krzywe zdefiniowane są podobnie jak w przypadku lathe przez punkty i sposób ich łączenia (liniowy, kwadratowy, kubiczny, Béziera). Należy pamiętać o zamknięciu krzywej: liniowy – pierwszy i ostatni punkt muszą być równe, kwadratowy – ostatni i drugi punkt muszą być równe, kubiczny – drugi i przedostatni punkt muszą być równe. W definicji obiektu po zamknięciu krzywej kolejne punkty definiują następną krzywą. Istnieją dwa sposoby przeciągania krzywej: liniowy – krzywa jest przeciągana bez zmian, stożkowy – krzywa wraz z przeciąganiem jest skalowana w „dół”. Ï Jeśli parzysta liczba kształtów zdefiniowanych przez krzywe przecina się, to obszar przecięcia się jest wycinany z obu kształtów. Ï 1 2 Jeśli parzysta liczba kształtów zdefiniowanych przez krzywe przecina się, to obszar przecięcia się jest wycinany z obu kształtów. prism { typ_laczenia // // typ_przeciagania // h1, // h2, // n, // <x1, z1>, // <x2, z2>, ... <xn, zn> [open] [(opt.)] 3 4 5 6 7 8 9 10 11 12 13 14 } linear_spline, quadratic_spline, cubic_spline, bezier_spline linear_sweep, conic_sweep wysokosc od ktorej zaczynamy wysokosc na ktorej konczymy liczba punktow wspolrzedne punktow 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 #include "colors.inc" background{Gray} camera { location <1, 5, -10> look_at <0, 0, 0> } light_source {<20, 20, -20> color White} prism { linear_sweep cubic_spline 0, 1, 18, <3,-5>, <3,5>, <-5,0>, <3, -5>, <3,5>, <-5,0>, <2,-4>, <2,4>, <-4,0>, <2,-4>, <2,4>, <-4,0>, <1,-3>, <1,3>, <-3,0>, <1, -3>, <1,3>, <-3,0> pigment{Green} } Odblaski, predefiniowane tekstury W celu dodania odblasku do obiektu po 1 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 i nie może przyjmować wartości 0 (domyślnie 0.05). Odblaski, predefiniowane tekstury W celu dodania odblasku do obiektu po 1 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 i nie może przyjmować wartości 0 (domyślnie 0.05). Predefiniowane tekstury znajdują się w plikach: textures.inc, golds.inc, metals.inc, stones.inc, woods.inc, zanim będziemy mogli korzystać z tych tekstur musimy plik dołączyć instrukcją #include. Następnie w definicji obiektu, któremu chcemy ustawić teksturę zamieniamy pigment na 1 texture{nazwa} więc 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 #include "colors.inc" #include "textures.inc" camera { location <1, 5, -10> look_at <0, 0, 0> } light_source {<0, 10, -10> color White} sphere { <-3, 0, 0>, 2.8 texture{pigment{rgb <1, 0, 0>} finish{specular 0.8 roughness 0.009}} } sphere { <3, 0, 0>, 2.8 texture{Sandalwood} }