Renderöinti

**Renderöinti** (sanotaan myös *renderointi*) eli **kuvasynteesi** () tai **hahmonnus** tarkoittaa tiettyjen kappaleiden tai kuvien esittämistä näytöllä. Termi tulee alun perin latinan verbistä *reddo* (myöhemmin *rendo*), joka tarkoitti 'antaa takaisin'. 

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. CAD-renderöinti käyttää yksinkertaista valaistusta ja varjostusta sekä edistyneempiä efektejä. Myös verkkoselainten tekemää HTML:n käsittelyä voidaan kutsua renderöinniksi.

Renderöinti voidaan jakaa myös *[[Reaaliaikaisuus|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.

Renderöinti voi käyttää esimerkiksi kolmiulotteisella mallinnuksella tai proseduraalisella generoinnilla muodostettua tietoa, joka renderöidään esitettäväksi.
Renderöinti voi käyttää *epätäydellistä tietoa* esimerkiksi fotogrammetriasta kuvapohjaiseen renderöintiin (, IBR).

## Kolmiulotteisessa grafiikassa

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. Elokuvissa käytetään 24 kuvaa sekunnissa, yhden kuvan ollessa  kertaa  pikseliä 32- tai 64-bittisellä värisyvyydellä.

Renderöintimenetelmiin kuuluvat muun muassa rasterointi (), säteensuuntaus () ja säteenseuranta ().
Myös pyyhkäisyviivarenderöintiä () on käytetty. Polunseuranta () on eräs kehittynyt menetelmä.

Cel-shading pyrkii tuottaamaan piirrosanimaation näköistä jälkeä 3D-grafiikan avulla. Fysiikkaperusteinen renderöinti (PBR) on kehitysaskel, joka eroaa perinteisistä renderöintitekniikoista.

Kolmiulotteinen renderöinti on kehittynyt useiden vuosikymmenien aikana ohjelmistojen ja laitteiden kehittyessä kattamaan sekä reaaliaikaisen että *offline*-renderöinnin.

Grafiikkaliukuhihnassa () kolmiulotteisen grafiikan renderöinnissä useimmat toiminnot suoritetaan ennen rasterointia. 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. Syötteitä ovat kolmiulotteisen mallin ja sen ympäristön lisäksi virtuaalisen kameran näyttöalueen parametrit. Vain suoraan näytöllä esitettävät primitiivit tarvitsee välittää rasteroinnille, ja leikkausvaihe () karsii piiloon jäävät pois.

Erilaisia liukuhihnoja on kehitetty useita ja muun muassa elokuvateollisuudessa käytetään yleisimmin *mikropolygoneihin* perustuvaa ratkaisua. Akateemisessa tutkimuksessa käytetään usein säteenseurantaan perustuvaa liukuhihnaa.
Ohjelmoitavat liukuhihnat grafiikkasuorittimissa ovat korvanneet kiinteätoimiset liukuhihnat ja viimeinen kiinteätoiminen oli luultavasti Nintendo Wiissä.
Erilaiset shader-ohjelmat ovat pääasiallinen tapa ohjata grafiikkasuoritinta: osa toiminnoista on konfiguroitavia (ei ohjelmoitavia) suorituskykysyistä, mutta trendi on kohti ohjelmoitavuutta.

## Kaksiulotteisessa grafiikassa
Kaksiulotteisessa grafiikassa renderöintiä käytetään esimerkiksi vektorigrafiikan esittämiseen ja käytetyt menetelmät voivat hyödyntää grafiikkaprosessoria.
Tekstin esittämiseen on myös tarkoitukseen erikoistuneita ohjelmistoja.

## Ohjelmistot
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.
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.

## Välitön ja pidätelty renderöinti
Grafiikkarajapinnat käyttävät yleisesti joko *välitöntä* () tai *pidäteltyä* *"säilöttyä"* () renderöintimoodia. Välittömässä moodissa sovellus antaa suoraan piirtokomentoja, ja pidätellyssä annetut komennot kootaan muistiin ennen varsinaista piirtämistä. 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.

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

## Katso myös
* Kolmiulotteinen mallinnus
* Cel-shading
* CGI (grafiikka)
* Radiositeetti
* Fysiikkaperusteinen renderöinti
* Volumetrinen renderöinti
* Pyyhkäisyviivarenderöinti
* Teksturointi
* Piilotetun pinnan poisto
* Shader-ohjelma

## Lähteet

## Kirjallisuutta
* Foley; Van Dam; Feiner; Hughes (1990). *Computer Graphics: Principles And Practice*. Addison Wesley. .
* Glassner (1995). *Principles Of Digital Image Synthesis*. Morgan Kaufmann. .
* Pharr; Humphreys (2004). *Physically Based Rendering*. Morgan Kaufmann. .
* Dutre; Bala; Bekaert (2002). *Advanced Global Illumination*. AK Peters. .
* Jensen (2001). *Realistic Image Synthesis Using Photon Mapping*. AK Peters. .
* Shirley; Morley (2003). *Realistic Ray Tracing* (2nd ed.). AK Peters. .
* Glassner (1989). *An Introduction To Ray Tracing*. Academic Press. .
* Cohen; Wallace (1993). *Radiosity and Realistic Image Synthesis*. AP Professional. .
* Akenine-Moller; Haines (2002). *Real-time Rendering* (2nd ed.). AK Peters. .
* Gooch; Gooch (2001). *Non-Photorealistic Rendering*. AKPeters. .
* Strothotte; Schlechtweg (2002). *Non-Photorealistic Computer Graphics*. Morgan Kaufmann. .
* Blinn (1996). *Jim Blinns Corner – A Trip Down The Graphics Pipeline*. Morgan Kaufmann. .

## Aiheesta muualla
* 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