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 {... } obraz up look_at 1 location <x, y, z> 2 direction <x, y, z> 3 right <x, y, z> 4 up <x, y, z> 5 sky <x, y, z> 6 angle k 7 look_at <x, y, z> angle location direction right
Wektory right, up służą do określenia formatu obrazu (aspect ratio).
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.
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ść większą od 0 i mniejszą od 180.
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ść większą od 0 i mniejszą od 180. orthographic rzutowanie równoległe.
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ść 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 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ść 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.
omnimax 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. cylinder typ rzutowanie cylindryczne, scena jest rzutowana na cylinder. Parametr typ określa typ i przyjmuje wartość: 1, 2, 3 lub 4.
omnimax rzutowanie sferyczne z kątem poziomym 180 i zredukowanym kątem pionowym. cylinder typ rzutowanie cylindryczne, scena jest rzutowana na cylinder. Parametr typ określa typ i przyjmuje wartość: 1, 2, 3 lub 4. spherical scena rzutowana jest na sferę.
omnimax rzutowanie sferyczne z kątem poziomym 180 i zredukowanym kątem pionowym. cylinder typ rzutowanie cylindryczne, scena jest rzutowana na cylinder. Parametr typ określa typ i przyjmuje wartość: 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.
omnimax rzutowanie sferyczne z kątem poziomym 180 i zredukowanym kątem pionowym. cylinder typ rzutowanie cylindryczne, scena jest rzutowana na cylinder. Parametr typ określa typ i przyjmuje wartość: 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: 1 blur_samples [mins, ] maxs // liczba probek 2 aperture s // przeslona (wieksza wartosc = wieksze rozmycie) 3 focal_point <x, y, z> // ogniskowa
1 #include "colors.inc" 2 #include "textures.inc" 3 sphere { <1, 0, -6>, 0.5 4 pigment { NeonPink } 5 } 6 box { <-1, -1, -1>, < 1, 1, 1> 7 rotate <0, -20, 0> 8 pigment { Green } 9 } 10 cylinder { <-6, 6, 30>, <-6, -1, 30>, 3 11 pigment {NeonBlue} 12 } 13 plane { y, -1.0 14 pigment { checker color Gray65 color Gray30 } 15 } 16 light_source { <5, 30, -30> color White } 17 light_source { <-5, 30, -30> color White } 18 camera { 19 location <0.0, 1.0, -10.0> 20 look_at <0.0, 1.0, 0.0> 21 focal_point < 1, 1, -6> 22 aperture 0.4 23 blur_samples 20 24 }
Ś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 <1, 1, 1>). Zmiana koloru światła otaczającego 1 global_settings { 2 ambient_light rgb <r, g, b> 3 }
Ś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 light_source { 2 <x, y, z> // polozenie 3 color rgb <r, g, b> // kolor 4 }
Ś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 light_source { 2 <x, y, z> // polozenie 3 color rgb <r, g, b> // kolor 4 } Ś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 light_source { 2 <x, y, z> // polozenie 3 color rgb <r, g, b> // kolor 4 spotlight 5 [radius r] 6 [falloff f] 7 [tightness t] // wspolczynnik zanikania swiatla 8 [point_at <x, y, z>] 9 [(opt.)] 10 } location radius point_at falloff
Ś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 light_source { 2 <x, y, z> // polozenie 3 color rbg <r, g, b> // kolor 4 cylinder 5 [radius r] 6 [falloff f] 7 [tightness t] 8 [point_at <x, y, z>] 9 [(opt.)] 10 }
Światło obszarowe (area light) Źródło światła obszarowego zajmuje skończony obszar przestrzeni jedno- lub dwuwymiarowej. Rzucają miękkie cienie. 1 light_source { 2 <x, y, z> // polozenie 3 color rgb <r, g, b> // kolor 4 area_light 5 <x1, y1, z1>, // wektory definiujace prostokat 6 <x2, y2, z2>, // musza byc prostopadle 7 s1, // liczba swiatel w wierszu 8 s2 // liczba swiatel w kolumnie 9 [addaptive a] // adaptacyjne probkowanie swiatel 10 [jitter] // losowe przesuwanie swiatel 11 [circular] // swiatla organizowane sa w kolo 12 [orient] // lepsze tworzenie miekkich cieni 13 // tylko z circular, wektory musza 14 // byc jednakowej dlugosci 15 // liczba swiatel w kol. i wier. 16 // muszi byc rowna 17 [(opt.)] 18 }
W następnych przykładach scena będzie miała następującą postać, zmieniane będą tylko źródła światła 1 #include "colors.inc" 2 #include "textures.inc" 3 camera { 4 location <-4, 3, -9> 5 look_at <0, 0, 0> 6 angle 50 7 } 8 plane { y, -2 pigment{white}} 9 torus { 1.5, 0.5 10 texture { Lightning2 } 11 rotate <90, 160, 0> 12 translate <-1, 0, 3> 13 } 14 box { <-1, -1, -1>, <1, 1, 1> 15 texture { EMBWood1 } 16 translate <2, -1, 2.3> 17 } 18 cone { <0,1,0>, 0, <0,0,0>, 1 19 texture { PinkAlabaster } 20 scale <1, 3, 1> 21 translate <-2, -2, -1> 22 } 23 sphere { <0,0,0>,1 24 texture { Blood_Marble } 25 translate <1.5, -1, -2> 26 }
1 light_source { 2 <2, 10, -3> 3 color White 4 } 1 light_source { 2 <2, 10, -3> 3 color White 4 area_light <5, 0, 0>, <0, 0, 5>, 5, 5 5 adaptive 1 6 jitter 7 }
1 light_source { 2 <0, 10, -3> 3 color White 4 spotlight 5 radius 15 6 falloff 20 7 tightness 10 8 point_at <0, -1, 0> 9 } 1 light_source { 2 <0, 10, -3> 3 color White 4 cylinder 5 radius 15 6 falloff 20 7 tightness 10 8 point_at <0, -1, 0> 9 }