POV-Ray 5 - Uniwersytet Śląski
Transkrypt
POV-Ray 5 - Uniwersytet Śląski
Podstawy POV-Ray’a Diana Domańska Uniwersytet Śląski Kamera Definicja kamery opisuje pozycję, typ rzutowania oraz właściwości kamery. Kamera Definicja kamery opisuje pozycję, typ rzutowania oraz właściwości kamery. Do zdefiniowania pozycji oraz ułożenia kamery służą polecenia umieszczone wewnątrz camera { ... } 1 2 3 4 5 6 7 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> obraz up look_at angle right location direction Wektory ratio). right, up służą do określenia formatu obrazu (aspect Wektory ratio). right, up służą do określenia formatu obrazu (aspect Do zmiany położenia kamery możemy również używać transformacji: translate, rotate. Wektory ratio). right, up służą do określenia formatu obrazu (aspect 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ść większą od 0 i mniejszą od 180. Wektory ratio). right, up służą do określenia formatu obrazu (aspect 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ść większą od 0 i mniejszą od 180. Ï orthographic – rzutowanie równoległe. Wektory ratio). right, up służą do określenia formatu obrazu (aspect 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ść większą od 0 i mniejszą od 180. Ï orthographic – rzutowanie równoległe. Ï fisheye – rzutowanie sferyczne, wartość 180 parametru angle daje „standardowe” rzutowanie sferyczne. Otrzymany obraz powinien być okrągły lub eliptyczny (w zależności od formatu obrazu). Wektory ratio). right, up służą do określenia formatu obrazu (aspect 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ść większą od 0 i mniejszą od 180. Ï orthographic – rzutowanie równoległe. Ï fisheye – rzutowanie sferyczne, wartość 180 parametru angle 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 tą różnicą, że rzutowanie następuje na prostokąt a nie koło. – rzutowanie sferyczne z kątem poziomym 180 i zredukowanym kątem pionowym. Ï omnimax – rzutowanie sferyczne z kątem poziomym 180 i zredukowanym kątem pionowym. Ï omnimax – rzutowanie cylindryczne, scena jest rzutowana na cylinder. Parametr typ określa typ i przyjmuje wartość: 1, 2, 3 lub 4. Ï cylinder typ – rzutowanie sferyczne z kątem poziomym 180 i zredukowanym kątem pionowym. Ï omnimax – rzutowanie cylindryczne, scena jest rzutowana na cylinder. Parametr typ określa typ i przyjmuje wartość: 1, 2, 3 lub 4. Ï cylinder typ Ï spherical – scena rzutowana jest na sferę. – rzutowanie sferyczne z kątem poziomym 180 i zredukowanym kątem pionowym. Ï omnimax – rzutowanie cylindryczne, scena jest rzutowana na cylinder. Parametr typ określa typ i przyjmuje wartość: 1, 2, 3 lub 4. Ï cylinder typ Ï spherical – scena rzutowana jest na sferę. – rzutowanie panoramiczne. Obchodzi problem degeneracji rzutowania perspektywicznego kiedy kąt patrzenia zbliża się do 180 stopni. Ï panoramic – rzutowanie sferyczne z kątem poziomym 180 i zredukowanym kątem pionowym. Ï omnimax – rzutowanie cylindryczne, scena jest rzutowana na cylinder. Parametr typ określa typ i przyjmuje wartość: 1, 2, 3 lub 4. Ï cylinder typ Ï spherical – scena rzutowana jest na sferę. – rzutowanie panoramiczne. Obchodzi problem degeneracji rzutowania perspektywicznego kiedy kąt patrzenia zbliża się do 180 stopni. Ï panoramic Inne własności kamery: 1 2 3 blur_samples [mins, ] maxs // liczba probek aperture s // przeslona (wieksza wartosc = wieksze rozmycie) focal_point <x, y, z> // ogniskowa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 #include "colors.inc" #include "textures.inc" sphere { <1, 0, -6>, 0.5 pigment { NeonPink } } box { <-1, -1, -1>, < 1, 1, 1> rotate <0, -20, 0> pigment { Green } } cylinder { <-6, 6, 30>, <-6, -1, 30>, 3 pigment {NeonBlue} } plane { y, -1.0 pigment { checker color Gray65 color Gray30 } } light_source { <5, 30, -30> color White } light_source { <-5, 30, -30> color White } camera { location <0.0, 1.0, -10.0> look_at <0.0, 1.0, 0.0> focal_point < 1, 1, -6> aperture 0.4 blur_samples 20 } Światło Światło otaczające (ambient light) Jest to światło emitowane równomiernie we wszystkich kierunkach. Bez tego światła obszary, które nie byłyby bezpośrednio oświetlone przez źródło światła mogłyby być zupełnie ciemne. Domyślnie światło otaczające ma kolor biały (rgb Zmiana koloru światła otaczającego 1 2 3 global_settings { ambient_light rgb <r, g, b> } <1, 1, 1>). Światło punktowe (point light) Nie ma rozmiaru, światło rozchodzi się ze źródła jednakowo we wszystkich kierunkach. Jest to domyślny rodzaj światła. 1 2 3 4 light_source { <x, y, z> // polozenie color rgb <r, g, b> // kolor } Światło punktowe (point light) Nie ma rozmiaru, światło rozchodzi się ze źródła jednakowo we wszystkich kierunkach. Jest to domyślny rodzaj światła. 1 2 3 4 light_source { <x, y, z> // polozenie color rgb <r, g, b> // kolor } Światło miejscowe (spot light) Światło miejscowe tworzy stożek światła, który jest jasny w środku i łagodnie ciemnieje zbliżając się do krawędzi. 1 2 3 4 5 6 7 8 9 10 light_source { <x, y, z> // color rgb <r, spotlight [radius r] [falloff f] [tightness t] zanikania [point_at <x, [(opt.)] } location polozenie g, b> // kolor // wspolczynnik swiatla y, z>] falloff radius point_at Światło cylindryczne (cylindrical light) Światło punktowe, w którym zamiast stożka światła tworzony jest walec światła. Promienie światła nie są równoległe. 1 2 3 4 5 6 7 8 9 10 light_source { <x, y, z> // polozenie color rbg <r, g, b> // kolor cylinder [radius r] [falloff f] [tightness t] [point_at <x, y, z>] [(opt.)] } Światło obszarowe (area light) Źródło światła obszarowego zajmuje skończony obszar przestrzeni jedno- lub dwuwymiarowej. Rzucają miękkie cienie. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 light_source { <x, y, z> // polozenie color rgb <r, g, b> // kolor area_light <x1, y1, z1>, // wektory definiujace prostokat <x2, y2, z2>, // musza byc prostopadle s1, // liczba swiatel w wierszu s2 // liczba swiatel w kolumnie [addaptive a] // adaptacyjne probkowanie swiatel [jitter] // losowe przesuwanie swiatel [circular] // swiatla organizowane sa w kolo [orient] // lepsze tworzenie miekkich cieni // tylko z circular, wektory musza // byc jednakowej dlugosci // liczba swiatel w kol. i wier. // muszi byc rowna [(opt.)] } W następnych przykładach scena będzie miała następującą postać, zmieniane będą tylko źródła światła 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 #include "colors.inc" #include "textures.inc" camera { location <-4, 3, -9> look_at <0, 0, 0> angle 50 } plane { y, -2 pigment{White}} torus { 1.5, 0.5 texture { Lightning2 } rotate <90, 160, 0> translate <-1, 0, 3> } box { <-1, -1, -1>, <1, 1, 1> texture { EMBWood1 } translate <2, -1, 2.3> } cone { <0,1,0>, 0, <0,0,0>, 1 texture { PinkAlabaster } scale <1, 3, 1> translate <-2, -2, -1> } sphere { <0,0,0>,1 texture { Blood_Marble } translate <1.5, -1, -2> } 1 2 3 4 1 2 3 4 5 6 7 light_source { <2, 10, -3> color White } light_source { <2, 10, -3> color White area_light <5, 0, 0>, <0, 0, 5>, 5, 5 adaptive 1 jitter } 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 light_source { <0, 10, -3> color White spotlight radius 15 falloff 20 tightness 10 point_at <0, -1, 0> } light_source { <0, 10, -3> color White cylinder radius 15 falloff 20 tightness 10 point_at <0, -1, 0> }