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

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

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

Ćwiczenia nr 7. TEMATYKA: Krzywe Bézier a

Grafika komputerowa Wykład 8 Modelowanie obiektów graficznych cz. II

Grafika komputerowa Wykład 7 Modelowanie obiektów graficznych cz. I

VI. FIGURY GEOMETRYCZNE i MODELE

Opis krzywych w przestrzeni 3D. Mirosław Głowacki Wydział Inżynierii Metali i Informatyki Przemysłowej AGH

składa się z m + 1 uporządkowanych niemalejąco liczb nieujemnych. Pomiędzy p, n i m zachodzi następująca zależność:

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

Modelowanie krzywych i powierzchni

WYMAGANIA Z WIEDZY I UMIEJĘTNOŚCI NA POSZCZEGÓLNE STOPNIE SZKOLNE DLA KLASY CZWARTEJ H. zakres rozszerzony. Wiadomości i umiejętności

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

0. OpenGL ma układ współrzędnych taki, że oś y jest skierowana (względem monitora) a) w dół b) w górę c) w lewo d) w prawo e) w kierunku do

Wymagania edukacyjne z matematyki w XVIII Liceum Ogólnokształcącym w Krakowie, zakres podstawowy. Klasa druga.

Zagadnienia na egzamin poprawkowy z matematyki - klasa I 1. Liczby rzeczywiste

ZAGADNIENIA PROGRAMOWE I WYMAGANIA EDUKACYJNE DO TESTU PRZYROSTU KOMPETENCJI Z MATEMATYKI DLA UCZNIA KLASY II

WYMAGANIA EDUKACYJNE Z MATEMATYKI DLA KLASY DRUGIEJ LICEUM OGÓLNOKSZTAŁCĄCEGO ZAKRES PODSTAWOWY

WYMAGANIA EDUKACYJNE NIEZBĘDNE DO OTRZYMANIA PRZEZ UCZNIA POSZCZEGÓLNYCH ŚRÓDROCZNYCH I ROCZNYCH OCEN KLASYFIKACYJNYCH Z MATEMATYKI

Propozycja szczegółowego rozkładu materiału dla 4-letniego technikum, zakres podstawowy i rozszerzony. Klasa I (90 h)

Interpolacja. Marcin Orchel. Drugi przypadek szczególny to interpolacja trygonometryczna

VII. WYKRESY Wprowadzenie

WYMAGANIA EDUKACYJNE NA POSZCZEGÓLNE OCENY. (zakres podstawowy) klasa 2

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.:

Rozwiązania zadań. Arkusz Maturalny z matematyki nr 1 POZIOM ROZSZERZONY. Aby istniały dwa różne pierwiastki równania kwadratowego wyróżnik

WYMAGANIA EDUKACYJNE Z MATEMATYKI 2016/2017 (zakres podstawowy) klasa 3abc

Przedmiotowy system oceniania wraz z określeniem wymagań edukacyjnych (zakres rozszerzony)

Oświetlenie obiektów 3D

Próbny egzamin maturalny z matematyki Poziom rozszerzony

Funkcje liniowe i wieloliniowe w praktyce szkolnej. Opracowanie : mgr inż. Renata Rzepińska

Dział I FUNKCJE I ICH WŁASNOŚCI

WYMAGANIA EDUKACYJNE Z MATEMATYKI DLA KLASY TRZECIEJ NA ROK SZKOLNY 2011/2012 DO PROGRAMU MATEMATYKA Z PLUSEM

10.3. Typowe zadania NMT W niniejszym rozdziale przedstawimy podstawowe zadania do jakich może być wykorzystany numerycznego modelu terenu.

PLAN WYNIKOWY (zakres podstawowy) klasa 2. rok szkolny 2015/2016

Rozwiązania zadań. Arkusz maturalny z matematyki nr 1 POZIOM PODSTAWOWY

WYMAGANIA WSTĘPNE Z MATEMATYKI

I. Potęgi. Logarytmy. Funkcja wykładnicza.

Wymagania edukacyjne z matematyki klasa IV technikum

Metody numeryczne I Równania nieliniowe

