Wstęp do projektowania komputerowego Laboratorium 2



Pobieranie 100 Kb.
Strona2/2
Data13.06.2018
Rozmiar100 Kb.
1   2



  1. Obiekty złożone – CSG


Poza obiektami podstawowymi możliwe jest także deklarowanie obiektów złożonych to jest stanowiących mnogościową kombinację obiektów podstawowych lub złożonych. Wykorzystywana jest tu tak zwana konstruktywna geometria brył (CSG – Constructive Solid Geometry).
    1. Suma


Polecenie union umożliwia zgrupowanie dowolnej liczby obiektów w jeden obiekt. Na takim obiekcie można wykonywać wszystkie transformacje geometryczne, jak również nakładać tekstury, pigmenty itp. Polecenie to ma następującą składnie:

union{ obiekt1

obiekt2

.....

obiektN }

gdzie obiekt i może być zarówno obiektem POV-Raya jak i wcześniej zadeklarowanym obiektem użytkownika. Liczbę obiektów ogranicza tylko dostępna pamięć komputera.


    1. Różnica


Polecenie difference umożliwia wygenerowanie obiektu będącego róznicą (w sensie mnogościowym) dowolnej liczby obiektów. Na tak powstałym obiekcie można wykonywać wszystkie transformacje geometryczne, jak również nakładać tekstury, pigmenty itp. Polecenie to ma następującą składnie:

difference{ obiekt1

obiekt2

.....

obiektN }

gdzie obiekt i może być zarówno obiektem POV-Raya jak i wcześniej zadeklarowanym obiektem użytkownika. Od obiektu1 odejmowany jest obiekt2, od tak powstałego obiektu obiekt3 itd. Liczbę obiektów ogranicza tylko dostępna pamięć komputera.



UWAGA 1: Zdecydowanie zalecane jest wykonywanie operacji różnicy na dwóch obiektach (mimo dopuszczalności jej wykonywania dla dowolnej liczby są z tym problemy). Jeśli konieczne jest otrzymanie obiektu będącego różnicą większej liczby obiektów zalecane jest zagnieżdżenie np.:

difference{ obiekt 1

difference {obiekt 2

obiekt 3}

}

UWAGA 2: Jeżeli od obiektu w kolorze niebieskim odejmiemy obiekt w kolorze czerwonym to wówczas obiekt wynikowy będzie niebieski w tych punktach gdzie pozostał obiekt1 oraz niebieski na wszystkich powierzchniach, które nie były wcześniej widoczne, a powstały w wyniku odejmowania. Dlatego tez zalecane jest albo odejmowanie obiektów o takim samym zabarwieniu albo (zdecydowanie lepiej) nadawanie zabarwienia obiektowi wynikowemu, np.:



difference{ sphere {}

box{}

pigment {}

}

    1. Przecięcie


Polecenie intersection umożliwia wygenerowanie obiektu będącego częścią wspólną dowolnej liczby obiektów. Na takim obiekcie można wykonywać wszystkie transformacje geometryczne, jak również nakładać tekstury, pigmenty itp. Polecenie to ma następującą składnie:

intersection{ obiekt1

obiekt2

.....

obiektN }

gdzie obiekt i może być zarówno obiektem POV-Raya jak i wcześniej zadeklarowanym obiektem użytkownika. Liczbę obiektów ogranicza tylko dostępna pamięć komputera.



UWAGA: Jeżeli jeden obiekt będzie rozłączny to otrzymamy obiekt pusty!!! (czyli nic)

    1. Inne


Polecenie merge działa identycznie z poleceniem union. Różnica polega na tym, że dla union obliczane są także wszystkie powierzchnie niewidoczne (fragmenty znajdujące się wewnątrz sumy) co na ogół jest powolniejsze, jednak w przypadku problemów, szczególnie z wyświetlaniem zabarwienia w punktach przecięcia należy stosować union. W innych wypadkach zalecane jest użycie merge.
  1. Pętla while

W POV-Rayu możliwe jest deklarowanie obiektów złożonych powstających dynamicznie w pętli programowej. Struktura pętli ma następującą postać:



#while (warunek) polecenia #end

Jako polecenia mogą wystąpić dowolne instrukcje POV-Raya.

Przykład 1:

#declare licznik=0;

#while (licznik < 5)

object{MyObject translate x*3* licznik }

#declare licznik = licznik +1;

#end

W przykładzie tym powstaje pięć obiektów MyObject (zadeklarowany wcześniej), z których każdy przesuniety jest o trzy jednostki wzdłuż osi x.



    1. Pętla jako obiekt


Możliwe jest wykorzystywanie obiektów powstałych w wyniku wykonania pętli jako jednego obiektu złożonego. Deklaracja takiego obiektu ma postać :

#declare nowy_obiekt = union{

#while .... #end }

Obiekt taki jest traktowany tak samo jak każdy inny obiekt, z uwagi na wykorzystanie pętli należy jednak liczyć się z tym, że będzie one nieco wolniej generowany.



  1. Tekstury predefiniowane


