Grafika komputerowa 2


Ćwiczenie 2
Podstawy techniki modelowania scen 3-D
Cel ćwiczenia:
Poznanie sposobów wykonywania podstawowych czynności niezbędnych w procesie modelowania
scen 3-D takich jak:
" transformacji obiektów,
" inicjalizacji zmiennych i realizacji pętli programowej,
" konstruowania modeli złożonych obiektów geometrycznych przy pomocy konstrukcyjnej
geometrii bryłowej (CSG),
" definiowania własnych obiektów geometrycznych.
Krok 1. Transformacje obiektów geometrycznych
1. Napisać prosty program rysujący stożek ( cone ) przy następujących założeniach:
" stożek umieszczony jest w środku układu współrzędnych (czyli tak, że środek podstawy
znajduje się w punkcie
(0, 0, 0) a wierzchołek w punkcie (0, d, 0)),
" stożek obserwowany jest z kamery znajdującej się na ujemnej części półosi osi z ( location
<0, a ,- b>,
look_at <0,0,0> ),
Uzyskany obraz powinien wyglądać mniej więcej tak:
stożek, którego środek podstawy znajduje się w punkcie (0, 0, 0)
2. Zapisać scenę pod nazwą program1.
3. Otworzyć nowy plik opisu sceny, zapisać go pod nazwą program2, zdefiniować drugi
stożek (innego koloru) i zaobserwować działanie odpowiednio użytych (patrz plik pomocy)
komend
" translate
" sscale ,
" rotate
Zbadać wpływ kolejności wykonywania transformacji na wynik końcowy. Rysunek pokazuje efekt
uzyskany po skopiowaniu opisu stożka zielonego, zmianie koloru na czerwony i zastosowaniu w
jego opisie komendy translate <0, 0, c>. Po zakończeniu zapisać plik z definicją sceny.
stożek czerwony powstał przez przesunięcie stożka zielonego wzdłuż osi z
Krok 2. Podstawowe konstrukcje programowe języka opisu sceny, deklarowanie
zmiennych, pętla
1. Deklaracja zmiennej w języku opisu sceny stosowanym w programie POV-Ray wygląda
następująco:
#declare Count = 0; /* zdefiniowana została zmienna Count i przypisano jej wartość 0*/
W linii deklaracji zmiennej można stosować operacje arytmetyczne +, -, *, / np :
#declare Number = 64; /* zdefiniowana została zmienna Count i przypisano jej wartość 0 */
#declare Ang = 360/Number; /* zdefiniowana została zmienna Ang i przypisano jej wartość
wyliczoną na podstawie wartości zmiennej Number */
2. Struktura pętli programowej (liczby 1 i 64 są przykładowe) wygląda natomiast tak:
#declare Count = 1; /* Deklaracja i ustawienie wartości początkowej licznika pętli*/
#declare Number = 64; /* Deklaracja i ustawienie wartości liczby przebiegów pętli*/
#while (Count < Number+1) /* Sprawdzenie warunku końca pętli*/
(komendy do wykonania wewnątrz pętli )
#declare Count= Count+1; /* Zwiększenie licznika petli*/
#end /* Koniec pętli*/
3. Wykorzystując program z poprzedniego punktu oraz używając komendy translacji i pętli
opisać scenę, na której prócz zielonego stożka znajdzie się jeszcze dziesięć czerwonych
stożków oddalonych równo od siebie. Przykład obrazu takiej sceny pokazano na rysunku.
Program zapisać pod nazwą program3.
10 czerwonych stożków jako efekt wykonania pętli ( w stosunku do poprzednich obrazów punkt
usytuowania obserwatora został nieznacznie zmieniony)
4. Używając jako obiektu elementarnego sfery, trzech poznanych wcześniej transformacji i
konstrukcji pętli napisać program generujący obraz obiektu podobny do obiektu na rysunku.
Zapisać program pod nazwą program4.
Obiekt, ktry powstał z jednej sfery po jej przesunięciu, przeskalowaniu i 64 krotnym obróceniu
wokół osi y
Krok 3. Podstawy konstrukcyjnej geometrii bryłowej (Constructive Solid Geometry).
1. Utworzyć plik z opisem sceny i nazwać go program5
2. Skopiować zawartość pliku o nazwie program1 (pojedynczy zielony stożek).
3. Wprowadzić do opisu sceny drugi stożek tak aby, otrzymać obraz podobny do pokazanego
na rysunku.
Dwa stożki
4. Prześledzić (posługując się przy edycji opisów sceny plikiem pomocy) efekty jakie można
uzyskać stosując operacje konstrukcyjnej geometrii bryłowej:
" union,
" intersection,
" difference,
" merge.
5. Określić i zilustrować różnicę pomiędzy operacjami union i merge (aby ją dostrzec należy
przynajmniej jeden z obiektów zdefiniować jako przezroczysty).
Krok 4. Definiowanie własnych obiektów
1. Utworzyć plik z opisem sceny i nazwać go program6.
2. Skopiować treść pliku o nazwie program4 (zielony pierścień).
3. Wprowadzić do opisu sceny ("obejmując" jej zakresem opis pierścienia) następującą
konstrukcję:
# declare My_object = union
{
( dowolny ciąg komend opisujących obiekt )
}
można w ten sposób zdefiniować nowy obiekt o nazwie My_object. W deklaracji opisu obiektu
użyto komendy union w ogólności może być tu użyta inna komenda (np. merge, intersection, itd. ).
4. Wygenerować obraz sceny. Jeśli nie ma błędów w treści opisu obiekt powinien zniknąć.
5. Po deklaracji obiektu My_object dodać linię wywołania obiektu przy pomocy komendy
object:
object
{
My_object translate <0, 0, 0>
}
po wygenerowaniu obrazu pierścień powinien pojawić się ponownie w tym samym miejscu gdzie
był poprzednio.
Przedstawiona powyżej konstrukcja pozwala na operowanie jedynie nazwą obiektu i stosowanie
do jego przemieszczania dowolnych transformacji.
6. Posługując się definicją pierścienia, komendą object i pętlą programową, zmodyfikować
program opisujący scenę tak, aby uzyskać obraz podobny do pokazanego na rysunku..
Scena zawiera 36 pierścieni a każdy z nich zbudowany jest z 64 sfer
Pokazane wyżej konstrukcje programowe pozwalają na dalsze zagnieżdżanie opisów
obiektów.


Wyszukiwarka

Podobne podstrony:
Grafika komputerowa na stronach internetowych
Grafika komputerowa 2
Polska Grafika Komputerowa
Grafika komputerowa i OpenGL
Praca kontrolna z Informatyki semestr I Grafika komputarowa przedstaw jeden z program, krótko go op
Grafika Komputerowa
ABC grafiki komputerowej i obrobki zdjec
Grafika komputerowa 1
Grafika komputerowa 3
15 barwy grafika komputerowa
LebiedAo Jacek Grafika Komputerowa (2)
grafika komputerowa
Grafika komputerowa warsztat umiejętności praktycznych
grafika komputerowa(1)
14!6601 grafik komputerowy DTP
Grafika komputerowa, czyli jak zrobić coś, czego nie potrafi aparat cyfrowy

więcej podobnych podstron