Treść wykładu. Układy równań i ich macierze. Rząd macierzy. Twierdzenie Kroneckera-Capellego.

Rozkład materiału z matematyki dla II klasy technikum zakres podstawowy I wariant (38 tyg. 2 godz. = 76 godz.)

A,B M! v V ; A + v = B, (1.3) AB = v. (1.4)

I. Funkcja kwadratowa

FUNKCJA LINIOWA - WYKRES

a =, gdzie A(x 1, y 1 ),

MATeMAtyka zakres rozszerzony

Arkusz maturalny nr 2 poziom podstawowy ZADANIA ZAMKNIĘTE. Rozwiązania. Wartość bezwzględna jest odległością na osi liczbowej.

83 Przekształcanie wykresów funkcji (cd.) 3

Wymagania edukacyjne z matematyki - klasa III (poziom rozszerzony) wg programu nauczania Matematyka Prosto do matury

Wymagania edukacyjne z matematyki dla klasy I gimnazjum wg programu Matematyka z plusem

WYMAGANIA EDUKACYJNE Z MATEMATYKI KLASA I GIMNAZJUM Małgorzata Janik

PLAN WYNIKOWY DLA KLASY DRUGIEJ POZIOM PODSTAWOWY I ROZSZERZONY. I. Proste na płaszczyźnie (15 godz.)

Wymagania edukacyjne, kontrola i ocena. w nauczaniu matematyki w zakresie. podstawowym dla uczniów technikum. część II

Rozkład materiału nauczania

ZADANIA MATURALNE - ANALIZA MATEMATYCZNA - POZIOM ROZSZERZONY Opracowała - mgr Danuta Brzezińska. 2 3x. 2. Sformułuj odpowiedź.

Kryteria oceniania z matematyki Klasa III poziom podstawowy

ZAKRES PODSTAWOWY. Proponowany rozkład materiału kl. I (100 h)

Wymagania na egzamin poprawkowy z matematyki w roku szkolnym 2018/2019 klasa 1 b BS

PLAN WYNIKOWY Z MATEMATYKI DLA KLASY II TECHNIKUM 5 - LETNIEGO

MATeMAtyka klasa II poziom rozszerzony

Przedmiotowe Ocenianie Z Matematyki - Technikum. obowiązuje w roku szkolnym 2016 / 2017

FIGURY I PRZEKSZTAŁCENIA GEOMETRYCZNE

Przedmiotowy system oceniania wraz z określeniem wymagań edukacyjnych klasa druga zakres rozszerzony

Algorytmy i struktury danych. Wykład 4

MATeMAtyka 3. Przedmiotowy system oceniania wraz z określeniem wymagań edukacyjnych. Zakres podstawowy i rozszerzony. Zakres podstawowy i rozszerzony

Propozycja szczegółowego rozkładu materiału dla 4-letniego technikum, zakres podstawowy. Klasa I (60 h)

Dział Rozdział Liczba h

MATeMAtyka 3. Propozycja przedmiotowego systemu oceniania wraz z określeniem wymagań edukacyjnych. Zakres podstawowy i rozszerzony

WYMAGANIA EDUKACYJNE NA POSZCZEGÓLNE OCENY MATEMATYKA KLASA 8 DZIAŁ 1. LICZBY I DZIAŁANIA

M10. Własności funkcji liniowej

Tematy: zadania tematyczne

Grafika 2D. Animacja Zmiany Kształtu. opracowanie: Jacek Kęsik

FUNKCJA LINIOWA - WYKRES. y = ax + b. a i b to współczynniki funkcji, które mają wartości liczbowe

V. WYMAGANIA EGZAMINACYJNE

Jolanta Pająk Wymagania edukacyjne matematyka w zakresie rozszerzonym w klasie 2f 2018/2019r.

Algebra liniowa z geometrią

Pytania do spr / Własności figur (płaskich i przestrzennych) (waga: 0,5 lub 0,3)

PRZEDMIOTOWY SYSTEM OCENIANIA PROSTO DO MATURY KLASA 1 ZAKRES PODSTAWOWY

Rozdział VII. Przekształcenia geometryczne na płaszczyźnie Przekształcenia geometryczne Symetria osiowa Symetria środkowa 328

