Luento 6: Piilopinnat ja Näkyvyys

Samankaltaiset tiedostot
Sisältö. Luento 6: Piilopinnat. Peruskäsitteet (jatkuu) Peruskäsitteitä. Yksinkertaisia tapauksia. Yksinkertaiset tapaukset jatkuu

Luento 6: Tulostusprimitiivien toteutus

Tilanhallintatekniikat

Tietokonegrafiikka. Jyry Suvilehto T Johdatus tietoliikenteeseen ja multimediatekniikkaan kevät 2014

Luento 3: 3D katselu. Sisältö

6.5. Renderöintijärjestys

Luento 3: Tulostusprimitiivien toteutus

Luku 6: Grafiikka. 2D-grafiikka 3D-liukuhihna Epäsuora valaistus Laskostuminen Mobiililaitteet Sisätilat Ulkotilat

T Vuorovaikutteinen tietokonegrafiikka Tentti

Luento 10: Näkyvyystarkastelut ja varjot. Sisältö

Luento 6: Geometrinen mallinnus

T Johdatus tietoliikenteeseen ja multimediatekniikkaan Tietokonegrafiikka

Luento 2: Viivan toteutus

10.2. Säteenjäljitys ja radiositeettialgoritmi. Säteenjäljitys

Luento 7: Lokaalit valaistusmallit

Luento 4: Näkyvyystarkastelut ja varjot

Luento 2: 2D Katselu. Sisältö

Määrittelydokumentti

4. Esittäminen ja visualisointi (renderöinti)

5. Grafiikkaliukuhihna: (1) geometriset operaatiot

Algoritmit 1. Luento 10 Ke Timo Männikkö

Tampereen yliopisto Tietokonegrafiikka 2013 Tietojenkäsittelytiede Harjoitus

Geometrialtaan mielivaltaisen huonetilan pintojen näkyvyyskertoimien laskenta

Tarkennamme geneeristä painamiskorotusalgoritmia

HELSINKI UNIVERSITY OF TECHNOLOGY Telecommunications Software and Multimedia Laboratory Tik Tietokonegrafiikan seminaari Kevät 2003

Luento 7: 3D katselu. Sisältö

2.2. Kohteiden konstruktiivinen avaruusgeometrinen esitys

3D-Maailman tuottaminen

Malleja ja menetelmiä geometriseen tietokonenäköön

HELSINGIN TEKNILLINEN KORKEAKOULU Tietoliikenneohjelmistojen ja Multimedian Laboratorio Tik Tietokonegrafiikan seminaari Kevät 2003

Algoritmit 1. Luento 8 Ke Timo Männikkö

Algoritmit 2. Luento 6 Ke Timo Männikkö

T Tietotekniikan peruskurssi: Tietokonegrafiikka. Tassu Takala TKK, Tietoliikenneohjelmistojen ja multimedian laboratorio

Tehtävän V.1 ratkaisuehdotus Tietorakenteet, syksy 2003

10. Esitys ja kuvaus

A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä.

1 / 19. Digitaalisen arkkitehtuurin yksikkö Aalto-yliopisto. Rendausteoriaa. ARK-A2502 DA-perusteet Elina Haapaluoma, Heidi Silvennoinen Kevät 2016

2. Seuraavassa kuvassa on verkon solmujen topologinen järjestys: x t v q z u s y w r. Kuva 1: Tehtävän 2 solmut järjestettynä topologisesti.

POHDIN - projekti. Funktio. Vektoriarvoinen funktio

Vanhoja koetehtäviä. Analyyttinen geometria 2016

Visualisoinnin perusteet

Algoritmit 1. Luento 10 Ke Timo Männikkö

Luento 2: Tulostusprimitiivit

mlvektori 1. Muista, että Jacobin matriisi koostuu vektori- tai skalaariarvoisen funktion F ensimmäisistä

Peilaus pisteen ja suoran suhteen Pythonin Turtle moduulilla

811312A Tietorakenteet ja algoritmit II Perustietorakenteet

Grafiikka 205. Tässä luvussa käsitellään geometriaa ja graafisia kohteita. Mukana on pääosin alkeisoperaatioita.

Luento 3: 2D Katselu. Sisältö

Muotin perusrakenne Ruisku tai painevalukappaleen rakenteen perusasiat: päästö, kulmapyöristys, jakopinta ja vastapäästö.

