Grafika 3D program POV-Ray - 36 -



Podobne dokumenty
Grafika 3D program POV-Ray - 1 -

Podstawy POV-Ray a. Diana Domańska. Uniwersytet Śląski

Animowana grafika 3D. Opracowanie: J. Kęsik.

rgbf<składowa_r,składowa_g,składowa_b,filter>. Dla parametru filter przyjmij kolejno wartości: 0.60, 0.70, 0.80, 0.90, 1.00, np.:

Spora część kodu programu jest dla nas nieprzydatna. Dokonaj zmian tak, aby kod miał postać:

Zajęcia z grafiki komputerowej Pov Ray część 2

Przy dużej wielkości głębokości uzyskamy wrażenie nieskończoności: Dla głębokości zerowej uzyskamy tekst płaski:

Grafika 3D program POV-Ray

Ustawienia materiałów i tekstur w programie KD Max. MTPARTNER S.C.

Mamy co prawda trawiastą powierzchnię ziemi i niebo, ale scena wygląda mało realistycznie. Zmieńmy nieco właściwości tekstury płaszczyzny gruntu:

Oświetlenie. Modelowanie oświetlenia sceny 3D. Algorytmy cieniowania.

Oświetlenie obiektów 3D

Podstawy POV-Ray a. Diana Domańska. Uniwersytet Śląski

GRK 4. dr Wojciech Palubicki

Tektura obiektów. Ogólnie sekcja opisująca teksturę wygląda następująco:

Grafika 3D program POV-Ray

Grafika Komputerowa Wykład 5. Potok Renderowania Oświetlenie. mgr inż. Michał Chwesiuk 1/38

OpenGL oświetlenie. Bogdan Kreczmer. Katedra Cybernetyki i Robotyki Wydziału Elektroniki Politechnika Wrocławska

Grafika komputerowa. Model oświetlenia. emisja światła przez źródła światła. interakcja światła z powierzchnią. absorbcja światła przez sensor

6 Przygotował: mgr inż. Maciej Lasota

Model oświetlenia. Radosław Mantiuk. Wydział Informatyki Zachodniopomorski Uniwersytet Technologiczny w Szczecinie

Graficzne modelowanie scen 3D. POV-Ray. Wykład 2

GRAKO: ŚWIATŁO I CIENIE. Modele barw. Trochę fizyki percepcji światła. OŚWIETLENIE: elementy istotne w projektowaniu

Oświetlenie w OpenGL. Oprogramowanie i wykorzystanie stacji roboczych. Wykład 8. Światło otaczajace. Światło rozproszone.

1. Oświetlenie Materiały i powierzchnie

Polecenie ŚWIATPUNKT - ŚWIATŁO PUNKTOWE

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie.

Graficzne modelowanie scen 3D. Wykład. Pov-Ray

Chocofur szkolenie średniozaawansowane

(1,10) (1,7) (5,5) (5,4) (2,1) (0,0) Grafika 3D program POV-Ray

Materiały. Dorota Smorawa

Laboratorium grafiki komputerowej i animacji. Ćwiczenie V - Biblioteka OpenGL - oświetlenie sceny

Gry komputerowe: efekty specjalne cz. 2

True Space 3.2 KURS PODSTAWOWY. program można ściągn ąć za darmo ze strony Co to właściwie jest?

IRONCAD. TriBall IRONCAD Narzędzie pozycjonujące

Ćwiczenie 4 - Podstawy materiałów i tekstur. Renderowanie obrazu i animacji

Rendering sceny z modelem węzła

Zjawisko widzenia obrazów

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

Gimp - poznaj jego możliwości!

GIMP. Ćwiczenie nr 6 efekty i filtry. Instrukcja. dla Gimnazjum 36 - Ryszard Rogacz Strona 18

RENDERING W CZASIE RZECZYWISTYM. Michał Radziszewski

WSTĘP DO GRAFIKI KOMPUTEROWEJ

6.4. Efekty specjalne

Rysunek 1: Okno timeline wykorzystywane do tworzenia animacji.

