Renderöinti
Renderöinti[1] (sanotaan myös renderointi) eli kuvasynteesi[2] (engl. image synthesis) tai hahmonnus[3] tarkoittaa tiettyjen kappaleiden tai kuvien esittämistä näytöllä.[4][5] Termi tulee alun perin latinan verbistä reddo (myöhemmin rendo), joka tarkoitti 'antaa takaisin'[6].
Renderöinnillä voidaan viitata tekstin esittämiseen näytöllä tai esimerkiksi animaation tekemiseen tietokoneella kuten tietokoneanimaatioissa. Renderöintiä käytetään videopeleissä, simuloinnissa, elokuvien ja television erikoistehosteissa ja muotoilun apuna. Renderöintiä käytetään myös videoeditoinnissa, kun halutaan tuottaa efektejä videokuvaan tai luoda sitä. Renderöinti voi pyrkiä fotorealismiin tai ei-fotorealistiseen tulokseen.
Tietokoneavusteissa suunnittelussa (CAD) renderöinti on tietty näkymä kolmiulotteiseen malliin, joka on muutettu realistiseksi kuvaksi.[5] CAD-renderöinti käyttää yksinkertaista valaistusta ja varjostusta sekä edistyneempiä efektejä.[5] Myös verkkoselainten tekemää HTML:n käsittelyä voidaan kutsua renderöinniksi.[5]
Renderöinti voidaan jakaa myös reaaliaikaiseen (mm. tietokone- ja videopelit) ja ei-reaaliaikaiseen (elokuvateollisuus). Reaaliaikaisessa renderöinnissä keskeistä on interaktiivisuus käyttäjän toimien myötä, kun taas elokuvateollisuus voi käyttää renderöntiä filmaamisen sijaan tai sen tukena.[7]
Renderöinti voi käyttää esimerkiksi kolmiulotteisella mallinnuksella[8] tai proseduraalisella generoinnilla[9][10] muodostettua tietoa, joka renderöidään esitettäväksi. Renderöinti voi käyttää epätäydellistä tietoa esimerkiksi fotogrammetriasta kuvapohjaiseen renderöintiin (engl. Image-based rendering, IBR).[11][12]
Kolmiulotteisessa grafiikassa
[muokkaa | muokkaa wikitekstiä]- Pääartikkeli: 3D-grafiikka
Polygonimalli on datasta muodostuva ohjelmallinen kuvaus jostakin kohteesta, usein kolmiulotteisesta sellaisesta. Se voi sisältää tiedot kohteen geometriasta, ja sen yhteydessä käytetään tietoja mm. kohteen katselukulmasta, tekstuurista (pinnan rakenteesta) sekä valaistuksesta. Tuloksena oleva renderöitu kuva on bittikarttagrafiikkaa. Reaaliaikaisessa grafiikassa kuvataajuus on useita kymmeniä kuvia sekunnissa; elokuvateollisuudessa ja muussa ei-reaaliaikaisessa renderöinnissä yhden kuvan renderöintiin voidaan käyttää huomattavasti enemmän aikaa.
Elokuvateollisuudessa (kuten elokuvassa Foodfight) yksittäisen kuvan renderöinti voi vaatia 48:sta 72:een tuntiin aikaa valmistuakseen.[13] Elokuvissa käytetään 24 kuvaa sekunnissa, yhden kuvan ollessa 4 996 kertaa 3 112 pikseliä 32- tai 64-bittisellä värisyvyydellä.[13]
Renderöintimenetelmiin kuuluvat muun muassa rasterointi (engl. rasterization), säteensuuntaus (engl. ray casting) ja säteenseuranta (engl. ray tracing). Myös pyyhkäisyviivarenderöintiä (engl. scanline rendering) on käytetty. Polunseuranta (engl. path tracing) on eräs kehittynyt menetelmä.
Cel-shading pyrkii tuottaamaan piirrosanimaation näköistä jälkeä 3D-grafiikan avulla.[14] Fysiikkaperusteinen renderöinti (PBR) on kehitysaskel, joka eroaa perinteisistä renderöintitekniikoista.[15]
Kolmiulotteinen renderöinti on kehittynyt useiden vuosikymmenien aikana ohjelmistojen ja laitteiden kehittyessä kattamaan sekä reaaliaikaisen että offline-renderöinnin.[16]
Grafiikkaliukuhihnassa (engl. graphics pipeline) kolmiulotteisen grafiikan renderöinnissä useimmat toiminnot suoritetaan ennen rasterointia.[17] Liukuhinan vaiheisiin kuuluvat geometrisen mallin muuttaminen kolmiulotteisen maailman koordinaattijärjestelmään, valaistusyhtälöt vertekseissä, muuttaminen näköavaruuteen, perspektiivin muunnos, leikkaus, muunnos näyttöavaruuteen, rasterointi ja näkyvyyden ratkaisu.[17] Syötteitä ovat kolmiulotteisen mallin ja sen ympäristön lisäksi virtuaalisen kameran näyttöalueen parametrit.[17] Vain suoraan näytöllä esitettävät primitiivit tarvitsee välittää rasteroinnille, ja leikkausvaihe (engl. clipping) karsii piiloon jäävät pois.[18]
Erilaisia liukuhihnoja on kehitetty useita ja muun muassa elokuvateollisuudessa käytetään yleisimmin mikropolygoneihin perustuvaa ratkaisua.[16][19] Akateemisessa tutkimuksessa käytetään usein säteenseurantaan perustuvaa liukuhihnaa.[16] Ohjelmoitavat liukuhihnat grafiikkasuorittimissa ovat korvanneet kiinteätoimiset liukuhihnat ja viimeinen kiinteätoiminen oli luultavasti Nintendo Wiissä.[16] Erilaiset shader-ohjelmat ovat pääasiallinen tapa ohjata grafiikkasuoritinta: osa toiminnoista on konfiguroitavia (ei ohjelmoitavia) suorituskykysyistä, mutta trendi on kohti ohjelmoitavuutta.[20]
Kaksiulotteisessa grafiikassa
[muokkaa | muokkaa wikitekstiä]Kaksiulotteisessa grafiikassa renderöintiä käytetään esimerkiksi vektorigrafiikan esittämiseen ja käytetyt menetelmät voivat hyödyntää grafiikkaprosessoria.[21][22][23][24] Tekstin esittämiseen on myös tarkoitukseen erikoistuneita ohjelmistoja.[25][26]
Ohjelmistot
[muokkaa | muokkaa wikitekstiä]Renderöinti on tyypillisesti osa joko grafiikkaa esittävää ohjelmaa tai sen käyttämää kirjastoa tai käyttöjärjestelmän ominaisuus.
Renderöintiin kuten kuvien tai animaatioiden tekemiseen on lukuisia tarkoitukseen kehitettyjä ohjelmia. Jotkut ohjelmat on integroitu osaksi laajempia mallinnus- ja animaatio-ohjelmia ja jotkut ovat itsenäisiä ohjelmia. Osa ohjelmista on kaupallisia ja osa avoimen lähdekoodin ohjelmistoja.
Animaatioita varten Lucasfilmillä kehitettiin Reyes-ohjelmisto, jonka seuraaja on Pixarin RenderMan.[19][27] Reyesissä laskenta suoritetaan tarkoitukseen luonnollisesti sopivassa koordinaattijärjestelmässä kuten paikallisessa koordinaattijärjestelmässä polygoneja luotaessa ja teksturoitaessa sekä näyttökoordinaateissa näkyvyyden laskennassa.[19]
Välitön ja pidätelty renderöinti
[muokkaa | muokkaa wikitekstiä]Grafiikkarajapinnat käyttävät yleisesti joko välitöntä (engl. immediate mode) tai pidäteltyä "säilöttyä" (engl. retained mode) renderöintimoodia. Välittömässä moodissa sovellus antaa suoraan piirtokomentoja, ja pidätellyssä annetut komennot kootaan muistiin ennen varsinaista piirtämistä.[28] Välittömässä moodissa sovellus ohjaa suoraan milloin näytölle on piirrettävä uudestaan ja pidätellyssä moodissa grafiikkakirjasto voi päätellä piirtotarpeen käyttöliittymän tilan muutoksesta. Käyttöliittymäkirjastot ovat tyypillisiä kohteita pidätellylle moodille ja videopelit tyypillisesti käyttävät välitöntä moodia.[29][30]
Välitöntä moodia käyttävät esimerkiksi Direct3D ja OpenGL, jotka tarjoavat yhteyden grafiikkalaitteiston ominaisuuksiin ja muuttavat laitteistoriippumattomat komennot grafiikkasuorittimen käskyiksi. Keskeinen tekijä välittömässä moodissa on ettei rajapinta säilytä tietoa piirrettävästä tilanteesta, vaan se on kerrottava aina uudelleen. Pidätelty moodi middlewaren avulla on abstraktio, joka voi olla helpompi käyttää.[31]
Katso myös
[muokkaa | muokkaa wikitekstiä]- Kolmiulotteinen mallinnus
- Cel-shading
- CGI (grafiikka)
- Radiositeetti
- Fysiikkaperusteinen renderöinti
- Volumetrinen renderöinti
- Pyyhkäisyviivarenderöinti
- Teksturointi
- Piilotetun pinnan poisto
- Shader-ohjelma
Lähteet
[muokkaa | muokkaa wikitekstiä]- ↑ Boman, Patrik: Realistinen renderöinti aaltodoc.aalto.fi. 20.12.2019.
- ↑ Glassner, Andrew S.: Principles of Digital Image Synthesis, s. xxi. Morgan Kauffmann, 1995. ISBN 1-55860-276-3 Teoksen verkkoversio. (englanniksi)
- ↑ Haku | Tietotekniikan termitalkoot www.tsk.fi. Viitattu 21.4.2019.
- ↑ Akeley, Feiner, Foley, Hughes, Van Dam, McGuire, Sklar: Computer Graphics Principles and Practice, s. 6. (Third Edition) Addison-Wesley, 2014. ISBN 978-0-321-39952-6 (englanniksi)
- ↑ a b c d render pcmag.com. Viitattu 26.12.2020. (englanniksi)
- ↑ render. Wiktionary, 3.2.2022. Artikkelin verkkoversio. (englanti)
- ↑ Real-time and offline 3D rendering: what are the differences? xrsuite.fr. 30.3.2021. Viitattu 8.9.2024. (englanniksi)
- ↑ What is 3D rendering software? autodesk.com. Viitattu 9.9.2024. (englanniksi)
- ↑ Procedural Modeling and Physically Based Rendering for Synthetic Data Generation in Automotive Applications arxiv.org. 17.10.2017. Viitattu 9.9.2024. (englanniksi)
- ↑ Procedural Data planetside.co.uk. Viitattu 9.9.2024. (englanniksi)
- ↑ Image-Based Rendering and Synthesis ieeexplore.ieee.org. doi:10.1109/MSP.2007.905702 Viitattu 9.9.2024. (englanniksi)
- ↑ Deferred neural rendering: image synthesis using neural textures dl.acm.org. doi:10.1145/3306346.3323035 Viitattu 9.9.2024. (englanniksi)
- ↑ a b Robert L Mitchell: Weta: rendering Lord of the Rings digitalartsonline.co.uk. 5.11.2004. Viitattu 1.1.2021. (englanniksi)
- ↑ Cel Shading – Everything You Need To Know okuha.com. Viitattu 17.7.2022. (englanniksi)
- ↑ Marmoset's Jeff Russell Breaks Down the Basic Theory Behind Physically Based Rendering lesterbanks.com. Viitattu 17.7.2022. (englanniksi)
- ↑ a b c d Akenine-Möller, Tomas & Haines, Eric & Hoffman, Naty: Real-Time Rendering, s. 26. (Third Edition) CRC Press, 2008. ISBN 978-1-56881-424-7 (englanniksi)
- ↑ a b c Frédo Durand & Seth Teller: Line Rasterization (PDF) groups.csail.mit.edu. Viitattu 31.12.2020. (englanniksi)
- ↑ Akenine-Möller, Tomas & Haines, Eric & Hoffman, Naty: Real-Time Rendering, s. 19. (Third Edition) CRC Press, 2008. ISBN 978-1-56881-424-7 (englanniksi)
- ↑ a b c Robert L. Cook & Loren Carpenter & Edwin Catmull: The Reyes Image Rendering Architecture (PDF) graphics.pixar.com. Viitattu 31.12.2020. (englanniksi)
- ↑ Akenine-Möller, Tomas & Haines, Eric & Hoffman, Naty: Real-Time Rendering, s. 29. (Third Edition) CRC Press, 2008. ISBN 978-1-56881-424-7 (englanniksi)
- ↑ Random-access rendering of general vector graphics dl.acm.org. 2008. doi:10.1145/1409060.1409088 Viitattu 10.9.2024. (englanniksi)
- ↑ Rendering 2D vector graphics on mobile GPU Devices (PDF) diglib.eg.org. Viitattu 10.9.2024. (englanniksi)
- ↑ Tips & FAQ skia.org. Viitattu 10.9.2024. (englanniksi)
- ↑ ARCHIVED: What are bitmap and vector graphics, and how are they different? kb.iu.edu. Viitattu 10.9.2024. (englanniksi)
- ↑ FreeType FAQ freetype.org. Viitattu 11.9.2024. (englanniksi)
- ↑ Neural Font Rendering arxiv.org. Viitattu 11.9.2024. (englanniksi)
- ↑ Ian Failes: RenderMan at 30: A Visual History vfxvoice.com. Viitattu 29.12.2020. (englanniksi)
- ↑ Retained Mode Versus Immediate Mode learn.microsoft.com. 23.8.2019. Viitattu 8.9.2024. (englanniksi)
- ↑ Immediate Mode vs Retained Mode oandre.gal. Viitattu 8.9.2024. (englanniksi)
- ↑ Sean Barrett: Immediate Mode GUIs (PDF) (sivu 34) ubm-twvideo01.s3.amazonaws.com. Viitattu 8.9.2024. (englanniksi)
- ↑ Akeley, Feiner, Foley, Hughes, Van Dam, McGuire, Sklar: Computer Graphics Principles and Practice, s. 452. (Third Edition) Addison-Wesley, 2014. ISBN 978-0-321-39952-6 (englanniksi)
Kirjallisuutta
[muokkaa | muokkaa wikitekstiä]- Foley; Van Dam; Feiner; Hughes (1990). Computer Graphics: Principles And Practice. Addison Wesley. ISBN 0-201-12110-7.
- Glassner (1995). Principles Of Digital Image Synthesis. Morgan Kaufmann. ISBN 1-55860-276-3.
- Pharr; Humphreys (2004). Physically Based Rendering. Morgan Kaufmann. ISBN 0-12-553180-X.
- Dutre; Bala; Bekaert (2002). Advanced Global Illumination. AK Peters. ISBN 1-56881-177-2.
- Jensen (2001). Realistic Image Synthesis Using Photon Mapping. AK Peters. ISBN 1-56881-147-0.
- Shirley; Morley (2003). Realistic Ray Tracing (2nd ed.). AK Peters. ISBN 1-56881-198-5.
- Glassner (1989). An Introduction To Ray Tracing. Academic Press. ISBN 0-12-286160-4.
- Cohen; Wallace (1993). Radiosity and Realistic Image Synthesis. AP Professional. ISBN 0-12-178270-0.
- Akenine-Moller; Haines (2002). Real-time Rendering (2nd ed.). AK Peters. ISBN 1-56881-182-9.
- Gooch; Gooch (2001). Non-Photorealistic Rendering. AKPeters. ISBN 1-56881-133-0.
- Strothotte; Schlechtweg (2002). Non-Photorealistic Computer Graphics. Morgan Kaufmann. ISBN 1-55860-787-0.
- Blinn (1996). Jim Blinns Corner – A Trip Down The Graphics Pipeline. Morgan Kaufmann. ISBN 1-55860-387-5.
Aiheesta muualla
[muokkaa | muokkaa wikitekstiä]- SIGGRAPH, Association for Computing Machineryn erityisryhmä
- Ray Tracing News Guide
- Real-Time Rendering resources Real-Time Rendering -kirjaan liittyvää lisämateriaalia.
- The RADIANCE Lighting Simulation and Rendering System