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

Samankaltaiset tiedostot
Luento 4: Näkyvyystarkastelut ja varjot

Visualisoinnin perusteet

Luento 3: 3D katselu. Sisältö

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

Luento 6: Piilopinnat ja Näkyvyys

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

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

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

Tilanhallintatekniikat

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

/X.WXWNLHOPD 5HDDOLDLNDLVHWYDUMRWMD YDUMRVlUPL DOJRULWPL

T Johdatus tietoliikenteeseen ja multimediatekniikkaan Tietokonegrafiikka

Reaaliaikaiset varjoalgoritmit. Atso Kauppinen

10. Globaali valaistus

Tampereen yliopisto Tietokonegrafiikka 2013 Tietojenkäsittelytiede Harjoitus

3D Studio Viz: Valot ja kamerat

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

Luento 7: 3D katselu. Sisältö

Videon tallentaminen Virtual Mapista

Harjoitus Morphing. Ilmeiden luonti

Pohjan ja leikkauksen tekeminen Casa Parrista

T Vuorovaikutteinen tietokonegrafiikka Tentti

2.2. Kohteiden konstruktiivinen avaruusgeometrinen esitys

Osakesalkun optimointi. Anni Halkola Turun yliopisto 2016

Harjoitus Bones ja Skin

Rendaaminen Brazililla

LW LightWorks. 1 Renderoijan perussäädöt. 1.3 LightWorks-tehosteet Menetelmät ja reunantasoitus. 1.1 Sisältö. 1.2 Lightworksin käytön aloitus

Videon tallentaminen Virtual Mapista

MALLIN RENDERÖINTI KUVAKSI TAI VIDEOKSI SOLIDWORKS 2010 VERSIOLLA

10. Esitys ja kuvaus

Ohjeissa pyydetään toisinaan katsomaan koodia esimerkkiprojekteista (esim. Liikkuva_Tausta1). Saat esimerkkiprojektit opettajalta.

PERCIFAL RAKENNETUN TILAN VISUAALINEN ARVIOINTI

Luento 6: Geometrinen mallinnus

3D-VALAISTUKSEN TEKNIIKAT

Malliratkaisut Demot

Digitaalisen arkkitehtuurin alkeet

LightWorks. 1 Renderoijan perussäädöt. 1.1 Sisältö. 1.2 LightWorksin käytön aloitus

Esityksen sisältö. Peruskäsitteitä. 3D Grafiikka tietokonepeleissä. Piirto- ja taustapuskuri

LightWorks. 1 Renderoijan perussäädöt. 1.1 Sisältö. 1.2 LightWorksin käytön aloitus

T Tietokonegrafiikan perusteet. OpenGL-ohjelmointi

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

Matematiikan tukikurssi

Tampereen yliopisto Tietokonegrafiikka 2013 Tietojenkäsittelytiede Harjoitus

SISÄTILAN RENDERÖINNIN OPTIMOINTI ANIMAATIOTA VARTEN 3DS MAX-OHJELMASSA

Teemu Suopelto TIETORAKENTEET JA ALGORITMIT NÄKYVYYSTARKASTELUSSA

Graikka yleisesti tietokonepeleissä

Yleistä vektoreista GeoGebralla

Hannu Mäkiö. kertolasku * jakolasku / potenssiin korotus ^ Syöte Geogebran vastaus

Käyttöliittymän muokkaus

Harjoitus 5 ( )

Talousmatematiikan perusteet: Luento 12. Lineaarinen optimointitehtävä Graafinen ratkaisu Ratkaisu Excel Solverilla

Varjojen laskenta tietokonegrafiikan klassinen ongelma

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

Verkon värittämistä hajautetuilla algoritmeilla

LÄPINÄKYVYYS JA HEIJASTUMINEN MALLINNUKSESSA

Simulointi. Varianssinhallintaa Esimerkki

Luento 2: 2D Katselu. Sisältö

keskenään isomorfiset? (Perustele!) Ratkaisu. Ovat. Tämän näkee indeksoimalla kärjet kuvan osoittamalla tavalla: a 1 b 3 a 5

7.4 PERUSPISTEIDEN SIJAINTI

Harjoitus Particle View

Luento 6: Tulostusprimitiivien toteutus

Luento 2: Viivan toteutus

Luento 7: Lokaalit valaistusmallit

Visuaalinen suunnittelu

KOLMIULOTTEISTEN MALLIEN YLEISVALON VARJOSTUS ILMAN SÄTEENJÄLJITYSTÄ