W pliku textures.inc znajdują się tekstury predefiniowane, których można używać we własnych plikach. Struktura pliku textures.inc ma następującą postać:

#declare Nazwatekstury = texture { różne parametry}

Jeżeli po znaku = nie występuje słowo textures, ale jakieś inne to nie jest to deklaracja tekstury (będzie o tym w dlaszych częściach). Użycie tak zadeklarowanej tekstury wymaga podanie jej nazwy w poleceniu texture konkretenego obiektu. Dla przykładowej kuli ma to postać:



sphere {<0,0,0>,1 texture{Nazwatekstury}}

Tekstury są obiektami POV-Raya co oznacza, między innymi, że można na nich wykonywać transformacje np.:



sphere {<0,0,0>,1 texture{Nazwatekstury scale 0.5}}

przeskalowanie tekstury o połowę (co oznacza zagęszczenie jej zawartości ).



UWAGA: Należy rozróżnić poniższe polecenia:

sphere {<0,0,0>,1 texture{Nazwatekstury} scale 0.5}

sphere {<0,0,0>,1 texture{Nazwatekstury scale 0.5}}

W pierwszym z nich skalowana jest kula, a w drugim tekstura nałożona na kulę.


  1. Pigmenty listowe


Poza omówionym wcześniej pigmentem zawierającym jeden kolor możliwe jest definiowanie pigmentów wielokolorowych. Jednym z typów takich pigmentów są pigmenty listowe. Przy ich użyciu możliwe jest otrzymanie szachownicy (checker), sześciokątów foremnych (plaster miodu – hexagon) lub cegły. Polecenia te mają następującą składnie:

pigment {checker color kolor1 color kolor2}

pigment {hexagon color kolor1 color kolor2 color kolor3}

pigment {brick color kolor1 color kolor2}

W wypadku cegły kolor1 oznacza kolor spoiwa, a kolor2 – kolor cegły. Użycie tego polecenia bez podanie kolorów powoduje wygenerowanie cegły w kolorach domyślnych ( w miarę zbliżonych do naturalnych).



Pigmenty, podobnie jak tekstury, są obiektami POV-Raya i w związku z tym także mogą być przekształcane. Poniższe polecenia wygeneruje pigment w postaci szachownicy z polami o połowę mniejszymi od standardowych:

pigment{checker color Red color Blue scale 0.5}
  1. Brak cieni


Możliwe jest generowanie obrazów nie zawierających cieni. Służą do tego dwa polecenia mające nieco inne działanie.
    1. no_shadow


Polecenie to dodane do dowolnego obiektu powoduje, że ten obiekt nie rzuca cieni.
    1. shadowless


Parametr ten dodany do definicji dowolnego światła powoduje, że światło to padając na obiekty nie wywołuje rzucanie cieni. Jest to niewątpliwie fałszowanie rzeczywistości, ale przydaje się do doświetlani sceny w taki sposób, aby nie było widać dodatkowego światła.
  1. Ćwiczenia


C2.1: Wygenerować kręcone schody (podobne do rysunku poniżej).





C2.2: Wygenerować układ torusów (podobne do rysunku poniżej).


C2.3 Do obrazka z poprzednich ćwiczeń (pokój) dodać podłogę i ściany wykonane z dowolnej tekstury lub pigmentu predefiniowanego (np. marmur, drewno, kamień). Poeksperymentować ze skalowaniem tekstur, aby otrzymać możliwie najciekawszą powierzchnię.

Pobieranie 100 Kb.

Share with your friends:
1   2




©operacji.org 2020
wyślij wiadomość

    Strona główna
warunków zamówienia
istotnych warunków
przedmiotu zamówienia
wyboru operacji
Specyfikacja istotnych
produktu leczniczego
oceny operacji
rozwoju lokalnego
strategii rozwoju
kierowanego przez
specyfikacja istotnych
Nazwa przedmiotu
Karta oceny
ramach działania
przez społeczno
obszary wiejskie
dofinansowanie projektu
lokalnego kierowanego
Europa inwestująca
Regulamin organizacyjny
przetargu nieograniczonego
kryteria wyboru
Kryteria wyboru
Lokalne kryteria
Zapytanie ofertowe
Informacja prasowa
nazwa produktu
Program nauczania
Instrukcja obsługi
zamówienia publicznego
Komunikat prasowy
programu operacyjnego
udzielenie zamówienia
realizacji operacji
opieki zdrowotnej
przyznanie pomocy
ramach strategii
Karta kwalifikacyjna
oceny zgodno
Specyfikacja techniczna
Instrukcja wypełniania
Wymagania edukacyjne
Regulamin konkursu
lokalnych kryteriów
strategia rozwoju
sprawozdania finansowego
ramach programu
ramach poddziałania
kryteriów wyboru
operacji przez
trybie przetargu