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



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

T Johdatus tietoliikenteeseen ja multimediatekniikkaan Tietokonegrafiikka

Tilanhallintatekniikat

T Vuorovaikutteinen tietokonegrafiikka Tentti

Luento 6: Piilopinnat ja Näkyvyys

Luento 3: 3D katselu. Sisältö

Videon tallentaminen Virtual Mapista

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

Tampereen yliopisto Tietokonegrafiikka 2013 Tietojenkäsittelytiede Harjoitus

Paretoratkaisujen visualisointi. Optimointiopin seminaari / Kevät 2000 Esitelmä 11 Petteri Kekäläinen 45305L

Luku 10: Testaus ja optimointi. Pelien testaus Testityyppejä Suorituskyvyn analysointi Optimointikikkoja Grafiikkaliukuhihnan optimointi

Luento 7: Lokaalit valaistusmallit

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

Symmetrioiden tutkiminen GeoGebran avulla

Luento 4: Näkyvyystarkastelut ja varjot

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

3D-Maailman tuottaminen

Visualisoinnin perusteet

Mobiilitulostus-/- skannausopas Brother iprint&scanille (Android )

Muita kuvankäsittelyohjelmia on mm. Paint Shop Pro, Photoshop Elements, Microsoft Office Picture Manager

Reaaliaikainen karvapeitteen piirtäminen näytönohjaimella

Tampereen yliopisto Tietokonegrafiikka 2013 Tietojenkäsittelytiede Harjoitus

Tietokonegrafiikan kertausta eli mitä jokaisen animaattorin tulisi tietää tekniikasta

Kenguru 2016 Student lukiosarja

T Johdatus Tietoliikenteeseen ja Multimediaan

Reaaliaikaiset varjoalgoritmit. Atso Kauppinen

TIES471 Reaaliaikainen renderöinti

Luku 6. Dynaaminen ohjelmointi. 6.1 Funktion muisti

Kenguru 2013 Cadet (8. ja 9. luokka)

Digikuvan peruskäsittelyn. sittelyn työnkulku. Soukan Kamerat Soukan Kamerat/SV

Sarjakuva-

Teknillinen korkeakoulu T Tietojenkäsittelyopin ohjelmatyö. Testitapaukset - Koordinaattieditori

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

Hyvästä kuvasta hyvään kollaasiin. Siilinjärvi ja Hannu Räisänen

Pienoismallien rakentaminen Linnanmäen laitteista

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

T Tietojenkäsittelyopin ohjelmatyö

Yksinkertaistaminen normaalitekstuureiksi

TOMI LAMMINSAARI 3D-MAAILMAN KAMERAN OHJAAMINEN KASVOJEN PAIKANNUKSEN AVULLA. Diplomityö

Luento 6: Tulostusprimitiivien toteutus

Tämän värilaatuoppaan tarkoitus on selittää, miten tulostimen toimintoja voidaan käyttää väritulosteiden säätämiseen ja mukauttamiseen.

Videon tallentaminen Virtual Mapista

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

5. Grafiikkaliukuhihna: (1) geometriset operaatiot

10. Esitys ja kuvaus

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

Kuvan pienentäminen Paint.NET-kuvankäsittelyohjelmalla

TIES471 Reaaliaikainen renderöinti

Tasohyppelypeli. Piirrä grafiikat. Toteuta pelihahmon putoaminen ja alustalle jääminen:

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

4. Varastossa on 24, 23, 17 ja 16 kg:n säkkejä. Miten voidaan toimittaa täsmälleen 100 kg:n tilaus avaamatta yhtään säkkiä?

Venekilpailu! Esteiden väistely ja hahmon ohjaaminen

TIES530 TIES530. Moniprosessorijärjestelmät. Moniprosessorijärjestelmät. Miksi moniprosessorijärjestelmä?

LEHDISTÖTIEDOTE. Nikon tuo markkinoille uuden sukupolven. kuvankäsittelyohjelmiston. Capture NX2: entistä tehokkaampi ja helppokäyttöisempi