eli HUOM! - VALEASIAT OVAT AINA NEGATIIVISIA ; a, b, f, r < 0 - KOVERALLE PEILILLE AINA f > 0 - KUPERALLE PEILILLE AINA f < 0

MICROSOFT EXCEL 2010

Lego Mindstorms NXT. OPH oppimisympäristöjen kehittämishanke (C) 2012 Oppimiskeskus Innokas! All Rights Reserved 1

Fotorealistinen 3d-kuva

Cloud rendering. Juho Karppinen 49480E

Demo 1: Simplex-menetelmä

GeoGebra-harjoituksia malu-opettajille

Valojen käyttö 3D-mallinnuksessa: sisätilaympäristön realistinen valaisu

Integrointialgoritmit molekyylidynamiikassa

Posterin teko MS Publisherilla

RATKAISUT: 16. Peilit ja linssit

valo Valokuvauksessa käytettävien valonlähteiden

Geometrinen optiikka. Tasopeili. P = esinepiste P = kuvapiste

Esitystekniikoita ja visualisoinnin workflow

Johdatus verkkoteoriaan 4. luento

Operatiiviset päivät Ohjeita luennoitsijoille AV-tekniikasta

Potentially Visible Set (PVS)

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

Tasogeometriaa GeoGebran piirtoalue ja työvälineet

Spektri- ja signaalianalysaattorit

OpenGL:n perusteet Osa 4: Valot ja varjot

JATKUVUUS. Funktio on jatkuva jos sen kuvaaja voidaan piirtää nostamatta kynää paperista.

Sisällys. 3. Muuttujat ja operaatiot. Muuttujat ja operaatiot. Muuttujat. Operaatiot. Imperatiivinen laskenta. Muuttujat. Esimerkkejä: Operaattorit.

Matematiikan tukikurssi

2 Konekieli, aliohjelmat, keskeytykset

Valon havaitseminen. Näkövirheet ja silmän sairaudet. Silmä Näkö ja optiikka. Taittuminen. Valo. Heijastuminen

Peilaus pisteen ja suoran suhteen Pythonin Turtle moduulilla

Matematiikan tukikurssi

TIE Ohjelmistojen suunnittelu. Luento 2: protot sun muut

T Johdatus Tietoliikenteeseen ja Multimediaan

Kenguru Benjamin (6. ja 7. luokka) ratkaisut sivu 1 / 6

MALLIN RENDERÖINTI KUVAKSI TAI VIDEOKSI SOLIDWORKS 2012 VERSIOLLA

T Johdatus tietoliikenteeseen ja multimediatekniikkaan Tietokonegrafiikka

Tapio Takala / Lauri Savioja Teknillinen korkeakoulu Tietoliikenneohjelmistojen ja multimedian laboratorio

1. Otetaan perusjoukoksi X := {0, 1, 2, 3, 4, 5, 6, 7}. Piirrä seuraaville kolmelle joukolle Venn-diagrammi ja asettele alkiot siihen.

Transkriptio:

Tietokonegrafiikka / perusteet T-111.300/301 4 ov / 2 ov Luento 10: Näkyvyystarkastelut ja varjot Marko Myllymaa / Lauri Savioja 10/04 Näkyvyystarkastelut ja varjot / 1 Näkyvyystarkastelu Solurenderöinti Portaalirenderöinti Quad-/Octtree Varjot Varjotekstuurit Projektiovarjot Varjotilavuudet Sisältö Näkyvyystarkastelut ja varjot / 2 1

Näkyvyystarkastelu Miksi? Maailmat liian suuria Näytönohjaimet ja tietokoneet liian hitaita Voidaan tarkastella vain pientä osaa maailmasta Turha piirtää sellaista mikä ei ole näkyvissä Vaatii yleensä oman tietorakenteen Vaatii myös jonkinverran laskentaa Näkyvyystarkastelut ja varjot / 3 Näkyvyystarkastelu Tarkoituksena löytää mahdollisimman pieni PVS (Potentially Visible Set) PVS sisältää renderöitävät polygonit Saattaa sisältää joitain näkymättömissä olevia polygoneja Jotkin editykselliset algoritmit saattavat parantaa PVS:ää ajan kuluessa, vaikka mikään ei olisi liikkunutkaan Tälläinen on mm. Hybrid Graphics:n dpvs Näkyvyystarkastelut ja varjot / 4 2