Światła i rodzaje świateł. Dorota Smorawa

Wędrówka światła. Światło nad kamerą

Rozdział VI. Tabele i ich możliwości

SPRAWDZIAN NR 1. I promienie świetlne nadal są równoległe względem siebie, a po odbiciu od powierzchni II nie są równoległe względem siebie.

Spis treści. strona 1 z 10

Julia 4D - raytracing

Grafika Komputerowa Wykład 6. Teksturowanie. mgr inż. Michał Chwesiuk 1/23

Światło. W OpenGL można rozróżnić 3 rodzaje światła

Zadanie Wstaw wykres i dokonaj jego edycji dla poniższych danych. 8a 3,54 8b 5,25 8c 4,21 8d 4,85

21. W STARYM KINIE ŚWIATŁO

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

Przewodnik po soczewkach

37. Podstawy techniki bloków

Grafika Komputerowa Wykład 4. Synteza grafiki 3D. mgr inż. Michał Chwesiuk 1/30

Zastosowania Robotów Mobilnych

Zbiór zdjęć przykładowych SB-900

Wstawianie nowej strony

4/4/2012. CATT-Acoustic v8.0

Wyznaczanie współczynnika załamania światła

Simp-Q. Porady i wskazówki

Ćwiczenie 1 Automatyczna animacja ruchu

Formatowanie komórek

Synteza i obróbka obrazu. Algorytmy oświetlenia globalnego

Część XVII C++ Funkcje. Funkcja bezargumentowa Najprostszym przypadkiem funkcji jest jej wersja bezargumentowa. Spójrzmy na przykład.

Techniki Multimedialne

Materiały dydaktyczne. Zaawansowane systemy informatyczne. Semestr VI. Wykłady

Ćwiczenie nr 8 - Modyfikacje części, tworzenie brył złożonych

Ćwiczenie 25 Działania matematyczne we Flashu

Tutorial. HTML Rozdział: Ramki

Utworzyliśmy właśnie fragment elementów, które będą imitować fotomanipulację kobietycyborga. W taki sposób prezentuje się nasz efekt:

OpenGL Światło (cieniowanie)

SPRAWDZIAN NR Na zwierciadło sferyczne padają dwa promienie światła równoległe do osi optycznej (rysunek).

Materiały dydaktyczne. Zaawansowane systemy informatyczne. Semestr VI. Laboratoria

Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu.

6.4. Efekty specjalne

Systemy operacyjne. Laboratorium 9. Perl wyrażenia regularne. Jarosław Rudy Politechnika Wrocławska 28 lutego 2017

Programowanie strukturalne i obiektowe. Funkcje

Animowana grafika 3D. Opracowanie: J. Kęsik.

Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych. Ćwiczenie 3 stos Laboratorium Metod i Języków Programowania

Bartosz Bazyluk POTOK RENDEROWANIA Etapy renderowania w grafice czasu rzeczywistego. Grafika Komputerowa, Informatyka, I Rok

Praca z Inkscape. 1. Klonowanie obiektów.

Gry komputerowe, Informatyka N1, III Rok

Plan wykładu. Akcelerator 3D Potok graficzny

OpenGL Światło (cieniowanie)

13. Równania różniczkowe - portrety fazowe

po wykonaniu instrukcji wartość zmiennej x zostanie zwiększona o 50,a

Metodyka wykonania kartogramu z podziałem na klasy wg punktów charakterystycznych wraz z opracowaniem kartogramicznej legendy.

Aleksandra Zając. Raport. Blender. Pokemon: Eevee

Projektowanie Skinów w programie Taboret2

Scena 3D. Cieniowanie (ang. Shading) Scena 3D - Materia" Obliczenie koloru powierzchni (ang. Lighting)

Transformacje. dr Radosław Matusik. radmat

GIS / Projekt obiektu elektroenergetycznego. Ćwiczenia 2 Mapa wektorowa PG/ Warstwy

Podstawy pozycjonowania CSS