Lieriö ja särmiö Tarkastellaan pintaa, joka syntyy, kun tasoa T leikkaava suora s liikkuu suuntansa

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

Kenguru 2012 Junior sivu 1 / 8 (lukion 1. vuosi)

Planssit (layouts) ja printtaus

Rakennusten elinkaarimittareiden verkkotyökalun käyttöohje.

GPS Miten opin käyttämään? Mihin käytän?

3. Kuvio taitetaan kuutioksi. Mikä on suurin samaa kärkeä ympäröivillä kolmella sivutahkolla olevien lukujen tulo?

3D-grafiikkamoottorin toteutus

T Johdatus tietoliikenteeseen ja multimediatekniikkaan Tietokonegrafiikka

Peilaus pisteen ja suoran suhteen Pythonin Turtle moduulilla

Tapio Takala / Lauri Savioja Teknillinen korkeakoulu Tietoliikenneohjelmistojen ja multimedian laboratorio

/X.WXWNLHOPD 5HDDOLDLNDLVHWYDUMRWMD YDUMRVlUPL DOJRULWPL

Merkkijono on palindromi, jos se säilyy samana, vaikka sen kääntää väärinpäin.

Kenguru 2012 Cadet (8. ja 9. luokka)

Tehtävä Vastaus

Integrointi ja sovellukset

Datatähti 2019 loppu

EU-rikollisia koskevien tietojen laadun parantaminen

Opetusmateriaali. Fermat'n periaatteen esittely

3D-PELIMOOTTORIN TOTEUTUS. CASE: Project Cactus

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

10. Globaali valaistus

TIES471 Reaaliaikainen renderöinti

Kenguru 2013 Ecolier sivu 1 / 6 (4. ja 5. luokka) yhteistyössä Pakilan ala-asteen kanssa

HARJOITUS 1 SUUNNITTELUMALLI

XXIII Keski-Suomen lukiolaisten matematiikkakilpailu , tehtävien ratkaisut

Online-kurssien pikaopas Adobe Connect -yhteyden käyttämiseen

Projektisuunnitelma. Projektin tavoitteet

TULOSTAMINEN INDESIGN OHJELMASTA. IntelliStream 2.0 -versio

Esimerkiksi jos käytössä ovat kirjaimet FFII, mahdolliset nimet ovat FIFI ja IFIF. Näistä aakkosjärjestykssä ensimmäinen nimi on FIFI.

HD CAR DVR PERUUTUSPEILI + KAMERA KÄYTTÖOHJE

Luento 2 Stereokuvan laskeminen Maa Fotogrammetrian perusteet 1

Graikka yleisesti tietokonepeleissä

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

Aloitusohje versiolle 4.0

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

KAMERA VIDEOKAMERA - GALLERIA

Peilatun kuvion ominaisuudet

Määrätty integraali. Markus Helén. Mäntän lukio

Facebook-sivun luominen

Turun seitsemäsluokkalaisten matematiikkakilpailu Ratkaisuita

KOTITEKOINEN PALOSAMMUTIN (OSA 1)

Oppimateriaali oppilaalle ja opettajalle : GeoGebra oppilaan työkaluna ylioppilaskirjoituksissa 2016 versio 0.8

Puzzle SM Pistelasku

Kolmion kulmien summa. Maria Sukura

Osa 7: Hahmojen ohjelmointi ja hienosäätö

Transkriptio:

2D-grafiikka 3D-liukuhihna Epäsuora valaistus Laskostuminen Mobiililaitteet Sisätilat Ulkotilat

2D-piirto 2-ulotteisen grafiikan piirto perustuu yleensä valmiiden kuvien kopioimiseen näyttömuistiin (blitting) esim. iso taustakuva piirretään jokaisen ruudun pohjalle ja sen jälkeen silmukassa pelin objekteja esittävät kuvat (spritet) spritet nelikulmaisia mutta osin läpinäkyviä spritejä voi siirtää, skaalata, kiertää nykyisillä 3D-rajapinnoilla teksturoitu nelikulmio Kun kuva on valmis, vaihdetaan piirtopuskuri näkyviin ja piirretään alusta uudelleen