Solurenderöinti Jaetaan maailma soluihin Renderöidään nykyinen solu ja sen naapurit Haluttaessa voidaan renderöintialuetta laajentaa Helppo implementoida Sopii parhaiten suljettuihin sisätiloihin Ongelma, jos naapurisolun läpi voi nähdä Näkyvyystarkastelut ja varjot / 5 Solurenderöinti Implementointi Jaetaan maailma soluihin Solujen ei tarvitse olla tasakokoisia, yleensä huonejako on sopiva Määritetään soluille naapuruussuhteet Renderöidään nykyinen solu ja tarvittava määrä muita soluja 1. Renderöi nykyinen solu 2. Renderöi naapurisolut (3. Renderöi naapureiden naapurisolut) Näkyvyystarkastelut ja varjot / 6 3

Portaalirenderöinti Maailma soluissa kuten solurenderöinnissäkin Solujen välillä portaalipolygonit Portaalipolygonia ei piirretä näkyviin Toiseen soluun voi nähdä vain portaalipolygonin läpi eli yleensä ovet ja ikkunat ovat portaalipolygoneja Riittää tarkistaa, onko yhtään portaalipolygonia näkyvissä 1. Renderöin nykyine solu (huone) 2. Näkyykö portaalipolygoneja? 3. Jos näkyy, niin renderöi niiden takana oleva solu ja toista portaalitestaus Näkyvyystarkastelut ja varjot / 7 Portaalirenderöinti Portaalin takana oleva solu voidaan leikata portaalipolygonin reunoihin Tällä voidaan minimoida piirrettävä polygonimäärä Toisaalta sen leikkaaminen aiheuttaa lisää laskentaa Portaaleilla on helppoa tehdä peili Laitetaan vain portaalipolygoni osoittamaan takaisin samaan soluun Peilien kanssa kannattaa olla varovainen, ettei tule päättymätöntä heijastusketjua Yleensä heijastusportaaleissa lisätään laskuria, jolla voidaan rajoittaa rekursiosyvyys johonkin järkevään Remedy:n Max Payne käyttää portaalirenderöintiä Näkyvyystarkastelut ja varjot / 8 4

Quad-/Octtree Maailma voidaan myös jakaa esim. Quadtree:llä osiin Puurakenteesta voidaan piirtää riittävän suuri haara, jolloin voidaan olettaa melko suurella todennäköisyydellä, että piirrettävään näkymään ei jää aukkoja Tämä ei kuitenkaan ole täysin varmaa Mikäli quadtree:tä käytetään esim. törmäystarkistuksiin, niin tällöin on helppo käyttää sitä myös renderöinnin rajoittamiseen Sisätiloissa Quadtree:tä ei kannata käyttää, mutta ulkoilmaan se sopii paremmin Näkyvyystarkastelut ja varjot / 9 Varjot Varjoilla saadaan paljon realistisemman näköistä valaistusta Varjot vaativat aika paljon laskentaa Varjot voidaan laskea monella eri tavalla Varjotekstuurit Projisoidut varjot Varjotilavuudet Näkyvyystarkastelut ja varjot / 10 5

Varjotekstuurit Varjotekstuurit usein staattisia Voidaan myös animoida hahmon animaation mukana Varjotekstuurit nopeita käyttää Resoluutio ei riitä varjojen heittämiseen kauas Jos varjotekstuurin resoluutio riittävän suuri, niin silloin tekstuuri vie liikaa muistia Varjotekstuurit lasketaan yleensä etukäteen, cpu:ta säästämättä, esim. radiositeetilla Näkyvyystarkastelut ja varjot / 11 Projektiovarjot Heittää objektin varjon tasolle Projisoitu kuva blendataan tason väriin Melko nopea Objekti projisoidaan tasolle valon näkökulmasta Objekti projisoidaan tasolle Piirretään mustalla -> varjo Näkyvyystarkastelut ja varjot / 12 6

Projektiovarjot Projisointiin tarvittava projisointimatriisi dot-light[0]*plane.a -light[1]*plane.a -light[2]*plane.a -light[3]*plane.a -light[0]*plane.b dot-light[1]*plane.b -light[2]*plane.b -light[3]*plane.b -light[0]*plane.c -light[1]*plane.c dot-light[2]*plane.c -light[3]*plane.c -light[0]*plane.d -light[1]*plane.d -light[2]*plane.d dot-light[3]*plane.d light = valon sijainti plane = tason yhtälön kertoimet dot = light:n ja plane:n pistetulo Projisoidaan objektin kaikki vertexit Näkyvyystarkastelut ja varjot / 13 Projektiovarjot Projisoinnissa otettava huomioon syvyystesti 1. Varjon voi laittaa hieman erilleen tasosta 2. Syvyystestin voi ottaa pois käytöstä varjojen piirron ajaksi Stencil-puskurilla voidaan rajoittaa varjojen piirtoalue halutulle alueelle tasossa Monta valonlähdettä -> monta projisointia Ongelmia Eivät toimi konkaaveilla objekteilla Ei ole hyvää tapaa heittää varjoa toisen objektin päälle Voidaan tehdä käsittelemällä jokaista polygonia projisoitavana tasona Tasossa olevat heijastukset näkyvät varjon läpi Näkyvyystarkastelut ja varjot / 14 7

