POV-Ray 3 - Uniwersytet Śląski

Transkrypt

POV-Ray 3 - Uniwersytet Śląski
Podstawy POV-Ray’a
Diana Domańska
Uniwersytet Śląski
Tekst
1
2
3
4
5
6
7
text {
ttf "czcionka.ttf"
"tekst"
t,
<x, y, z>
[(opt.)]
}
//
//
//
//
nazwa uzytej czcionki
tekst do wyswietlenia
"grubosc" w kierunku Z
dodatkowy odstep miedzy znakami
Czcionki obsługiwane przez POV-Ray: TrueType Font (ttf),
TrueType Collecion (ttc).
Tekst zostanie umieszczony w początku układu współrzędnych i
będzie się rozciągał w kierunku dodatniej osi X .
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include "colors.inc"
camera {
location <0, 1, -5>
look_at <0, 0, 0>
}
light_source {<5, 5, -10> White}
text {
ttf "arial.ttf"
"Hello"
2,
<0, 0, 0>
pigment{Red}
translate <-1, 1, 0>
}
text {
ttf "arial.ttf"
"World"
1.5,
<0, 0, 0>
pigment{Green}
translate <-1.3, -1.5, 0>
}
Bryły obrotowe
Surface of Revolution (SoR)
Ï
SoR powstaje poprzez obrót wykresu funkcji wokół osi Y .
Bryły obrotowe
Surface of Revolution (SoR)
Ï
SoR powstaje poprzez obrót wykresu funkcji wokół osi Y .
Ï
Wykres funkcji (krzywą) definiujemy poprzez podanie punktów
na płaszczyźnie XY , przez które krzywa będzie przechodzić i
które zostaną połączone w sposób gładki.
Bryły obrotowe
Surface of Revolution (SoR)
Ï
SoR powstaje poprzez obrót wykresu funkcji wokół osi Y .
Ï
Wykres funkcji (krzywą) definiujemy poprzez podanie punktów
na płaszczyźnie XY , przez które krzywa będzie przechodzić i
które zostaną połączone w sposób gładki.
Ï
Pierwszy i ostatni podany punkt nie będą należeć do krzywej,
służą one jedynie do wyznaczenia kształtu krzywej.
Bryły obrotowe
Surface of Revolution (SoR)
Ï
SoR powstaje poprzez obrót wykresu funkcji wokół osi Y .
Ï
Wykres funkcji (krzywą) definiujemy poprzez podanie punktów
na płaszczyźnie XY , przez które krzywa będzie przechodzić i
które zostaną połączone w sposób gładki.
Ï
Pierwszy i ostatni podany punkt nie będą należeć do krzywej,
służą one jedynie do wyznaczenia kształtu krzywej.
Ï
Każdemu y musi odpowiadać jeden punkt na krzywej, więc
krzywa nie może być zamknięta czy też „zawracać”.
Bryły obrotowe
Surface of Revolution (SoR)
Ï
SoR powstaje poprzez obrót wykresu funkcji wokół osi Y .
Ï
Wykres funkcji (krzywą) definiujemy poprzez podanie punktów
na płaszczyźnie XY , przez które krzywa będzie przechodzić i
które zostaną połączone w sposób gładki.
Ï
Pierwszy i ostatni podany punkt nie będą należeć do krzywej,
służą one jedynie do wyznaczenia kształtu krzywej.
Ï
Każdemu y musi odpowiadać jeden punkt na krzywej, więc
krzywa nie może być zamknięta czy też „zawracać”.
Ï
Krzywa nie może przecinać osi Y , bo może to powodować
późniejsze błędy.
Bryły obrotowe
Surface of Revolution (SoR)
Ï
SoR powstaje poprzez obrót wykresu funkcji wokół osi Y .
Ï
Wykres funkcji (krzywą) definiujemy poprzez podanie punktów
na płaszczyźnie XY , przez które krzywa będzie przechodzić i
które zostaną połączone w sposób gładki.
Ï
Pierwszy i ostatni podany punkt nie będą należeć do krzywej,
służą one jedynie do wyznaczenia kształtu krzywej.
Ï
Każdemu y musi odpowiadać jeden punkt na krzywej, więc
krzywa nie może być zamknięta czy też „zawracać”.
Ï
Krzywa nie może przecinać osi Y , bo może to powodować
późniejsze błędy.
Ï
SoR używane jest do tworzenia butelek, wazonów itp.
1
2
3
4
5
6
7
8
9
sor {
n,
// liczba punktow definiujacych krzywa (min. 4)
<x1, y1>, // wspolrzedne punktow definiujacych krzywa
<x2, y2>,
...
<xn, yn>
[open]
[(opt.)]
}
Lathe
Ï
Lathe powstaje poprzez obrót dwuwymiarowej krzywej wokół
osi Y .
Lathe
Ï
Lathe powstaje poprzez obrót dwuwymiarowej krzywej wokół
osi Y .
Ï
Krzywą definiujemy poprzez podanie punktów, które są łączone
krzywą liniową, kwadratową, kubiczną lub krzywą Béziera.
Lathe
Ï
Lathe powstaje poprzez obrót dwuwymiarowej krzywej wokół
osi Y .
Ï
Krzywą definiujemy poprzez podanie punktów, które są łączone
krzywą liniową, kwadratową, kubiczną lub krzywą Béziera.
Ï
Minimalna liczba punktów zależy od metody łączenia: liniowa
– 2 punkty, kwadratowa – 3, kubiczna – 4, Bézier – 4 (liczba
musi być wielokrotnością 4).
Lathe
Ï
Lathe powstaje poprzez obrót dwuwymiarowej krzywej wokół
osi Y .
Ï
Krzywą definiujemy poprzez podanie punktów, które są łączone
krzywą liniową, kwadratową, kubiczną lub krzywą Béziera.
Ï
Minimalna liczba punktów zależy od metody łączenia: liniowa
– 2 punkty, kwadratowa – 3, kubiczna – 4, Bézier – 4 (liczba
musi być wielokrotnością 4).
Ï
W zależności od metody łączenia przez niektóre punkty krzywa
nie będzie przechodzić: kwadratowa – pierwszy, kubiczna –
pierwszy i ostatni.
Lathe
Ï
Lathe powstaje poprzez obrót dwuwymiarowej krzywej wokół
osi Y .
Ï
Krzywą definiujemy poprzez podanie punktów, które są łączone
krzywą liniową, kwadratową, kubiczną lub krzywą Béziera.
Ï
Minimalna liczba punktów zależy od metody łączenia: liniowa
– 2 punkty, kwadratowa – 3, kubiczna – 4, Bézier – 4 (liczba
musi być wielokrotnością 4).
Ï
W zależności od metody łączenia przez niektóre punkty krzywa
nie będzie przechodzić: kwadratowa – pierwszy, kubiczna –
pierwszy i ostatni.
Ï
W odróżnieniu od SoR krzywa może być zamknięta.
1
2
lathe {
typ
//
//
n,
//
<x1, y1>, //
<x2, y2>,
...
<xn, yn>
[(opt.)]
3
4
5
6
7
8
9
10
}
linear_spline, quadratic_spline,
cubic_spline, bezier_spline
liczba punktow definiujacych krzywa
wspolrzedne punktow
1
2
3
4
5
sor {
6,
<0, 0>, <1, 1>, <3, 2>, <2, 3>, <2, 4>, <0,4>
pigment{color <1, 0, 0>}
}
1
2
3
4
5
6
lathe {
linear_spline
6,
<0, 0>, <1, 1>, <3, 2>, <2, 3>, <2, 4>, <0,4>
pigment{color <1, 0, 0>}
}
1
2
3
4
5
6
lathe {
cubic_spline
6,
<0, 0>, <1, 1>, <3, 2>, <2, 3>, <2, 4>, <0,4>
pigment{color <1, 0, 0>}
}
Bryły ciągnięte
Ï
Są to bryły zdefiniowane przez jedną lub więcej dwuwymiarowe
zamknięte krzywe leżące na płaszczyźnie XZ i ciągnięte
wzdłuż osi Y .
Bryły ciągnięte
Ï
Ï
Są to bryły zdefiniowane przez jedną lub więcej dwuwymiarowe
zamknięte krzywe leżące na płaszczyźnie XZ i ciągnięte
wzdłuż osi Y .
Krzywe zdefiniowane są podobnie jak w przypadku lathe przez
punkty i sposób ich łączenia (liniowy, kwadratowy, kubiczny,
Béziera).
Bryły ciągnięte
Ï
Ï
Ï
Są to bryły zdefiniowane przez jedną lub więcej dwuwymiarowe
zamknięte krzywe leżące na płaszczyźnie XZ i ciągnięte
wzdłuż osi Y .
Krzywe zdefiniowane są podobnie jak w przypadku lathe przez
punkty i sposób ich łączenia (liniowy, kwadratowy, kubiczny,
Béziera).
Należy pamiętać o zamknięciu krzywej: liniowy – pierwszy i
ostatni punkt muszą być równe, kwadratowy – ostatni i drugi
punkt muszą być równe, kubiczny – drugi i przedostatni punkt
muszą być równe.
Bryły ciągnięte
Ï
Ï
Ï
Ï
Są to bryły zdefiniowane przez jedną lub więcej dwuwymiarowe
zamknięte krzywe leżące na płaszczyźnie XZ i ciągnięte
wzdłuż osi Y .
Krzywe zdefiniowane są podobnie jak w przypadku lathe przez
punkty i sposób ich łączenia (liniowy, kwadratowy, kubiczny,
Béziera).
Należy pamiętać o zamknięciu krzywej: liniowy – pierwszy i
ostatni punkt muszą być równe, kwadratowy – ostatni i drugi
punkt muszą być równe, kubiczny – drugi i przedostatni punkt
muszą być równe.
W definicji obiektu po zamknięciu krzywej kolejne punkty
definiują następną krzywą.
Bryły ciągnięte
Ï
Ï
Ï
Ï
Ï
Są to bryły zdefiniowane przez jedną lub więcej dwuwymiarowe
zamknięte krzywe leżące na płaszczyźnie XZ i ciągnięte
wzdłuż osi Y .
Krzywe zdefiniowane są podobnie jak w przypadku lathe przez
punkty i sposób ich łączenia (liniowy, kwadratowy, kubiczny,
Béziera).
Należy pamiętać o zamknięciu krzywej: liniowy – pierwszy i
ostatni punkt muszą być równe, kwadratowy – ostatni i drugi
punkt muszą być równe, kubiczny – drugi i przedostatni punkt
muszą być równe.
W definicji obiektu po zamknięciu krzywej kolejne punkty
definiują następną krzywą.
Istnieją dwa sposoby przeciągania krzywej: liniowy – krzywa
jest przeciągana bez zmian, stożkowy – krzywa wraz z
przeciąganiem jest skalowana w „dół”.
Ï
Jeśli parzysta liczba kształtów zdefiniowanych przez krzywe
przecina się, to obszar przecięcia się jest wycinany z obu
kształtów.
Ï
1
2
Jeśli parzysta liczba kształtów zdefiniowanych przez krzywe
przecina się, to obszar przecięcia się jest wycinany z obu
kształtów.
prism {
typ_laczenia
//
//
typ_przeciagania //
h1,
//
h2,
//
n,
//
<x1, z1>,
//
<x2, z2>,
...
<xn, zn>
[open]
[(opt.)]
3
4
5
6
7
8
9
10
11
12
13
14
}
linear_spline, quadratic_spline,
cubic_spline, bezier_spline
linear_sweep, conic_sweep
wysokosc od ktorej zaczynamy
wysokosc na ktorej konczymy
liczba punktow
wspolrzedne punktow
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include "colors.inc"
background{Gray}
camera {
location <1, 5, -10>
look_at <0, 0, 0>
}
light_source {<20, 20, -20> color
White}
prism {
linear_sweep
cubic_spline
0,
1,
18,
<3,-5>, <3,5>, <-5,0>, <3, -5>,
<3,5>, <-5,0>,
<2,-4>, <2,4>, <-4,0>, <2,-4>,
<2,4>, <-4,0>,
<1,-3>, <1,3>, <-3,0>, <1, -3>,
<1,3>, <-3,0>
pigment{Green}
}
Odblaski, predefiniowane tekstury
W celu dodania odblasku do obiektu po
1
pigment
dodajemy polecenie
finish{specular s roughness r}
gdzie s jest to liczba z [0, 1] definiująca nasycenie odblasku, r jest
to wielkość miejsca odblasku i nie może przyjmować wartości 0
(domyślnie 0.05).
Odblaski, predefiniowane tekstury
W celu dodania odblasku do obiektu po
1
pigment
dodajemy polecenie
finish{specular s roughness r}
gdzie s jest to liczba z [0, 1] definiująca nasycenie odblasku, r jest
to wielkość miejsca odblasku i nie może przyjmować wartości 0
(domyślnie 0.05).
Predefiniowane tekstury znajdują się w plikach:
textures.inc, golds.inc, metals.inc, stones.inc, woods.inc,
zanim będziemy mogli korzystać z tych tekstur musimy plik
dołączyć instrukcją #include. Następnie w definicji obiektu,
któremu chcemy ustawić teksturę zamieniamy pigment na
1
texture{nazwa}
więc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include "colors.inc"
#include "textures.inc"
camera {
location <1, 5, -10>
look_at <0, 0, 0>
}
light_source {<0, 10, -10>
color White}
sphere {
<-3, 0, 0>,
2.8
texture{pigment{rgb <1, 0,
0>} finish{specular 0.8
roughness 0.009}}
}
sphere {
<3, 0, 0>,
2.8
texture{Sandalwood}
}