2D-piirto Objektien animointi piirtämällä etukäteen useita versioita ja valitsemalla niistä sopiva yleensä tallennetaan yhteen kuvaan saman objektin kaikki versiot Tile-based: pelimaailma rakennetaan monesti toistuvista palasista, joita piirretään säännölliseen ristikkoon toimii myös 2.5D:ssä, kun piirretään takaa eteen yhteensovittaminen työlästä, kombinatorinen räjähdys kerrostaminen auttaa jonkin verran

3D: grafiikkaliukuhihna 3d-grafiikan piirto tapahtuu liukuhihnamallin (pipeline) mukaisesti. Piirrettävä data kulkee useiden peräkkäisten vaiheiden läpi ennen ruudulle piirtoa Eri vaiheet rinnakkaistetaan nopeuden saavuttamiseksi Pullonkaula määrää koko liukuhihnan nopeuden Liukuhihnassa kiinteitä ja sävyttimillä ohjelmoitavia vaihteita

Sovellusvaihe Liukuhihnan sovellusvaihe: Luetaan/luodaan mallit, kootaan piirrettävä data maailmankoordinaatistoon Karsinta, level of detail ja muut optimoinnit Voidaan tehdä myös osin myöhemmin sävyttimillä Lähetetään piirrettäväksi Muuttumattomasta datasta vain piirtokäsky Nykyraudalla olennaista minimoida API-kutsut ja piirtoraudan tilanvaihdokset Batching, piirtojärjestys

Geometriavaihe Liukuhihnan geometriavaihe: GPU tekee työn Verteksisävyttimillä: Siirrytään katsojan koordinaatistoon, jossa usein lasketaan vektoreita esim. valaistukseen Projektio Geometriasävyttimillä: Muunnetut kulmapisteet muutetaan sopivaksi määräksi kolmioita (tessellointi) Kiinteässä vaiheessa leikkaus ja valmistelu rasterointiin

Rasterointivaihe Liukuhihnan rasterointivaihe: Kiinteä vaihe kutsuu kullekin syntyvälle pikseliehdokkaalle pikselisävytintä interpoloiduin vektoriarvoin Lasketaan pikselin väri tekstuurien ja valaistusmallin avulla Z-puskuri (ja muut kiinteän vaiheen testit) ennen tai jälkeen pikselisävyttimen ajamisen Päivitetään videopuskuria

Geometriasävyttimet Geometriasävyttimet ottavat sisään yhden verteksisävyttimellä muokatun primitiivin pisteet ja siihen liittyvät muut tiedot Tuottavat mahdollisesti useampia monikulmioita Tesselloinnissa voidaan esim. antaa sisään vain pieni määrä ohjauspisteitä ja GS tuottaa sopivan määrän monikulmioita niiden pohjalta näin voidaan toteuttaa esim. LoD Myös varjoalueet voidaan luoda GS:llä

Epäsuora valaistus Realistinen grafiikka vaatii nykyään epäsuoran valaistuksen ottamista huomioon perinteinen tapa: ambientti termi 2000-luvulla: esilasketut valokartat tekstuureissa, varjokartat 2010-luku: dynaamiset ympäristöt estävät staattisten valokarttojen käytön Reaaliaikainen radiositeetti (esim. Frostbite 2) SSAO (screen-space ambient occlusion) Erilaiset 3d-ruudukkoa käyttävät menetelmät esim. Voxel Cone Tracing (Unreal Engine 4)

Varjot Yleensä käytössä varjokartat (shadow maps) piirretään z-puskuri valonlähteen näkökulmasta joss tarkasteltava fragmentti kauempana valosta kuin puskurin lähin este, se on varjossa lisäksi monia laajennoksia ja parannuksia jaettu (cascaded) varjokartta parantaa laatua eri puskurit eri etäisyyksille, resoluutio vaihtelee erilaiset suodatukset pehmeiden varjojen aikaansaamiseksi tekniikasta paljon erilaisia variaatioita

