Podstawy POV

Transkrypt

Podstawy POV
Podstawy POV-Ray'a
Diana Doma«ska
Uniwersytet ‘l¡ski
Diana Doma«ska
(U‘)
Podstawy POV-Ray'a
1 / 13
POV-Ray (Persistence of Vision Raytracer) jest j¦zykiem opisu sceny
sªu»¡cym do tworzenia trójwymiarowej graki o wysokiej jako±ci.
Aby otrzyma¢ wysok¡ jako±¢ graki POV-Ray wykorzystuje algorytm
±ledzenia promieni (ang. Ray Tracing). Algorytm ten oblicza kolor i
nat¦»enie o±wietlenia oddzielnie dla ka»dego punktu sceny zgodnie z
zycznymi prawami rozchodzenia si¦ ±wiatªa.
POV-Ray jest caªkowicie darmowy, dziaªa na ró»nych systemach (Windows,
Linux, MacOS) i mo»na go ±ci¡gn¡¢ ze strony
http://www.povray.org/
Diana Doma«ska
(U‘)
Podstawy POV-Ray'a
2 / 13
Ukªad wspóªrz¦dnych
Y
Z
X
Diana Doma«ska
(U‘)
Podstawy POV-Ray'a
3 / 13
™ródªo ±wiatªa, kamera (podstawy)
™ródªo ±wiatªa
1
2
3
4
5
light_source {
<x, y, z>
// polozenie zrodla swiatla
color <r, g, b> // kolor swiatla
[(opt.)]
}
Diana Doma«ska
(U‘)
Podstawy POV-Ray'a
4 / 13
™ródªo ±wiatªa, kamera (podstawy)
™ródªo ±wiatªa
1
2
3
4
5
light_source {
<x, y, z>
// polozenie zrodla swiatla
color <r, g, b> // kolor swiatla
[(opt.)]
}
Inne sposoby podawania koloru
rgb <r, g, b>
color red r green g blue b
na pocz¡tku pliku ze skryptem zamieszczamy instrukcj¦ wª¡czaj¡c¡
plik z denicjami kolorów
#include "colors.inc"
W pliku znajduj¡ si¦ denicje kolorów, do których mo»emy si¦
odwoªywa¢ po ich nazwach np. Red, Orange, SummerSky, itp.
Diana Doma«ska
(U‘)
Podstawy POV-Ray'a
4 / 13
Kamera
1
2
3
4
5
camera {
location <x, y, z> // polozenie kamery
look_at <x, y, z> // punkt, na ktory kamera patrzy
[(opt.)]
}
Wi¦cej szczegóªowych informacji na temat ¹ródeª ±wiatªa i kamery podamy
na jednych z dalszych zaj¦¢.
Diana Doma«ska
(U‘)
Podstawy POV-Ray'a
5 / 13
Tªo, pªaszczyzna
Tªo
1
2
3
background {
<r, g, b> // kolor tla
}
Pªaszczyzna
1
2
3
4
5
6
plane {
<x, y, z>, // wektor normalny
d
// przesuniecie plaszczyzny od poczatku ukl.
// wspol. w kierunku wektora normalnego
[(opt.)]
}
Cz¦sto pªaszczyzna jest prostopadªa do osi ukªadu wspóªrz¦dnych dlatego
te» zdeniowano odpowiednie staªe: x, y, z, które podajemy w miejsce
wektora normalnego.
Diana Doma«ska
(U‘)
Podstawy POV-Ray'a
6 / 13
Podstawowe prymitywy graczne
Sfera
1
2
3
4
5
sphere {
<x, y, z>, // wspolrzedne srodka sfery
r
// promien sfery
[(opt.)]
}
Diana Doma«ska
(U‘)
Podstawy POV-Ray'a
7 / 13
Podstawowe prymitywy graczne
Sfera
1
2
3
4
5
sphere {
<x, y, z>, // wspolrzedne srodka sfery
r
// promien sfery
[(opt.)]
}
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.)]
}
Diana Doma«ska
(U‘)
Podstawy POV-Ray'a
7 / 13
‘ci¦ty sto»ek
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.)]
}
Diana Doma«ska
(U‘)
Podstawy POV-Ray'a
8 / 13
‘ci¦ty sto»ek
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.)]
}
Prostopadªo±cian
1
2
3
4
5
box {
<x1, y1, z1>, // lewy dolny wierzcholek
<x2, y2, z2> // prawy gorny wierzcholek
[(opt.)]
}
Diana Doma«ska
(U‘)
Podstawy POV-Ray'a
8 / 13
Torus
1
2
3
4
5
torus {
r1, // promien
r2 // promien
[(opt.)]
}
Z
r2
r1
Diana Doma«ska
(U‘)
Podstawy POV-Ray'a
X
9 / 13
Trójk¡t
1
2
3
4
5
6
triangle {
<x1, y1, z1>, // wierzcholki trojkata
<x2, y2, z2>,
<x3, y3, z3>
[(opt.)]
}
Diana Doma«ska
(U‘)
Podstawy POV-Ray'a
10 / 13
Trójk¡t
1
2
3
4
5
6
triangle {
<x1, y1, z1>, // wierzcholki trojkata
<x2, y2, z2>,
<x3, y3, z3>
[(opt.)]
}
Wielok¡t
1
2
3
4
5
6
7
polygon {
n,
// liczba wierzcholkow
<x1, y1, z1>, // wierzcholki
...
<xn, yn, zn>
[(opt.)]
}
Diana Doma«ska
(U‘)
Podstawy POV-Ray'a
10 / 13
Dysk
1
2
3
4
5
6
7
disc {
<x, y, z>, // wspolrzedne srodka
<nx, ny, nz>, // wektor normalny
r // promien
[, r1] // proimien otworu
[(opt.)]
}
Diana Doma«ska
(U‘)
Podstawy POV-Ray'a
11 / 13
Podstawowe transformacje
Transformacje obiektów umieszcza si¦ w sekcji opcjonalnej. Nale»y
pami¦ta¢, »e kolejno±¢ wykonywania transformacji ma znaczenie!
Diana Doma«ska
(U‘)
Podstawy POV-Ray'a
12 / 13
Podstawowe transformacje
Transformacje obiektów umieszcza si¦ w sekcji opcjonalnej. Nale»y
pami¦ta¢, »e kolejno±¢ wykonywania transformacji ma znaczenie!
Translacja
1
translate <tx, ty, tz>
Diana Doma«ska
(U‘)
Podstawy POV-Ray'a
12 / 13
Podstawowe transformacje
Transformacje obiektów umieszcza si¦ w sekcji opcjonalnej. Nale»y
pami¦ta¢, »e kolejno±¢ wykonywania transformacji ma znaczenie!
Translacja
1
translate <tx, ty, tz>
Rotacja
1
rotate <rx, ry, rz>
K¡ty podawane s¡ w stopniach.
Diana Doma«ska
(U‘)
Podstawy POV-Ray'a
12 / 13
Podstawowe transformacje
Transformacje obiektów umieszcza si¦ w sekcji opcjonalnej. Nale»y
pami¦ta¢, »e kolejno±¢ wykonywania transformacji ma znaczenie!
Translacja
1
translate <tx, ty, tz>
Rotacja
1
rotate <rx, ry, rz>
K¡ty podawane s¡ w stopniach.
Skalowanie
1
scale <sx, sy, sz>
Diana Doma«ska
(U‘)
Podstawy POV-Ray'a
12 / 13
Projekt:
U»ywaj¡c gur i bryª poznanych na zaj¦ciach oraz trzech dowolnie
wybranych z dokumentacji utwórz projekt zwi¡zany z por¡ zimow¡.
Diana Doma«ska
(U‘)
Podstawy POV-Ray'a
13 / 13