Zaawansowana Grafika Komputerowa

Zmiany w programie LOKALE dotyczące sposobów naliczania opłat miesięcznych

Transkrypt:

Temat 7: Rodzaje oświetlenia. Rzucanie cieni przez obiekty. Sposób rozchodzenia się, odbijania i przyjmowania światła na obiekcie. Ważną umiejętnością przy ray-tracingu jest opanowanie oświetlenia. Tym bardziej, jeżeli zależy nam na możliwie dokładnym odwzorowaniu rzeczywistości. POV-Ray oferuje użytkownikowi całkiem pokaźny arsenał opcji sterujących światłami. Ćwiczenie 048 Wpisz kod i zrenderuj scenę: Zastosowane tu zostało standardowe punktowe źródło światła białego. Na scenie, w celu lepszej orientacji, umieściliśmy małą kulę w miejscu lokalizacji źródła światła. Światło to rozchodzi się równomiernie we wszystkich kierunkach. Granice cieni rzucanych przez obiekty na podłoże są ostre (brak przejścia od cieni do świateł poprzez gamę półcieni). Grafika 3D program POV-Ray - 36 -

W następnym ćwiczeniu prześledzimy działanie innych rodzajów świateł. Ćwiczenie 049 W kodzie sceny z poprzedniego ćwiczenia w miejsce kodu: wpisz kod: Zadeklarowane tu zostały wszystkie typy źródeł światła, które będziemy omawiać. Oznaczone one zostały symbolami od l_s1 do l_s6. Aktualnie włączone jest światło l_s1 omówione już w poprzednim ćwiczeniu. Grafika 3D program POV-Ray - 37 -

Źródła punktowego światła nie tracą swojej siły w miarę rozchodzenia się. Każde światło w świecie rzeczywistym ma pewien zasięg, poza którym już nic nie oświetla, bo jego siła opadnie do zera. W POV- Ray'u także możemy (a wręcz powinniśmy) ograniczyć zasięg światła do pewnego dystansu. Jeśli teraz jako aktualne źródło światła wpiszemy l_s2, to scena oświetlona będzie światłem: Parametry fade_distance i fade_power odpowiadają tu za zakres i siłę zaniku światła. Zrenderowana scena wygląda teraz dużo bardziej naturalnie: Wszystkie wstawiane przez nas do tej pory do sceny światła rzucały cień. Możemy temu jednak zapobiec stosując światło bezcieniowe (shadowless). Wpisz jako aktualne źródło światła l_s3 i zrenderuj scenę: W świecie rzeczywistym, co prawda, światła bezcieniowe nie istnieją, ale w ray-tracingu znajdują szerokie zastosowanie. Oświetla się wtedy daną scenę jednym, głównym, zwykłym światłem i kilkoma "bezcienistymi", aby scenę tylko nieco rozjaśnić. Grafika 3D program POV-Ray - 38 -

Zajmijmy się teraz stożkowym źródłem światła: Ten rodzaj źródła światła stosuje się niezwykle często. Znane jest ono szczególnie gwiazdom przedstawień lub koncertów. Ze względu na swoją budowę, wymaga dodania do definicji kilku specyficznych dla siebie parametrów. Pierwszy z nich: spotlight mówi POV_Ray'owi, że mamy do czynienia ze światłem skierowanym i że dostanie za chwilę listę parametrów do jego scharakteryzowania. Kolejny parametr: point_at określa punkt, na który światło jest skierowane. Następne parametry odpowiadają kolejno za kąt rozwarcia światła w stopniach głównego snopu (radius), kąt ogólnego zasięgu snopu (falloff) i miękkość spadku jasności między wyżej określonymi kątami (tightness). W przypadku tego ostatniego, podajemy wartości od 1 (bardzo miękko) do 100 (natychmiast). Jak widać, światła skierowane bardzo łatwo stosować: Zbliżone do stożkowego jest cylindryczne źródło światła: Istnieje niewielka różnica między typami spotlight i cylinder. Zastępując w deklaracji źródła światła jeden parametr drugim doprowadzimy do tego, że światło nie będzie rozchodziło się w stożku, ale w walcu, a jego szerokość nie będzie się zmieniać. Parametry radius oraz falloff nie będą już oznaczały kątów rozwarcia, ale promienie owego świetlnego walca. Rola parametru tightness nie ulegnie zmianie. Prawda, że logiczne? Grafika 3D program POV-Ray - 39 -

