Professional Documents
Culture Documents
Krzysztof Gdawiec
Uniwersytet lski
POV-Ray (Persistence of Vision Raytracer) jest jzykiem opisu sceny sucym do tworzenia trjwymiarowej graki o wysokiej jakoci. Aby otrzyma wysok jako graki POV-Ray wykorzystuje algorytm ledzenia promieni (ang. Ray Tracing). Algorytm ten oblicza kolor i natenie owietlenia oddzielnie dla kadego punktu sceny zgodnie z zycznymi prawami rozchodzenia si wiata. POV-Ray jest cakowicie darmowy, dziaa na rnych systemach (Windows, Linux, MacOS) i mona go cign ze strony http://www.povray.org/
Ukad wsprzdnych
Y Z
light_source { <x, y, z> // polozenie zrodla swiatla color <r, g, b> // kolor swiatla [(opt.)] }
light_source { <x, y, z> // polozenie zrodla swiatla color <r, g, b> // kolor swiatla [(opt.)] }
Inne sposoby podawania koloru (poszczeglne skadowe koloru musz by liczbami z [0, 1])
rgb <r, g, b> color red r green g blue b
W pliku znajduj si denicje kolorw, do ktrych moemy si odwoywa po ich nazwach np. Red, Orange, SummerSky, itp.
Kamera
1 2 3 4 5
camera { location <x, y, z> // polozenie kamery look_at <x, y, z> // punkt, na ktory kamera patrzy [(opt.)] }
Wicej szczegowych informacji na temat rde wiata i kamery podamy na jednych z dalszych zaj.
To, paszczyzna
To
1 2 3
Paszczyzna
1 2 3 4 5 6
plane { <x, y, z>, // wektor normalny d // przesuniecie plaszczyzny od poczatku ukl. // wspol. w kierunku wektora normalnego [(opt.)] }
Czsto paszczyzna jest prostopada do osi ukadu wsprzdnych dlatego te zdeniowano odpowiednie stae: x, y, z, ktre podajemy w miejsce wektora normalnego.
Walec
1 2 3 4 5 6 7
cylinder { <x1, y1, z1>, // srodek dolenj podstawy <x2, y2, z2>, // srodek gornej podstawy r // promien [open] // walec bez podstaw [(opt.)] }
city stoek
1 2 3 4 5 6 7 8
cone { <x1, y1, z1>, // srodek dolnej podstawy r1, // promien dolnej podstawy <x2, y2, z2>, // srodek gornej podstawy r2 // promien dolnej podstawy [open] // stozek bez podstaw [(opt.)] }
city stoek
1 2 3 4 5 6 7 8
cone { <x1, y1, z1>, // srodek dolnej podstawy r1, // promien dolnej podstawy <x2, y2, z2>, // srodek gornej podstawy r2 // promien dolnej podstawy [open] // stozek bez podstaw [(opt.)] }
Prostopadocian
1 2 3 4 5
box { <x1, y1, z1>, // lewy dolny wierzcholek <x2, y2, z2> // prawy gorny wierzcholek [(opt.)] }
Torus
1 2 3 4 5
r2 r1 X
Trjkt
1 2 3 4 5 6
triangle { <x1, y1, z1>, // wierzcholki trojkata <x2, y2, z2>, <x3, y3, z3> [(opt.)] }
Trjkt
1 2 3 4 5 6
triangle { <x1, y1, z1>, // wierzcholki trojkata <x2, y2, z2>, <x3, y3, z3> [(opt.)] }
Wielokt
1 2 3 4 5 6 7
polygon { n, // liczba wierzcholkow <x1, y1, z1>, // wierzcholki ... <xn, yn, zn> [(opt.)] }
Dysk
1 2 3 4 5 6 7
// // // //
Podstawowe transformacje
Transformacje obiektw umieszcza si w sekcji opcjonalnej. Naley pamita, e kolejno wykonywania transformacji ma znaczenie!
Podstawowe transformacje
Transformacje obiektw umieszcza si w sekcji opcjonalnej. Naley pamita, e kolejno wykonywania transformacji ma znaczenie! Translacja
1
Podstawowe transformacje
Transformacje obiektw umieszcza si w sekcji opcjonalnej. Naley pamita, e kolejno wykonywania transformacji ma znaczenie! Translacja
1
Rotacja
1
Podstawowe transformacje
Transformacje obiektw umieszcza si w sekcji opcjonalnej. Naley pamita, e kolejno wykonywania transformacji ma znaczenie! Translacja
1
Rotacja
1
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 27 28 29 30 31
#include "colors.inc" light_source {<0, 10, 10> color White} camera { location <0, 5, -5> look_at <0, 0, 0> } sphere { <1, 0, 0>, 1 pigment{rgb <1, 0, 0>} } cylinder { <0, -0.5, 0>, <0, 0.5, 0>, 1 translate <3.3, 0, 0> pigment{Cyan} } box { <-0.5, -0.5, -0.5> <0.5, 0.5, 0.5> scale <1.3, 1.3, 1.3> translate <-0.75, 0, 0> pigment{Yellow} } torus { 1, 0.25 translate <-3, 0, 0> pigment{color red 1 green 1 blue 1} }