Algoritmit 1. Luento 4 Ke Timo Männikkö

TIES592 Monitavoiteoptimointi ja teollisten prosessien hallinta. Yliassistentti Jussi Hakanen syksy 2010

1. Olkoot vektorit a, b ja c seuraavasti määritelty: a) Määritä vektori. sekä laske sen pituus.

Taso 1/5 Sisältö ESITIEDOT: vektori, koordinaatistot, piste, suora

Pintamallintaminen ja maastomallinnus

Selvästi. F (a) F (y) < r x d aina, kun a y < δ. Kolmioepäyhtälön nojalla x F (y) x F (a) + F (a) F (y) < d + r x d = r x

Potentially Visible Set (PVS)

BM20A5800 Funktiot, lineaarialgebra ja vektorit Harjoitus 4, Syksy 2016

Mat Lineaarinen ohjelmointi

MATEMATIIKKA 5 VIIKKOTUNTIA. PÄIVÄMÄÄRÄ: 8. kesäkuuta 2009

JOHDATUS TEKOÄLYYN TEEMU ROOS

Vaihtuvan perspektiivin panoraamat piirrosanimaatiossa

Tekijä Pitkä matematiikka Pisteen (x, y) etäisyys pisteestä (0, 2) on ( x 0) Pisteen (x, y) etäisyys x-akselista, eli suorasta y = 0 on y.

T Johdatus tietoliikenteeseen ja multimediatekniikkaan: Tietokonegrafiikka. Tassu Takala. Mediatekniikan laitos

10. Globaali valaistus

Tietorakenteet ja algoritmit

Algoritmit 1. Luento 9 Ti Timo Männikkö

Geometriaa GeoGebralla Lisätehtäviä nopeasti eteneville

T Studio 4. luento 1: kurssin järjestelyt k-2007 ( www) aihepiirin yleisesittely tietokonegrafiikan perusteita Tassu Takala 1

T Tietojenkäsittelyopin ohjelmatyö. Testisarja Ray tracing. Tietokonegrafiikka-algoritmien visualisointi. Testisarja Ray tracing

GeoGebra. Meeri Ensio

T Studio 4. luento 1: kurssin järjestelyt k-2006 tietokonegrafiikan perusteita Tassu Takala 1

13 Lyhimmät painotetut polut

Algoritmit 1. Luento 3 Ti Timo Männikkö

PRELIMINÄÄRIKOE PITKÄ MATEMATIIKKA

Algoritmit 2. Luento 6 To Timo Männikkö

811312A Tietorakenteet ja algoritmit I Johdanto

Yhtälön oikealla puolella on säteen neliö, joten r. = 5 eli r = ± 5. Koska säde on positiivinen, niin r = 5.

Numeeriset menetelmät

MAB3 - Harjoitustehtävien ratkaisut:

2 Pistejoukko koordinaatistossa

Avaruuden kolme sellaista pistettä, jotka eivät sijaitse samalla suoralla, määräävät

9. Vektorit. 9.1 Skalaarit ja vektorit. 9.2 Vektorit tasossa

KJR-C1001 Statiikka ja dynamiikka. Luento Susanna Hurme

TIES471 Reaaliaikainen renderöinti


f(n) = Ω(g(n)) jos ja vain jos g(n) = O(f(n))

Yleistä vektoreista GeoGebralla

T Johdatus Tietoliikenteeseen ja Multimediaan

Lauseen erikoistapaus on ollut kevään 2001 ylioppilaskirjoitusten pitkän matematiikan kokeessa seuraavassa muodossa:

Algoritmit 2. Luento 5 Ti Timo Männikkö