Mankamentem wszystkich źródeł światła w POV-Ray'u jest fakt, że wszystkie one wysyłają fotony z jednego punktu. Efektem tego jest rzucanie przez wszystkie obiekty cieni o idealnie ostrych krawędziach. W rzeczywistości taka sytuacja nie ma miejsca, gdyż wszystkie światła mają jakąś powierzchnię. Rozwiązaniem tego problemu okazuje się umieszczenie relatywnie blisko siebie kilkunastu lub kilkudziesięciu słabszych światełek, ale jest to rozwiązanie nieporęczne i straszliwie wydłużające rendering sceny. POV-Ray potrafi tworzyć automatycznie takie grupy światełek. Stworzone w ten sposób sceny renderują się dość długo, ale o niebo szybciej niż w przypadku ręcznego wpisywania owych grup. W tym celu, do deklaracji światła dołącza się słowo kluczowe area_light (światło powierzchniowe) wraz z akompaniującymi mu parametrami: Światło znajdzie się na płaszczyźnie wyznaczonej przez dwa wektory podane po area_light i jednocześnie określające rozmiar światła, a zawierać będzie ono wartość1*wartość2 światełek składowych. Im tych światełek będzie więcej, tym dokładniejszy będzie cień, ale i dłuższy będzie rendering. Najlepiej stosować tu wartości od 3*3 do 5*5. Dodatkowe, opcjonalne słowo kluczowe jitter (można dopisać na końcu definicji źródła światła) losowo przesuwa światełka w obrębie światła powierzchniowego, aby rzucony cień utracił swoją regularność. O ile sprawdza się to doskonale w statycznych scenach, o tyle nie należy tej opcji stosować podczas tworzenia animacji, gdyż wartości przesunięć każdego ze światełek w każdej klatce są inne i tworzy to w obrębie cienia serie "skaczących" pikseli. Oczywiście nic nie stoi na przeszkodzie, aby przekształcić na area_light dowolny typ światła, nie tylko punktowe. Grafika 3D program POV-Ray - 40 -

W kolejnym ćwiczeniu spróbujemy zobrazować zastosowanie światła bezcieniowego. Ćwiczenie 050 Wpisz kod i zrenderuj scenę: Oświetlona tylko z jednej strony kula jest słabo widoczna. Dodaj drugie ( bezcieniowe ) źródło światła i ponownie zrenderuj scenę. Po doświetleniu scena wygląda dużo korzystniej: Grafika 3D program POV-Ray - 41 -

W ostatnim ćwiczeniu użyliśmy światła, które nie rzuca cienia. Możliwe jest jednak, aby konkretna bryła nie rzucała cienia. Ćwiczenie 051 Wpisz kod i zrenderuj scenę: Grafika 3D program POV-Ray - 42 -

Do własności trzeciego prostopadłościanu dopisz parametr no_shadow. Ponownie zrenderuj scenę: Co prawda rzadko uda się znaleźć praktyczne zastosowanie tej funkcji, ale jako żart graficzny... Na koniec przyjrzyjmy się kompletnej definicji źródła światła (wybieramy zawsze tylko potrzebne nam parametry): light_source { <pozycja> rgb <dowolny kolor> } shadowless fade_distance wartość fade_power wartość spotlight / cylindrical // zamiennie point_at <współrzędne> radius wartość falloff wartość tightness wartość area_light <wektor1>, <wektor2>, wartość1, wartość2 jitter // opcjonalnie Grafika 3D program POV-Ray - 43 -

