Grafika inzynierska 2 id 194765 Nieznany

background image

Grafika inżynierska 2

Wojciech Palacz

WFAIS UJ

semestr letni 2007/2008 r.

background image

Sterowanie kamerą w POV-Ray’u

Za orientację przestrzenną kamery odpowiadają trzy parametry:

I

location – zajmowana pozycja;

I

sky – kierunek „w górę”, domyślnie <0, 1, 0>;

I

look_at – punkt, na który zostanie skierowana (najpierw
obrót w lewo/prawo, potem przechylenie w górę/dół).

Kolejność podawania parametrów jest istotna!

background image

Sterowanie kamerą w POV-Ray’u

background image

Sterowanie kamerą w POV-Ray’u

Wektory right oraz up określają rozmiar wirtualnej kliszy;
domyślne wartości to <1.33, 0, 0>, <0, 1, 0>.
Ilość pikseli w poziomie i pionie reguluje się przełącznikami (np.

povray -w800 -h600 scena.pov).

Wektor direction musi być prostopadły do kliszy; jego długość
pozwala wyliczyć angle (i na odwrót).
Domyślnie ok. 67 stopni; zmniejszając angle dokonujemy zbliżenia
na wybrany punkt sceny.

background image

Aspect ratio

Stosunek szerokości ekranu do jego wysokości (obliczany na
podstawie wymiarów w centymetrach, nie pikselach).

Stare telewizory i monitory komputerowe mają ratio 4:3, czyli
1,33:1. Dla standardowych rozdzielczości 640x480, 800x600
i 1024x768 (też 4:3) oznaczało to kwadratowe piksele. Nowsze
panele LCD o natywnej rozdzielczości 1280x1024 i kwadratowych
pikselach będą mieć z konieczności ratio 5:4 (1,25:1). Urządzenia
o prostokątnych pikselach też się trafiają.

Trzeba uważać aby kwadrat pozostał kwadratem podczas
wyświetlania na innym urządzeniu niż oryginalne.

background image

Typy kamer

Zmieniając algorytm odwzorowywania punktów 3D na
dwuwymiarową płaszczyznę otrzymujemy różne typy kamer.
Odpowiednie słowa kluczowe to:

I

perspective – typ domyślny, kąt widzenia nie może
przekroczyć 180 stopni;

I

orthographic – rzut równoległy (promienie zbiegają się
w punkcie w nieskończoności);

I

panoramic – dla zdjęć szerokokątnych, stara się niwelować
zaburzenia perspektywy na krawędziach;

background image

Typy kamer

I

fisheye – rzut sferyczny na powierzchnię koła, angle
zazwyczaj jest równe 180;

I

ultra_wide_angle – podobne do fisheye, ale rzutuje na
prostokąt;

I

spherical – też rzut sferyczny, można niezależnie ustawić
kąt widzenia w poziomie i pionie;

I

cylinder podtyp – rzut cylindryczny na powierznię walca;

I

omnimax – do przygotowywania filmów wyświetlanych
w kinach IMAX.

background image

Krzywe dwuwymiarowe

Zadanie: zapisać krzywą w komputerze. Ale jak?

1.

Aproksymując odcinkami. Wady: nigdy nie będzie gładkie,
potrzeba dużo pamięci na współrzędne punktów.

2.

Jako funkcję matematyczną, y = f (x ) dla pewnego zakresu
wartości x . Wada zasadnicza: nie wszystkie krzywe są
funkcjami.

3.

Jako dwie funcje, x = f

x

(t) oraz y = f

y

(t) dla t ∈ [0, 1].

Zamiast dowolnych funkcji wymiernych przyjmuje się jakąś
określoną rodzinę, np. wielomiany kwadratowe albo sześcienne.

background image

Krzywe parametryczne stopnia trzeciego

Niech x = a

x

t

3

+ b

x

t

2

+ c

x

t + d

x

oraz y = a

y

t

3

+ b

y

t

2

+ c

y

t + d

y

.

Współczynniki wielomianów można zapisać w macierzy:

C =



a

x

a

y

b

x

b

y

c

x

c

y

d

x

d

y



Wzór na krzywą Q można wtedy wyrazić jako Q(t) = TC , gdzie
T =



t

3

t

2

t

1

t

0

.

background image

Krzywe w praktyce

Żaden grafik nie będzie chciał pracować bezpośrednio z macierzą
współczynników. Potrzebny jest inny sposób zadawania kształtu
krzywej, najlepiej przez przesuwanie myszką punktów po ekranie.

Dwa powszechnie znane sposoby:

I

krzywe Hermite’a;

I

krzywe Beziera.

background image

Krzywe Hermite’a

Krzywą wyznaczają dwa punkty końcowe i dwa wektory styczne.

background image

Krzywe Hermite’a