NaCoBeZU z matematyki dla klasy 7

Technikum Nr 2 im. gen. Mieczysława Smorawińskiego w Zespole Szkół Ekonomicznych w Kaliszu

PDM 3 zakres podstawowy i rozszerzony PSO

Programowanie liniowe

Geometria analityczna

Geometria. Rozwiązania niektórych zadań z listy 2

Krzywa uniwersalna Sierpińskiego

WYMAGANIA EDUKACYJNE Z MATEMATYKI DLA KLASY III

DZIAŁ I: LICZBY I DZIAŁANIA Ocena dostateczna. Ocena dobra. Ocena bardzo dobra (1+2) ( ) Uczeń: (1+2+3) Uczeń: określone warunki

Technikum Nr 2 im. gen. Mieczysława Smorawińskiego w Zespole Szkół Ekonomicznych w Kaliszu

Zakres Dopuszczający Dostateczny Dobry Bardzo dobry

Elementy logiki (4 godz.)

WYMAGANIA EDUKACYJNE NIEZBĘDNE DO OTRZYMANIA PRZEZ UCZNIA POSZCZEGÓLNYCH ŚRÓDROCZNYCH I ROCZNYCH OCEN KLASYFIKACYJNYCH Z MATEMATYKI

Kształcenie w zakresie rozszerzonym. Klasa IV

MATEMATYKA WYKAZ UMIEJĘTNOŚCI WYMAGANYCH NA POSZCZEGÓLNE OCENY DLA KLASY DRUGIEJ

LUBELSKA PRÓBA PRZED MATURĄ 09 MARCA Kartoteka testu. Maksymalna liczba punktów. Nr zad. Matematyka dla klasy 3 poziom podstawowy

Tomasz Tobiasz PLAN WYNIKOWY (zakres podstawowy)

Klasa 1 technikum. Poniżej przedstawiony został podział wymagań na poszczególne oceny szkolne:

PDM 3. Zakres podstawowy i rozszerzony. Plan wynikowy. STEREOMETRIA (22 godz.) W zakresie TREŚCI PODSTAWOWYCH uczeń potrafi:

SIMR 2016/2017, Analiza 2, wykład 1, Przestrzeń wektorowa

Interpolacja i modelowanie krzywych 2D i 3D

WYMAGANIA EDUKACYJNE Z MATEMATYKI W KLASIE VIII

Transkrypt:

POV-Ray Wykład 3

Typy źródeł światła: rozproszone, kierunkowe, punktowe i reflektor. źródło zewnętrzne

Źródło światła kierunkowe Źródło światła bardzo oddalone od oświetlanego obiektu Można założyć że promienie biegną równolegle do siebie Na przykład światło słoneczne lub światło innej odległej gwiazdy Źródło światła punktowe Promienie rozchodzą się we wszystkich kierunkach Podkreśla nierówności oświetlanych obiektów Na przykład nieosłonięta żarówka Źródło światła reflektor Światło skierowane o kształcie stożka Zazwyczaj wyróżnia się stożek wewnętrzny w którym natężenie światła jest stałe oraz stożek zewnętrzny w którym natężenie maleje ku zewnętrznej granicy Przykładem może być reflektor samochodowy Źródło światło rozproszone Światło padające ze wszystkich kierunków z równomiernym natężeniem Nie generuje cieni

Światło Światło otaczające (ambient light) Jest to światło emitowane równomiernie we wszystkich kierunkach. Bez tego światła obszary, które nie byłyby bezpośrednio oświetlone przez źródło światła mogłyby być zupełnie ciemne. Domyślnie światło otaczające ma kolor biały (rgb <1, 1, 1>). Zmiana koloru światła otaczającego global_settings { ambient_light rgb <r, g, b> } global_settings { ambient_light rgb <1, 0.0, 0.0> }