Użyty w opisie obiektu parametr finish opisuje sposób rozchodzenia się, odbijania i przyjmowania światła na obiekcie. Poniższe ćwiczenie pozwoli nam prześledzić działanie różnych funkcji tego parametru w zależności od ich rodzaju i wartości. Ćwiczenie 052 Wpisz kod i zrenderuj scenę: Scena przedstawia dwie płaszczyzny, przy czym na płaszczyźnie poziomej ustawiono sześcian, a na nim kulę. Zamiast wpisywać standardowe ustawienia parametru finish w definicji każdej z brył, zadeklarowaliśmy te ustawienia wcześniej, po czym deklarowana wartość wywoływana jest dla każdej bryły osobno. Podczas testowania innych ustawień wystarczy dokonać zmiany jednej deklaracji, a nie wartości dla każdej bryły osobno. Grafika 3D program POV-Ray - 44 -

Zmieniając deklarację ustawień i każdorazowo renderując scenę przetestuj teraz działanie różnych funkcji dla różnych wartości: ambient - symuluje światło rozproszone w przestrzeni, obiekty w cieniu oświetlone są przez światło odbite od innych przedmiotów znajdujących się na scenie, ponieważ modelowanie takiego oświetlenia za pomocą ray-traycing'u jest bardzo skomplikowane i czasochłonne, wykorzystywany jest w tym celu właśnie ambient. Wartość domyślna wynosi 0.1, wartość funkcji należy do przedziału <-1, 1>, ale można używać parametrów z poza tego przedziału, wówczas efekt jest nieco dziwny. diffuse - rozproszenie światła odbitego, określa ile procent padającego światła ulega rozproszeniu. Wartość domyślna wynosi 0.6 (oznacz to że 60% światła widzianego pochodzi bezpośrednio z źródła oświetlenia), wartość funkcji należy do przedziału <0,1>, ale można używać parametrów z poza przedziału, wówczas efekt jest nieco dziwny. brilliance - połysk, ilość światła, które ulega rozproszeniu po odbiciu od powierzchni obiektów, zależy ono od typu powierzchni od kąta padania promieni świetlnych, parametr ten pozwala na modyfikację zachowania się lśniących powierzchni. Wartość domyślna wynosi 1.0, wartość funkcji należy do przedziału <-1, 10>, ale można używać parametrów z poza przedziału, wówczas efekt jest nieco dziwny. Grafika 3D program POV-Ray - 45 -

phong - opisuje punktowe rozjaśnienia powierzchni obiektu, typowy efekt dla metalowych i szklanych powierzchni. Wartość domyślna wynosi 0.0, wartość funkcji należy do przedziału <0, 1>, ale można używać parametrów większych niż 1, w przypadku gdy wartość jest równa 0, nie ma żadnego efektu, gdy parametr przyjmuje wartość większą od 0, występuje rozjaśnienie. phong_size - występuje tylko gdy wcześniej został użyty phong (jeśli nie został użyty phong, phong_size nie da żadnego efektu), opisuje wielkość rozjaśnienia wywołanego przez phong. Wartość domyślna wynosi 40.0, wartość funkcji należy do przedziału <-1,1000>, ale można używać parametrów z poza przedziału, wówczas efekt jest nieco dziwny. specular - funkcja bardzo podobna do phong (używa nieco odmiennego modelu), opisuje zjawiska świetlne na granicy przedmiotu, dotyczy zjawisk blisko granicy (horyzontu) przedmiotu. Wartość domyślna wynosi 0.0, wartość funkcji należy do przedziału <0, 1>, ale można używać parametrów większych niż 1, w przypadku gdy wartość jest równa 0, nie ma żadnego efektu, gdy parametr przyjmuje wartość większą od 0, występuje rozjaśnienie. Grafika 3D program POV-Ray - 46 -