Varjotilavuudet Idea: Heitetään viivat valonlähteestä objektin reunojen kautta Näistä luodaan varjotilavuus objektin taakse Kun varjotilavuus on luotu, pitää vielä määritellä mitkä pisteet kuuluvat ko. tilavuuteen Näkyvyystarkastelut ja varjot / 15 Varjotilavuudet Varjotilavuuden luontiin tarvitaan objektin siluetti Siluetti löytyy esim. niin, että sen toisella puolella olevan polygonin normaali osoittaa kohti valoa ja toisella puolella poispäin valosta Pisteen testaus: Heitetään säde katsojasta maailmaan ja lasketaan kuinka monta kertaa se menee tai poistuu varjotilavuudesta Tähän voidaan käyttää stencil-puskuria Näkyvyystarkastelut ja varjot / 16 8

Varjotilavuudet 1. Renderöi maailma normaalisti ambientilla ja emissiivisellä valaistuksella 2. Renderöi varjotilavuudet, disabloi kirjoitus kuvapuskuriin ja syvyyspuskuriin ja kirjoita vain stencil-puskuriin, laske kuinka montaa kertaa mennään varjotilavuuteen sisään (piirrä siis vain etureunat varjoista) 3. Renderöi kuten kohdassa 2., mutta nyt lasketaan poistumiset varjotilavuudesta, eli takareunat ja vähennetään ne stencilistä 4. Renderöi maailma diffuusilla ja heijastusvalaistuksella vain sellaisista kohdista, joissa stencil-puskurissa on nollaa Ongelmia: Hidas, vaatii neljä rendausta Lähempi leikkaustaso voi leikata varjotilavuuden etureunan pois, jolloin varjot saattavat muuttua negatiiveiksi tai ne voivat häipyä kokonaan Näkyvyystarkastelut ja varjot / 17 Varjotilavuudet OpenGL-pseudo implementaatio Draw(ambient); // piirretään maailma ambientilla valolla gldepthmask(gl_false); // disabloidaan z-testi glstencilop(..gl_incr); // lisätään stenciliä glcullface(gl_back); // piirretään vain etureunat DrawShadowVolumes(); glstencilop..(gl_decr); // vähennetään stenciliä glcullface(gl_front); // piirretään takareunat DrawShadowVolumes(); gldepthmask(gl_true); glstencilfunc(gl_equal, 0, 1) // piirretään, jos stencil = 0 Draw(other); // piirretään maailma diffuusilla ja speculaarilla Näkyvyystarkastelut ja varjot / 18 9

Shadow Maps Laske Depth map valosta katsottuna Projisoi katseluavaruuteen Päättele mitkä alueet on varjossa Näkyvyystarkastelut ja varjot / 19 Pehmeät varjot Reaalimaailman varjot lähes aina pehmeitä Tietokoneella raskas tehdä pehmeitä varjoja Säteen seuranta ja radiositeetti ei reaaliaikatekniikoita Viime aikoina ilmaantunut muutamia eri tekniikoita tehdä pehmeitä varjoja yksinkertaisille maailmoille reaaliajassa Objektien siluetteihin voidaan liittää pehmentävä reunus varjojen laskentaa varten Näkyvyystarkastelut ja varjot / 20 10

Säteen seuranta Säteen seurannassa (ray tracing) seurataan ruudusta maailmaan heitettyjä säteitä Säteen osuessa pintaan se heijastuu ja siroaa, materiaalin mukaan Lopullinen väri määräytyy, kun riittävä määrä heijastuksia on tullut tai kun säde on osunut valonlähteeseen Tuloksena realistinen kuva ja pehmeät varjot Näkyvyystarkastelut ja varjot / 21 Radiositeetti Radiositeettilaskennalla saavutetaan täydelliset varjot ideaalissa diffuusissa tapauksessa Vaatii paljon laskenta-aikaa, ei reaaliaikatekniikkaa Lasketaan pinnoilta toisille heijastuvia valoja Saadaan pehmeät varjot ja muutenkin realistinen kuva Näkyvyystarkastelut ja varjot / 22 11