Przykład stadion Oświetlenie stadionu #declare zarowka=union { sphere{<0,0,0> 1 texture{pigment{color White} finish{ambient 0.2}} scale<1,1,0.3>} } #declare lampa=union { box{<-6.5,-2.5,-1> <6.5,2.5,2> texture{pigment{color Black}}} #for(krok, 0, 2, 1) light_source{<-3+krok*3,-1.2, -1> color White looks_like{zarowka}} light_source{<-3+krok*3,1.2, -1> color White looks_like{zarowka}} #end } #declare slup=union { cone{<0,0,0> 1.2 <0,20,0> 0.6 texture{pigment{color Brown}}} object{lampa rotate<-30,0,0.> translate<0,20,-3>} } object{slup rotate<0,-45,0> translate<-40,0,15>} object{slup rotate<0,45,0> translate<40,0,15>} object{slup rotate<0,-135,0> translate<-40,0,-115>} object{slup rotate<0,135,0> translate<40,0,-115>}

Światło punktowe (point light) Nie ma rozmiaru, światło rozchodzi się ze źródła jednakowo we wszystkich kierunkach. Jest to domyślny rodzaj światła. light_source { <x, y, z> color rgb <r, g, b> }

Światło miejscowe (spot light) Światło miejscowe tworzy stożek światła, który jest jasny w środku i łagodnie ciemnieje zbliżając się do krawędzi. light_source {<x, y, z> color rgb <r, g, b> spotlight [radius r] [falloff f] [tightness t] [point_at <x, y, z>] [(opt.)]} tightness współczynnik zanikania światła

Definicja środkowych z żarówek słupa oświetleniowego light_source { <0,-1.2, -1> color White spotlight radius 5 falloff 10 point_at<0,-1.2,-50> looks_like{zarowka} } light_source { <0,-1.2, -1> color White spotlight radius 1 falloff 1 point_at<0,-1.2,-50> looks_like{zarowka} }

light_source { <0,-1.2, -1> color White spotlight radius 25 falloff 50 point_at<0,-1.2,-50> looks_like{zarowka} }

Światło cylindryczne (cylindrical light) Światło punktowe, w którym zamiast stożka światła tworzony jest walec światła. Promienie światła nie są równoległe. light_source { <x, y, z> color rbg <r, g, b> cylinder [radius r] [falloff f] [tightness t] [point_at <x, y, z>] [(opt.)] } cylinder radius 15 falloff 15

light_source { <0,1.2, -1> color White cylinder radius 30 falloff 60 point_at<0,-1.2,-50> looks_like{zarowka} }

Światło obszarowe (area light) Źródło światła obszarowego zajmuje skończony obszar przestrzeni jedno lub dwuwymiarowej. light_source { <x, y, z> color rgb <r, g, b> area_light u, v, lsw, lsk [addaptive a] [jitter] [circular] [orient] [(opt.)] } u, v wektory definiujące prostokąt (muszą być prostopadłe), lsw - liczba świateł w wierszu, lsk - liczba świateł w kolumnie, [addaptive a] - adaptacyjne próbkowanie świateł, [jitter] - losowe przesuwanie świateł, [circular] - światła umiejscawiane są na kręgu, [orient] - lepsze tworzenie miękkich cieni (tylko z circular, wektory musza być jednakowej długości a liczba świateł w lsw=lsk).

light_source { <0,-1.2, -1> color White area_light <0,2> <1,0> 2 2 looks_like{zarowka} }

projected_through generuje efekt odwrotny od klasycznego światła otaczającego. Rzucane światło przyjmuje kształt cienia jaki utworzyłaby zdefiniowana przeszkoda przy klasycznym oświetleniu.

Metody modelownia krzywych i powierzchni Krzywe Beziera, Krzywe wymierne Beziera Powierzchnie Beziera Krzywe B-sklejane (NURBAS) Powierzchnie B-sklejane Inne metody modelowania np.: Krzywe Hermite a Płaty Coonsa Powierzchnie Gordona Płaty trójkątne

źródło: Grafika wektorowa, Helion 2012 Krzywa Beziera Genealogia krzywej Beziera 1. Karl Weierstras (1815-1897). Niemiecki matematyk, autor twierdzenie głoszącego, że każdą funkcję ciągłą można przybliżyć z dowolną dokładnością wielomianami. 2. Siergiej Natanowicz Bernstein (1880-1968) Radziecki matematyk, twórca tzw. wielomianów bazowych 3. Paul de Casteljau (1930-1999) francuski fizyk i matematyk, pracujący dla firmy Citroen użył wielomianów Bernsteina przy tworzeniu algorytmu obliczającego krzywe. 4. Pierre Bezier (1910-1999) francuski inżynier, pracownik firmy Renault, który spopularyzował algorytm znajdując dla niego zastosowanie w programie CAD.CAM.