Viivästetty piirtäminen Monet nykyiset enginet käyttävät viivästettyä sävytystä (deferred shading) piirretään ensin geometria ruudun kokoiseen g- puskuriin normaalia z-puskuria käyttäen g-puskuriin laitetaan kaikki tieto, jota värin laskemiseen tarvitaan piirretään ruudun kokoinen neliö pikselin väri lasketaan g-puskurin perusteella tarvitsee ajaa fragmenttisävytin vain kerran/pikseli kukin valo vaikuttaa vain osaan ruudusta voidaan piirtää kutakin kohti monikulmio, jonka sisään valon frustumi jää

Laskostuminen Laskostuminen (aliasing) iso ongelma Useita ratkaisuja (*AA), esim.: FSAA (full screen): koko kuva tarkemmin + blur MSAA (multi-sample): hajanainen termi; kuin FSAA mutta hyödynnetään tulokset moneen pikseliin tai ylinäytteistetään vain Z/stencil MLAA (morphological): etsitään L:n muotoisia reunoja lopullisesta kuvasta; oletetaan että ne ovat syntyneet kolmioista ja pehmitetään vastaavasti Lisäksi temporal aliasing, ottaa ajan huomioon

Screen space -temput Muotia on tehdä monenlaisia efektejä näyttökoordinaatistossa (screen space, SS) Usein hyödynnetään kuvaa ja z-puskuria Näyttäviä efektejä halvalla, esim: MLAA edellä SSAO (SS Ambient Occlusion), SSDO SS self-shadowing (CryEngine) SS shadow mapping SS subsurface scattering

Uudelleenprojisointi Tallennetaan edellisen kuvan kameramatriisi Nyt voidaan laskea, missä kohtaa ruutua annettu fragmentti sijaitsi edellisessä kuvassa Voidaan hyödyntää edellistä kuvaa: jopa väri suoraan sieltä Liike-epäterävyys: lasketaan tämän perusteella fragmentin nopeus ruudulla; sumennetaan sen mukaan (suunta + mitä nopeampi, sitä sumeampi)

Kikkaesimerkki: heijastukset (CryEngine 3)

Mobiililaitteet Monissa mobiililaitteissa käytössä laatikkopohjainen (tile-based) piirto Ruutu jaetaan vakiokokoisiin suorakulmioihin, joista yksi käsitellään kerrallaan nopeassa muistissa Usein viivästetty piirto kaikki monikulmiot ensin talteen, päätellään mitkä näkyvät, pikselisävytin ajetaan vasta lopuksi Verteksi- ja pikselisävyttimet ehkä eri yksiköillä API-kutsujen minimointi kriittistä esim. tilanvaihdot (järjestä materiaalin mukaan)

Mobiililaitteet Iso kirjo erilaisia laitteita (erityisesti Android) näytön resoluutiot epämääräiset ajurit, pakkausstandardit Tasapainoilu CPU/GPU Akun käyttö yhtenä huolenaiheena 32-bit värikanavat usein liikaa Ei aina automaattista gammakorjausta Shaderien generointi eri ympäristöihin tarpeen

Sisä/ulkotilojen tekniikat Tässä kohtaa käsitellään Puhakan kalvoja...

Lisää ulkotiloista Ulkotilojen näkyvyys peittävyyspuskurilla (coverage buffer, CryEngine 3): pohjaksi edellisen kuvan z-puskuri pienennettynä max-suotimella CPU:lla testataan esineiden rajauslaatikko sitä vasten ja hylätään jos ei voi näkyä koska kamera on voinut liikkua, lasketaan missä puskurin pikselit sijaitsevat nyt + sumeutus jos ja kun jää kattamatonta aluetta, kaikki sillä näkyvä joudutaan piirtämään