background image

Krzywe Beziera

Wyznaczane czterema punktami – dwa na końcach krzywej i dwa
wyznaczające kierunki stycznych.
Każda krzywa zawiera się wewnątrz czworokąta opisanego na jej
punktach sterujących.

background image

Ciągłość krzywych sklejanych

Skomplikowane krzywe dzieli się na małe fragmenty i każdy z nich
przybliża przy pomocy krzywej trzeciego stopnia. Dostajemy zbiór
krzywych Q

1

, Q

2

, Q

3

, itd. Segmenty te oczywiście muszą się

stykać, ale czasem wymagamy czegoś więcej w punktach łączeń:

I

ciągłość C

0

– po prostu się łączą;

I

ciągłość C

1

– zgadza się kierunek stycznych (czyli pierwsza

pochodna);

I

ciągłość C

2

– zgadza się druga pochodna.

Ręczne składanie krzywych Beziera czy Hermite’a nie gwarantuje
ciągłości pochodnych na łączeniach.

background image

Krzywe B-sklejane

Krzywe te, znane też jako B-splajny (B-spline), mają:

I

n + 1 punktów kontrolnych p

0

, p

1

, . . . p

n

;

I

cała krzywa zaczyna się w p

0

i kończy w p

n

;

I

n − 2 krzywych Beziera Q

3

, Q

4

, . . . Q

n

;

I

parametry dla krzywych Beziera są tak wyliczane, aby mieć
ciągłość C

0

, C

1

oraz C

2

;

I

na krzywą Q

i

wpływają punkty p

i −3

, p

i −2

, p

i −1

, p

i

;

I

co za tym idzie, przesunięcie jednego z punktów kontrolnych
ma efekty tylko lokalne.

background image

Krzywe B-sklejane

background image

B-splines unplugged

background image

B-splines unplugged

background image

Bryły obrotowe

Rysujemy krzywą na płaszczyźnie XY, obracamy wokół osi Y,
i dostajemy trójwymiarową bryłę.
W POV-Ray’u mamy do dyspozycji bryły sor oraz lathe (ta
pierwsza szybciej się liczy, ta druga potrafi więcej wyrazić).

lathe {

typ krzywej
ilość punktów
dwuwymiarowe współrzędne punktów
tekstura, przekształcenia, itp.

}

background image

Bryły obrotowe

Typy krzywych:

I

linear_spline – aproksymacja odcinkami;

I

quadratic_spline – aproksymacja krzywymi drugiego
rzędu, rysowanie zacznie się od drugiego punktu;

I

cubic_spline – aproksymacja segmentami trzeciego rzędu,
sklejana krzywa zaczyna się od drugiego punktu i kończy w
przedostatnim;

I

bezier_spline – tradycyjnie definiowane krzywe Beziera, po
cztery punkty na każdy segment.

background image

Bryły „wyciskane”

Rysujemy zamknięte krzywe na płaszczyźnie XZ, a następnie
wyciągamy w pionie, od y

1

do y

2

.

Ściany mogą być pionowe (linear_sweep), lub mogą zbiegać się
do punktu <0, 0, 0> (conic_sweep).

prism {

typ krzywych
y1, y2
ilość punktów
dwuwymiarowe współrzędne punktów

}

Krzywe muszą być zamknięte (tzn. współrzędne ostatniego
rysowanego punktu równe pierwszemu). Po zamknięciu jednej
krzywej można zacząć specyfikować następną.

background image

Krzywe w trzech wymiarach

Przykładem wykorzystania krzywych 3D jest obiekt

sphere_sweep. Przesuwa on sferę po zadanej krzywej, tworząc
w ten sposób pręty.
Dostępne typy interpolacji pomiędzy zadanymi punktami:

linear_spline, cubic_spline, b_spline.


Wyszukiwarka

Podobne podstrony:
Grafika inzynierska id 194762 Nieznany
mechanika inzynieria id 291479 Nieznany
Grafika Rastrowa id 194834 Nieznany
Grafika komputerowa 3 id 194791 Nieznany
inzynieria id 219563 Nieznany
grafika herbisz id 194753 Nieznany
inzynierskie 8 id 212520 Nieznany
grafika zolwia id 194858 Nieznany
grafika php id 194831 Nieznany
Grafika komputerowa id 194784 Nieznany
Projektant grafiki 216604 id 40 Nieznany
Grafika wyklady id 194801 Nieznany
Grafika inzynierska Informatyka Nieznany
Inzynieria wzory1 id 219676 Nieznany
Elementy grafiki inzynierskiej Nieznany
LiTTK seminarium grafik id 2714 Nieznany
Elementy grafiki inzynierskiej Nieznany (3)
Podstawy Grafiki Inzynierskiej Nieznany

więcej podobnych podstron