Rys. Portret Pierre Bezier a utworzony za pośrednictwem tysięcy krzywych źródło: Grafika wektorowa, Helion 2012

Krzywa Beziera Krzywa Beziera to krzywa wielomianowa trzeciego stopnia, czyli taka która może być definiowana za pomocą trzech wielomianów z pewnym parametrem t (odpowiednio dla współrzędnych x, y i z). Wielomiany trzeciego stopnia są używane najczęściej, ponieważ wielomiany niższego stopnia są zbyt mało elastyczne, jeśli chodzi o sterowanie kształtem krzywej. Natomiast wielomiany wyższego stopnia wprowadzają niepożądane oscylacje, a ponadto wymagają większej liczby obliczeń. Krzywe trzeciego stopnia są również krzywymi najniższego stopnia, które nie leżą w jednej płaszczyźnie w 3D. Współczynniki wielomianów są tak dobierane, żeby krzywa przebiegała wzdłuż pożądanej ścieżki. Krzywa określona jest przez dwa punkty końcowe oraz dwa punkty pośrednie nie należące do krzywej. Krzywa Beziera interpoluje więc oba końcowe punkty i aproksymuje dwa pozostałe. Dzięki swoim zaletom, takim jak łatwość interakcyjnego kształtowania i istnienie sprawnych algorytmów przetwarzania, reprezentacje te obecnie używane powszechnie nie tylko w inżynierskich systemach projektowania wspomaganego komputerem, ale także w wielu innych zastosowaniach graficznych (np. w projektowaniu czcionek).

Rys. Interpolacja wykresu 3D zrealizowane w programie Matlab

Punkty należące do krzywej Beziera obliczane są z równań: P. x = (1 t) 3 P 1. x + 3(1 t) 2 tp 2. x + 3(1 t)t 2 P 3. x + t 3 P 4. x P. y = (1 t) 3 P 1. y + 3(1 t) 2 tp 2. y + 3(1 t)t 2 P 3. y + t 3 P 4. y P. z = (1 t) 3 P 1. z + 3(1 t) 2 tp 2. z + 3(1 t)t 2 P 3. z + t 3 P 4. z gdzie: P.x, P.y, P.z - współrzędne x, y i z punktu P t - parametr z przedziału [0,1] określający, w którym miejscu krzywej znajduje się szukany punkt. Przykładowo dla t=0 otrzymujemy punkt P1, a dla t=1 punkt P4. Aby otrzymać obraz (współrzędne punktów) całej krzywej należy zmieniać wartość t z odpowiednio małym krokiem. Przy łączeniu kilku segmentów krzywej Beziera należy dopilnować, aby zachowana była ciągłość w punkcie łączenia dwóch punktów końcowych.

Oznacza to, że wspólny punkt końcowy oraz dwa punkty pośrednie muszą być różne i współliniowe. Krzywe Béziera mają następujące własności: Niezmienniczość afiniczna reprezentacji. Suma wielomianów Bernsteina stopnia n jest równa 1, a zatem dla dowolnego t R punkt p(t) jest kombinacją afiniczną punktów kontrolnych. Ponieważ przekształcenia afiniczna zachowują kombinacje afiniczne więc dla ustalonego przekształcenia afinicznego f i dla każdego t odpowiedni punkt krzywej Béziera reprezentowanej przez punkty kontrolne f(p 0 ),, f(p n ) jest równy f(p(t)). Innymi słowy, aby otrzymać obraz krzywej Béziera w dowolnym przekształceniu afinicznym, wystarczy poddać temu przekształceniu jej punkty kontrolne.