(p j b (i, j) + p i b (j, i)) (p j b (i, j) + p i (1 b (i, j)) p i. tähän. Palaamme sanakirjaongelmaan vielä tasoitetun analyysin yhteydessä.

3D-NÄKYVYYSOPTIMOINTI MOBIILILAITTEILLA

Sisällys. T Tietokonegrafiikan perusteet. OpenGL-ohjelmointi 11/2007. Mikä on OpenGL?

Controlling the Camera of 3D World by Using Real Time Face Tracking

OCAD9. Orienteering Computer Aided Design. Talvipäivät 2008 Pertti Hartman. OCAD lisenssit. OCAD9 Standard täysversio

Algoritmit 2. Luento 13 Ti Timo Männikkö

Algoritmit 1. Luento 12 Ke Timo Männikkö

T Studio 4. luento 1: kurssin järjestelyt k-2005 tietokonegrafiikan perusteita Tassu Takala 1

1.3 Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

JOHDATUS TEKOÄLYYN TEEMU ROOS

Transkriptio:

Tietokonegrafiikan perusteet T-111.4300 3 op Luento 6: Piilopinnat ja Näkyvyys Janne Kontkanen Geometrinen mallinnus / 1 Johdanto Piilopintojen poisto-ongelma Syntyy kuvattaessa 3-ulotteista maailmaa 2-ulotteisella pinnalla Samaan pikseliin voi osua useita pintoja Ilman piilopintojen poisto-algoritmia, pikselin värin määrää pinta joka on piirretty viimeisenä Oikea tulos saadaan kuitenkin vain jos pikseliin piirtyy sen pinnan väri, joka on lähimpänä katsojaa Näkyvyysoptimointi tehokkuusmielessä Mitä aikaisemmassa vaiheessa grafiikkaliukuhihnaa lopulliseen kuvaan vaikuttamaton geometria saadaan eliminoitua, sitä parempi tehokkuus saavutetaan Geometrinen mallinnus / 2 1

Sisältö Historiaa Syvyyslajittelu Juovalajittelu Syvyyspuskuri A-puskuri Säteenjäljitys Geometrinen mallinnus / 3 Historiaa: syvyyslajittelu Maalarin algoritmi: 1 Järjestä primitiivilista siten että kauimpana kamerasta olevat primitiivit (esim. polygonit) ovat listassa ensimmäisenä (voidaan käyttää z- koordinaatin arvoa kameran lokaalissa koordinaatistossa) 2 Aloita piirtämään primitiivejä listan mukaisessa järjestyksessä Ominaisuuksia: Ajatus on hyvin yksinkertainen Lajittelu on kallista ja ei sovi nykyisten grafiikkalaitteistojen arkkitehtuuriin Primitiivien syvyysjärjestys ei ole välttämättä yksiselitteinen: -> Ongelmatapauksissa primitiivejä joudutaan pilkkomaan Ei laajassa käytössä nykypäivänä Geometrinen mallinnus / 4 2

Juovalajittelu Primitiivit pilkotaan vaakasuuntaisiksi viivasegmenteiksi Algoritmi 1. Rakennetaan kullekin pyyhkäisyjuovalle (y=vakio) lista sitä leikkaavista polygoneista, Talletataan ainakin: alku ja loppupiste (x0,x1) syvyyskoordinaatit (z0, z1) 2. Kävellään pikselit pyyhkäisyjuova kerrallaan vasemmalta oikealle pitäen kirjaa tämän hetkistä pikseliä peittävistä polygoneista ja niiden syvyydestä -syvyyskoordinaatti voidaan selvittää interpoloimalla -pikselin väri määräytyy lähimmän pinnan mukaan Ominaisuuksia Ei sovi nykyisten grafiikkalaitteistojen arkkitehtuuriin Juovakonversio täytyy tehdä ensin kaikelle geometrialle, vasta sen jälkeen pikselien arvot voidaan selvittää Ei kovin laajassa käytössä nykypäivänä Geometrinen mallinnus / 5 Syvyyspuskuri Nykyisten rasterointiin perustuvien arkkitehtuurien standardiratkaisu Piirrettäessä kuvaa merkitään jatkuvasti kuhunkin pikseliin muistiin sekä toistaiseksi lähimmän siihen osuneen kuvapisteen väri että sen etäisyys (z-arvo) katselupisteestä. Helppo toteuttaa: 1. Alustus: for each pixel do begin color[x,y] := background_color; depth[x,y] := max_depth end 2. Joka objektille (mielivaltaisessa järjestyksessä!) projisointi ja juovamuunnos, minkä yhteydessä kunkin pikselin kohdalla: if z < depth[x,y] then begin color[x,y] := object_color ; depth[x,y] := z end Geometrinen mallinnus / 6 3

Syvyyspuskuri Ominaisuuksia Primitiivit voidaan piirtää mielivaltaisessa järjestyksessä Valmiiseen kuvaan voidaan lisätä uutta geometriaa jos syvyyspuskuri on vielä saatavilla Ei toimi puoliläpinäkyvillä pinnoilla oikein Puoliläpinäkyvien pintojen piirto syvyyspuskuria käytettäessä 1. Alusta syvyyspuskuri 2. Piirrä kaikki läpinäkymätön geometria 3. Järjestä läpinäkyvä geometria takaa eteen 4. Piirrä läpinäkyvä geometria käyttäen maalarin algoritmia (Päästiin siis ojasta allikkoon) Geometrinen mallinnus / 7 A-puskuri A-puskuri kehitettiin ratkaisemaan syvyyspuskurin ongelmat Alunperin osana REYES-arkkitehtuuria, johon esim. Pixarin renderöintityökalut vieläkin perustuvat Sovellettavissa kuitenkin tavalliseen rasterointiarkkitehtuuriin Perusidea: Jokainen pikseli sisältää listan joka esittää kaikkia siihen osuvia pintoja Jokainen listan elementti voi sisältää seuraavia Syvyys, väri, läpinäkyvyys, peittoprosentti, muita renderöintiin liittyviä parametreja Lopullista kuvaa muodostettaessa, A-puskurissa olevat listat käydään läpi kullekin pikselille syvyysjärjestyksessä Geometrinen mallinnus / 8 4

Näkyvyysoptimointi Sovelluksen tulisi mahdollisimman nopeasti löytää geometria joka voi päätyä kuva-alalle Tapoja Näkymäfrustumin ulkopuolelle jäävien objektien poisto (view frustum culling) Takaperin olevien tahkojen poisto (back-face culling) Peittyvän geometrian poisto (occlusion culling) Geometrinen mallinnus / 9 Näkymäfrustumin ulkopuolelle jäävien objektien poisto Eng. View frustum culling Yleensä ensimmäinen suoritettava näkyvyysoptimointi Kannattaa tehdä mahdollisimman aikaisessa vaiheessa käyttäen esimerkiksi mallien ympäripiirrettyjä laatikoita Lähde: http://www.lighthouse3d.com/opengl/viewfrustum/ Geometrinen mallinnus / 10 5

Takaperin olevien tahkojen poisto Poistetaan pinnat joiden normaali osoittaa katsojasta poispäin (normaalisti tällaiset pinnat eivät näy) Kameran lokaalissa koordinaatistossa riittää tarkastella kunkin pintanormaalin z-komponenttia (alla Nz) z Nz > 0 Takaperin oleva pinta Katselusuunta Nz < 0 xy Geometrinen mallinnus / 11 Peittyvien pintojen poisto Näkyvyysoptimoinneista hankalin Kuinka tietää näkyykö osaa jostakin objektista/pinnasta, piirtämättä sitä? Mahdollisia ratkaisuja PVS-rakenteet (Potential Visible Set) Esiprosessi: maailma jaetaan soluihin ja rakennetaan kullekin solulle S, PVS-lista joka kertoo mitä soluja S:stä voi nähdä Ajon aikana: etsitään solu K joka sisältää katsojan, ja piirretään vain solut jotka ovat potentiaalisesti nähtävissä K:sta (eli K:n PVS-lista) Dynaaminen näkyvyysoptimointijärjestelmä http://www.umbra.fi/ Geometrinen mallinnus / 12 6

Säteenjäljitys (ray tracing) Nykyään renderöintialgoritmit jaetaan kahteen ryhmään Rasterointi (kaikki tähän mennessä puhuttu) (piirto tapahtuu primitiivi kerrallaan) Säteenjäljitys (piirto tapahtuu pikseli kerrallaan) Säteenjäljityksen perusoperaatio: näkyvyyden selvittäminen Jos pisteestä x lähdetään suuntaan d, niin mihin ensimmäisenä törmätään? demo Geometrinen mallinnus / 13 Säteenjäljityksen ominaisuuksia Ominaisuuksia Kompleksisuus alilineaarinen suhteessa primitiivien määrään (N) Tulkinta: Kun N on suuri, voittaa tehokkuudessa rasteroinnin! Voidaan laskea myös: Peiliheijastukset Valon taittuminen (diffraktio) Epäsuorat diffuusit heijastukset (Monte Carlo menetelmät) Ongelma Vaatii avaruudellisen jaon, joka täytyy rakentaa uudelleen jos malleja muunnellaan (alilineaarinen kompleksisuus menetetään) Lähde: Wald et al., Faster Isosurface Ray Tracing using Implicit KD-Trees IEEE Transactions on Visualization and Computer Graphics, 2005 Geometrinen mallinnus / 14 7