roughness - funkcja bardzo podobna do phong_size (używa nieco odmiennego modelu), występuje tylko gdy wcześniej został użyty specular (jeśli nie został użyty specular, roughness nie da żadnego efektu), opisuje wielkość rozjaśnienia wywołanego przez specular. Wartość domyślna wynosi 0.05, wartość funkcji należy do przedziału <-1,1>, ale można używać parametrów z poza przedziału, wówczas efekt jest nieco dziwny. metallic - występuje tylko gdy wcześniej został użyty phong lub specular (jeśli nie został użyty phong lub specular, metallic nie da żadnego efektu), opisuje kolor rozjaśnienia wywołanego przez phong lub specular. Wartość domyślna wynosi 0.0, wartość funkcji należy do przedziału <0, 1>, ale można używać parametrów z poza przedziału, wówczas efekt jest nieco dziwny. reflection - funkcja symulująca odbicie lustrzane na danym obiekcie. Wartość domyślna wynosi 0.0, wartość funkcji należy do przedziału <0, 1>, ale można używać parametrów większych niż 1, w przypadku gdy wartość jest równa 0, nie ma żadnego efektu, gdy parametr przyjmuje wartość większą od 0, występuje efekt odbicia, gdy parametr jest równy 1.0 wówczas mamy idealne lustro. Grafika 3D program POV-Ray - 47 -

Dodatkowo w reflection występują takie funkcje jak: rgb - kolor odbicia, obiekt może odbijać tylko jeden kolor. Wartość domyślna funkcji wynosi rgb <0,0,0>, wartość funkcji jest ustawiana jak zwykły kolor rgb. W przypadku gdy wartość jest równa 0, nie ma żadnego efektu [brak odbicia], gdy parametr przyjmuje wartość większą od 0, występuje efekt odbicia (konkretnie, ustawionego koloru), gdy parametr jest równy 1.0 wówczas mamy idealne lustro (efekt taki jak przy reflection równym 1.0). metallic - parametr odpowiadający za rodzaj odbicia, powoduje, że światło odbite nabiera kolorów powierzchni odbijającej. Zapis jest nieco inny niż w pozostałych przypadkach: finish {reflection { [wartość zwykłego reflection] metallic [wartość metallic] }}. Wartość domyślna funkcji wynosi 0.0, wartość funkcji należy do przedziału <0,1>, ale można używać parametrów z poza przedziału, wówczas efekt jest nieco dziwny. Grafika 3D program POV-Ray - 48 -

exponent - odpowiada za efekty artystyczne, zapisuje się to identycznie jak metallic. Wartość domyślna funkcji wynosi 1.0, wartość funkcji należy do przedziału <-1,5>, ale można używać parametrów z poza przedziału, wówczas efekt jest nieco dziwny. irid - funkcja symuluje efekt światła na powierzchni z mikroskopijną przeźroczystą powłoką (plama oleju na kałuży). Wartość domyślna funkcji wynosi 0.0, wartość funkcji należy do przedziału <0,1>, ale można używać parametrów większych niż 1, wówczas efekt jest nieco dziwny. Dodatkowo w irid występują takie funkcje jak: thickness - grubość powłoki. Wartość domyślna funkcji wynosi 0.0,wartość funkcji należy do przedziału liczb całkowitych, znak nie ma tu żadnego znaczenia (taki sam efekt jest przy -10 i 10). Grafika 3D program POV-Ray - 49 -

turbulence - występuje tylko gdy wcześniej został użyty thickness (jeśli nie został użyty thickness, turbulence nie da żadnego efektu), opisuje wielkość turbulencji, zaburzeń w powłoce irid. Wartość domyślna wynosi 0.0, najlepsze efekty otrzymujemy przy małych liczbach. To co zostało podane powyżej to tylko opis wszystkich funkcji, które znajdują się w finish, ale zostały one opisane pojedynczo. Aby uzyskać satysfakcjonujące i realistyczne efekty należy bardzo często korzystać z kilku funkcji na raz. Należy jednak pamiętać o tym iż niektóre funkcje będą się nawzajem wykluczać, a z kolei czasami będzie tak że jedna funkcja uzupełni inną. Np.: Inne ustawienia finish wypróbuj samodzielnie. Grafika 3D program POV-Ray - 50 -