Własność otoczki wypukłej. Dla t [0,1] punkt p(t) jest kombinacją wypukłą punktów kontrolnych (wielomiany Bernsteina są w przedziale [0,1] nieujemne), a więc należy do otoczki wypukłej ich zbioru. Zachodzi interpolacja skrajnych punktów kontrolnych: p(0) = p 0, p(1) = p n Dla t [0,1] krzywa Béziera nie ma z żadną prostą (na płaszczyźnie) albo płaszczyzną (w przestrzeni) większej liczby punktów przecięcia niż jej łamana kontrolna (to się nazywa własnością zmniejszania wariacji). Istnieje możliwość podwyższenia stopnia, czyli znalezienia reprezentacji stopnia n+1. Związek obu reprezentacji wyraża się wzorami n n+1 p(t) = p i B i n (t) = p ib i n+1 (t) i=0 p i = i n + 1 p n + 1 i i 1 + n + 1 p i Podwyższanie stopnia możemy iterować, dostając reprezentacje coraz wyższych stopni. Ciąg łamanych kontrolnych otrzymanych w ten sposób zbiega jednostajnie do krzywej dla t [0,1]. Zbieżność tego ciągu jest jednak zbyt wolna, aby miała praktyczne znaczenie. i=0

Jeśli kolejne punkty kontrolne leżą na prostej, w kolejności indeksów i w równych odstępach, to krzywa Béziera jest odcinkiem sparametryzowanym ze stałą prędkością. Najłatwiej jest udowodnić to rozpatrując reprezentację odcinka w postaci krzywej Béziera stopnia 1 i jego reprezentacje otrzymane przez podwyższanie stopnia. Pochodna krzywej Béziera o punktach kontrolnych p 0,, p n wyraża się wzorem n 1 n 1 p (t) = n(p i+1 p i )B i n 1 (t) = n p i B i n 1 (t) i=0 i=0

Na podstawie własności otoczki wypukłej mamy więc własność hodografu, według której kierunek wektora p (t) t [0,1] jest zawarty w stożku rozpiętym przez wektory P i = p i+1 p i dla i=0,, n-1. Ponadto zachodzą równości p (0) = n(p 1 p 0 ) oraz p (1) = n(p n p n 1 ). Podział krzywej. Punkty p 0 (0),, p0 (n) oraz p0 (n),, pn (0), otrzymane w trakcie wykonywania algorytmu de Casteljau, są punktami kontrolnymi tej samej krzywej, w innych parametryzacjach. Dokładniej, dla dowolnego s R zachodzą równości:

n p(s) = p i B i s (s) = p 0 (i) Bi n ( s t ) i=0 n i=0 (n i) = p n s t i Bi ( 1 t ) Aby narysować krzywą, możemy dzielić ją na,,dostatecznie krótkie łuki i rysować zamiast nich odcinki. Otoczka wypukła łamanej kontrolnej,,całej krzywej jest z reguły znacznie większa niż suma otoczek łamanych kontrolnych kilku jej fragmentów, a zatem przez podział możemy uzyskiwać znacznie dokładniejsze oszacowania położenia krzywej. Algorytm szybkiego obliczania punktu p(t) (o koszcie O(n) zamiast O(n 2 )), jak w przypadku algorytmu de Casteljau) możemy uzyskać, adaptując schemat Hornera. Podstawiając s=1-t, otrzymujemy n i=0

Krzywe B-sklejane Określenie krzywych B-sklejanych Modelowanie figur o skomplikowanym kształcie wymagałoby użycia krzywych Béziera wysokiego stopnia, co oprócz niewygody (z punktu widzenia użytkownika programu interakcyjnego) sprawiałoby różne kłopoty implementacyjne (bardzo duże wartości współczynników dwumianowych, wysoki koszt algorytmów obliczania punktu). Dlatego często stosuje się krzywe kawałkami wielomianowe w reprezentacji B-sklejanej; jest ona uogólnieniem reprezentacji Béziera krzywych wielomianowych. Rys. Porównanie krzywej Béziera z krzywą B-sklejaną

