POV-Ray 2 - Uniwersytet Śląski

Transkrypt

POV-Ray 2 - Uniwersytet Śląski
Podstawy POV-Ray’a
Diana Domańska
Uniwersytet Śląski
CSG (Constructive Solid Geometry)
Ï
Większość kształtów takich jak sfera, prostopadłościan itp.
dzielą świat na dwa regiony: region leżący wewnątrz i region
leżący na zewnątrz obiektu.
CSG (Constructive Solid Geometry)
Ï
Większość kształtów takich jak sfera, prostopadłościan itp.
dzielą świat na dwa regiony: region leżący wewnątrz i region
leżący na zewnątrz obiektu.
Ï
Kształty takie jak trójkąt, wielokąt nie posiadają regionu
wewnętrznego i zewnętrznego. W przypadku powierzchni
wektor normalny wskazuje region zewnętrzny.
CSG (Constructive Solid Geometry)
Ï
Większość kształtów takich jak sfera, prostopadłościan itp.
dzielą świat na dwa regiony: region leżący wewnątrz i region
leżący na zewnątrz obiektu.
Ï
Kształty takie jak trójkąt, wielokąt nie posiadają regionu
wewnętrznego i zewnętrznego. W przypadku powierzchni
wektor normalny wskazuje region zewnętrzny.
Ï
Dla danego obiektu możemy odwrócić znaczenie
wnętrze/zewnętrze poprzez dodanie w jego definicji słowa
kluczowego inverse.
CSG (Constructive Solid Geometry)
Ï
Większość kształtów takich jak sfera, prostopadłościan itp.
dzielą świat na dwa regiony: region leżący wewnątrz i region
leżący na zewnątrz obiektu.
Ï
Kształty takie jak trójkąt, wielokąt nie posiadają regionu
wewnętrznego i zewnętrznego. W przypadku powierzchni
wektor normalny wskazuje region zewnętrzny.
Ï
Dla danego obiektu możemy odwrócić znaczenie
wnętrze/zewnętrze poprzez dodanie w jego definicji słowa
kluczowego inverse.
Ï
W technice CSG można korzystać jedynie z obiektów, które
posiadają region wewnętrzny i zewnętrzny.
Suma
1
2
3
4
union {
obiekty
[(opt.)]
}
Obiekty są łączone, a powierzchnie wewnątrz nie są usuwane.
Suma
1
2
3
4
union {
obiekty
[(opt.)]
}
Obiekty są łączone, a powierzchnie wewnątrz nie są usuwane.
Scalanie
1
2
3
4
merge {
obiekty
[(opt.)]
}
Działa tak samo jak union z tą różnicą, że powierzchnie wewnątrz
są usuwane. Przydatne przy obiektach przeźroczystych. Działa
wolniej od union.
Przecięcie
1
2
3
4
intersection {
obiekty
[(opt.)]
}
Przecięcie
1
2
3
4
intersection {
obiekty
[(opt.)]
}
Różnica
1
2
3
4
difference {
obiekty
[(opt.)]
}
1
2
3
4
5
6
7
union {
box {
<-1.5, -1, -1>,
<0.5, 1, 1>
pigment{color <1, 0, 0>}
translate <1, 0, 0>
}
8
cylinder {
<0.5, 0, -0.5>,
<0.5, 0, 0.5>,
1.3
pigment{color <106/255,
250/255, 65/255>}
translate <-1, 0, 0>
}
9
10
11
12
13
14
15
16
}
1
2
3
4
5
6
7
intersection {
box {
<-1.5, -1, -1>,
<0.5, 1, 1>
pigment{color <1, 0, 0>}
translate <1, 0, 0>
}
8
cylinder {
<0.5, 0, -0.5>,
<0.5, 0, 0.5>,
1.3
pigment{color <106/255,
250/255, 65/255>}
translate <-1, 0, 0>
}
9
10
11
12
13
14
15
16
}
1
2
3
4
5
6
7
difference {
box {
<-1.5, -1, -1>,
<0.5, 1, 1>
pigment{color <1, 0, 0>}
translate <1, 0, 0>
}
8
cylinder {
<0.5, 0, -0.5>,
<0.5, 0, 0.5>,
1.3
pigment{color <106/255,
250/255, 65/255>}
translate <-1, 0, 0>
}
9
10
11
12
13
14
15
16
}
1
2
3
4
5
6
7
8
difference {
cylinder {
<0.5, 0, -0.5>,
<0.5, 0, 0.5>,
1.3
pigment{color <106/255,
250/255, 65/255>}
translate <-1, 0, 0>
}
9
box {
<-1.5, -1, -1>,
<0.5, 1, 1>
pigment{color <1, 0, 0>}
translate <1, 0, 0>
}
10
11
12
13
14
15
16
}
Własne obiekty
Deklarowanie własnego obiektu:
1
#declare nazwa = definicja_obiektu;
jest to nazwa do jakiej będziemy się odwoływać w dalszej
części naszego skryptu, definicja_obiektu jest to właściwa definicja
obiektu składająca się np. z prymitywów, obiektów powstałych
przez zastosowanie CSG.
nazwa
Przykład:
1
2
3
4
#declare bryla = union {
box {<-1.5, -1, -1>, <0.5, 1, 1>}
cylinder {<0.5, 0, -1>, <0.5, 0, 1>, 1}
};
Po zadeklarowaniu własnego obiektu możemy z niego skorzystać w
swoim skrypcie wielokrotnie. Aby skorzystać z własnego obiektu:
1
object {nazwa}
Po zadeklarowaniu własnego obiektu możemy z niego skorzystać w
swoim skrypcie wielokrotnie. Aby skorzystać z własnego obiektu:
1
object {nazwa}
Własne obiekty możemy również poddawać podstawowym
przekształceniom czy też używać jako obiekty do CSG (o ile
posiadają wnętrze/zewnętrze).
Przykład:
1
object {bryla translate <-0.5, 0, 0>}
Projekt z pierwszych zajęć proszę urozmaicić o techniki CSG oraz
stworzyć przynajmniej jeden własny obiekt.