Krzywa B-sklejana jest określona przez podanie: stopnia n, ciągu N+1 węzłów u 0,, u N (ciąg ten powinien być niemalejący, a ponadto N powinno być większe od 2n), oraz N-n punktów kontrolnych d 0,, d N n 1.Wzór, który jest definicją krzywej B-sklejanej ma postać: N n 1 s(t) = d 1 N i n (t) i=0 t [u n, u N n ] We wzorze tym występują funkcje B-sklejane N n i stopnia n, które są określone przez ustalony ciąg węzłów. Istnieje kilka definicji funkcji B-sklejanych, które różnią się stopniem skomplikowania, a także trudnością dowodzenia na podstawie takiej definicji różnych własności tych funkcji (w zasadzie więc wychodzi na jedno, której definicji użyjemy, jeśli chcemy dowodzić twierdzenia, to trudności nie da się uniknąć). Ponieważ w tym wykładzie ograniczamy się do praktycznych aspektów zagadnienia, więc przytoczę rekurencyjny wzór Mansfielda-de Boora- Coxa, który w książkach o grafice chyba najczęściej pełni rolę definicji: N 0 i (t) = { 1 dla t [u i, u i+1 ] 0 przewiwnym razie N i n (t) = t u i u i+n u i N i n 1 (t) + u i+n+1 t u i+n+1 u i+1 N i+1 n 1 (t) dla n > 0

Podstawowe własności krzywych B-sklejanych Własności krzywych B-sklejanych najbardziej istotne w zastosowaniach związanych z grafiką komputerową, są takie: Jeśli wszystkie węzły od u n do u N n są różne (tworzą ciąg rosnący), to krzywa składa się z N-2n łuków wielomianowych. W przeciwnym razie (jeśli występują tzw. węzły krotne), to liczba łuków jest mniejsza. Algorytm de Boora dokonuje liniowej interpolacji kolejno otrzymywanych punktów (liczby α i (j) należą do przedziału [0,1]) stąd wynika silna własność otoczki wypukłej: wszystkie punkty łuku dla t [u k,, u k+1 ] leżą w otoczce wypukłej punktów d k n,, d k. Mamy też afiniczną niezmienniczość tej reprezentacji krzywej. W celu otrzymania jej obrazu w dowolnym przekształceniu afinicznym, wystarczy zastosować to przekształcenie do punktów kontrolnych d 0,, d N n 1. Rys. Silna własność otoczki wypukłej

Lokalna kontrola kształtu. Ponieważ punkt s(t) dla t [u k,, u k+1 ] zależy tylko od punktów d k n,, d k więc zmiana punktu d i powoduje zmianę fragmentu krzywej dla t [u i, u i+n+1 ]. Pochodna krzywej B-sklejanej stopnia n jest krzywą stopnia n-1 N n 2 s n (t) = (d u i+n+1 u i+1 d i )N n 1 i+1 (t) i+1 i=0 Jeśli dwa sąsiednie węzły są n-krotne, to łuk krzywej między nimi jest krzywą Béziera

Powierzchnie Béziera i B-sklejane Płaty tensorowe Do określenia powierzchni potrzebne są funkcje dwóch zmiennych. Najczęściej wykorzystuje się iloczyn tensorowy przestrzeni funkcji jednej zmiennej. Użycie go prowadzi do wzorów, które opisują odpowiednio płat powierzchni Béziera i płat powierzchni B-sklejanej stopnia (n,m). W przypadku płata B-sklejanego, nawet jeśli stopień ze względu na każdy parametr jest taki sam, można podać inny ciąg węzłów określających funkcje bazowe. p(u, v) = n m i=0 j=0 p ij B n i (u)b m j (v) s(u, v) = N n 1 M m 1 d ij N n i (u)n m j (v) i=0 j=0 Rys. Płat B-sklejany

Dziedziną płata Béziera jest zwykle kwadrat jednostkowy. Dziedziną płata B- sklejanego jest prostokąt [u n, u N n ] [v m, v M m ]. Często dziedzinę otrzymuje się przez odrzucenie fragmentów takiego prostokąta wówczas mamy wtedy płat obcięty. Rys. Obcięty płat Béziera Punkty kontrolne płata każdego z tych rodzajów dla wygody kształtowania przedstawia się w postaci siatki. Wyróżniamy w niej wiersze i kolumny. Wyznaczenie punktu na powierzchni, dla ustalonych parametrów u i v można sprowadzić do wyznaczania punktów na krzywych (Béziera albo B-sklejanych): p(u, v) = n m i=0( j=0 p ij B m j (v)) B n i (u) = n i=0 q i B n i (u)

Wszystkie działania wykonujemy na kolumnach siatki, traktując je tak, jakby to były łamane kontrolne krzywych. Punkty tych krzywych, odpowiadające ustalonemu v, są punktami kontrolnymi krzywej stałego parametru u leżącymi na płacie. Można też postąpić w odwrotnej kolejności i najpierw przetwarzać wiersze, a potem kolumnę otrzymanych punktów. Zasada przetwarzania reprezentacji płata w celu podwyższenia stopnia, podziału na kawałki, wstawienia węzła i obliczenia pochodnych cząstkowych jest identyczna. Płaty trójkątne Dziedziną trójkątnego płata Béziera jest zwykle trójkąt, którego wierzchołki stanowią układ odniesienia układu współrzędnych barycentrycznych r, s, t. Suma tych współrzędnych jest równa 1, wewnątrz trójkąta mają one wartości dodatnie. Płat jest określony wzorem, w którym występują wielomiany Bernsteina trzech zmiennych stopnia n i punkty kontrolne r, s, t będące wierzchołkami siatki kontrolnej płata trójkątnego. p(r, s, t) = p ijk B n ijk (r, s, t) i,j,k 0 i+j+k=n

Rys. Trójkątny płat Béziera i jego siatka kontrolna Płaty Béziera w praktyce Bicubic_patch jest zakrzywioną powierzchnią 3D utworzoną z siatki trójkątów. POV-Ray obsługuje typ Bicubic o nazwie patch Beziera. Funkcja bicubic_patch jest zdefiniowana w następujący sposób bicubic_patch { type t // 0 lub 1 (0 - mniej pamięci) [u_steps nu] // liczba wierszy w siatce końcowej [v_steps nv] // liczba kolumn w siatce końcowej [flatness f] // test gładkości <x1, y1, z1> <x2, y2, z2> <x16, y16, z16> // punkty kontrolne

[(opt.)] } Parametry u_steps i v_steps przyjmują wartości całkowite, które określają ile wierszy i kolumn trójkątów zostanie minimalne użytych do utworzenia zdefiniowanej powierzchni. Maksymalną liczbę poszczególnych kawałków plastra, które są testowane przez POV- Ray można obliczyć z następującego równania: 2 u_steps 2 v steps. Przykład Powierzchnia rozpięta pomiędzy 16-oma zdefiniowanymi punktami.

Powierzchnia uzyskana poprzez odpowiednie obrócenia i przesunięcia 6-ciu obiektów typu plat

Krzywe Béziera w praktyce

Program generuje gotowy kod do POV-Ray a (daje możliwość wyboru pomiędzy lathe a prism)

Przykład

Przykład

Przykład połącznia dwóch osobno opracowanych elementów.

Siatka (mesh) Obiekty mesh są bardzo przydatne ponieważ pozwalają nam na tworzenie obiektów zawierających setki lub tysiące trójkątów. W praktyce oznacza to możliwość utworzenia niemal dowolnej bryły konstrukcji (bardziej złożone kształty oraz duża dokładność odwzorowywanego elementów wiążą się z zastosowaniem dużej liczby trójkątów). Wszystkie tekstury, których chcemy zastosować wewnątrz siatki musimy zdefiniować przed jej utworzeniem. Tekstury (w tym parametr color) nie może być określony wewnątrz siatki ze względu na niską wydajność pamięci. mesh { triangle { <x1, y1, z1>, <x2, y2, z2>, <x3, y3, z3> [(opt.)] } triangle { <x1, y1, z1>, <x2, y2, z2>, <x3, y3, z3> [(opt.)] }... [inside_vector <x, y, z>] [(opt.)] } W przypadku gdy siatka jest zamknięta to możemy jej użyć do CSG, ale musimy podać inside_vector (wektor definiujący kierunek do wewnątrz).

Przykład

Rysunek wygenerowany w programie Matlab (zastosowanie czworokątów)