Renderöinti

Renderöinti tai piirtäminen ( eng.  rendering  - " visualisointi ") on termi tietokonegrafiikassa , joka tarkoittaa prosessia, jolla mallista saadaan kuva tietokoneohjelman avulla .

Tässä malli  on kuvaus kaikista objekteista tai ilmiöistä tiukasti määritellyllä kielellä tai tietorakenteen muodossa. Sellainen kuvaus voi sisältää geometrisia tietoja, havainnointipisteen sijaintia, tietoa valaistuksesta, jonkin aineen esiintymisastetta, fyysisen kentän voimakkuutta jne.

Esimerkki visualisoinnista ovat tutka- avaruuskuvat , jotka edustavat avaruuskappaleen pinnan tutkapyyhkäisyllä saadun kuvadatan muodossa ihmissilmälle näkymätöntä sähkömagneettista aaltoa.

Usein tietokonegrafiikassa (taiteellisessa ja teknisessä) renderöinnillä ( 3D-renderöinnillä ) tarkoitetaan litteän kuvan - digitaalisen rasterikuvan - luomista kehitetyn 3D-näkymän perusteella. Synonyymi tässä yhteydessä on visualisointi .

Visualisointi on yksi tärkeimmistä tietokonegrafiikkahaaroista ja käytännössä se liittyy läheisesti muihin. Tyypillisesti 3D-mallinnus- ja animaatioohjelmistopaketit sisältävät myös renderöintitoiminnon. On olemassa erillisiä ohjelmistotuotteita, jotka suorittavat renderöinnin.

Renderöinti erotetaan käyttötarkoituksesta riippuen melko hitaaksi renderöintiprosessiksi, jota käytetään pääasiassa videon luomisessa esimerkiksi Vegas Prossa ja reaaliaikaisessa renderöinnissa esimerkiksi tietokonepeleissä . Jälkimmäinen käyttää usein 3D-kiihdyttimiä .

Renderöivää tietokoneohjelmaa kutsutaan renderöijiksi ( eng.  render ) tai renderöijiksi ( eng.  renderer ).

Renderöintikäytännön perustermit

Kuvantoistoa voidaan luonnehtia useilla näkyvillä piirteillä. Renderöinnin tutkimus- ja kehitystyö käynnistetään suurelta osin niiden tehokkaan soveltamisen löytämiseksi. Jotkut liittyvät suoraan tiettyihin algoritmeihin ja menetelmiin, kun taas toiset täydentävät toisiaan.

Renderöintimenetelmät (visualisointi)

Tähän mennessä on kehitetty monia visualisointialgoritmeja. Olemassa olevat ohjelmistot voivat käyttää useita algoritmeja lopullisen kuvan tuottamiseen.

Jokaisen valonsäteen jäljittäminen kohtauksessa on epäkäytännöllistä ja kestää kohtuuttoman kauan. Jopa pienen määrän säteitä jäljitys, joka riittää kuvan saamiseksi, kestää liian kauan, jos approksimaatiota ( näytteenottoa ) ei käytetä.

Tämän tuloksena on kehitetty neljä menetelmäryhmää, jotka ovat tehokkaampia kuin kaikkien kohtausta valaisevien valonsäteiden simulointi:

Kehittyneissä ohjelmistoissa yleensä yhdistetään useita tekniikoita riittävän laadukkaan ja fotorealistisen kuvan saamiseksi hyväksyttävälle määrälle laskentaresursseja.

Renderöinti ja rasterointi

Kuvan korkean tason esitys sisältää välttämättä muita elementtejä kuin pikseleitä. Näitä elementtejä kutsutaan primitiivisiksi. Esimerkiksi kaaviokuvassa viivat ja käyrät voivat olla primitiivisiä. Graafisessa käyttöliittymässä ikkunat ja painikkeet voivat olla primitiivisiä. 3D-malleja hahmonnettaessa avaruudessa sijaitsevat kolmiot ja polygonit voivat olla primitiivisiä.

Tapauksissa, joissa kuvapisteittäinen (kuvan renderöinti) -lähestymistapa hahmontamiseen ei ole mahdollista tai liian hidas tietylle tehtävälle, primitiivinen primitiiviseltä (objektien renderöinti) lähestymistapa hahmontamiseen voi olla hyödyllinen.

Tässä jokainen polku tarkastelee kutakin primitiiviä, ja sen seurauksena se määrittää, mihin kuvan pikseleihin se vaikuttaa, ja näitä pikseleitä muutetaan vastaavasti. Tätä kutsutaan rasteroinniksi ja tätä renderöintimenetelmää käyttävät kaikki nykyaikaiset näytönohjaimet .

Rasterointi on usein nopeampaa kuin pikselin renderöinti. Ensinnäkin suuret kuvan alueet voivat olla tyhjiä primitiivien vuoksi; rasterointi jättää nämä alueet huomioimatta, mutta pikselin renderöinnin on mentävä niiden läpi. Toiseksi rasterointi voi parantaa välimuistin koherenssia ja vähentää ylimääräistä rasitusta hyödyntämällä sitä tosiasiaa, että saman primitiivin käyttämät pikselit ovat yleensä vierekkäisiä kuvassa. Näistä syistä rasterointi on yleensä sopiva valinta, kun tarvitaan interaktiivista renderöintiä; Pikselihahmonnusmenetelmä tuottaa kuitenkin usein korkealaatuisempia kuvia ja on monipuolisempi, koska se ei riipu niin monesta kuva-oletuksesta kuin rasterointi.

Vanhalle rasteroinnin muodolle on tunnusomaista primitiivisen toisto yksiväriseksi. Vaihtoehtoisesti rasterointi voidaan tehdä hienostuneemmalla tavalla renderöimällä ensin kasvojen kärjet ja renderöimällä sitten kasvojen pikselit kärkivärien sekoitukseksi. Tämä rasterointiversio on ohittanut vanhan käytetyn menetelmän, koska se sallii grafiikan virrata ilman monimutkaisia ​​tekstuureja (rasteroidulla kuvalla on taipumus vaikuttaa siihen, että jos käsittelemme yksinkertaisia ​​tekstuureja, reunat eivät ole sileitä, koska värit eivät muutu asteittain. primitiivistä toiseen). Tämä rasterointimenetelmä käyttää monimutkaisempia varjostustoimintoja ja tarjoaa silti paremman suorituskyvyn, koska yksinkertaisemmat muistissa olevat pintakuviot vievät vähemmän tilaa. Joskus suunnittelijat käyttävät yhtä rasterointimenetelmää joillakin pinnoilla ja toista menetelmää toisilla sen kulman perusteella, jossa kyseiset kasvot kohtaavat muut liitetyt pinnat, mikä lisää nopeutta vaikuttamatta kokonaisvaikutukseen.

Raycasting

Sädelähetyksessä mallinnettua geometriaa analysoidaan pikseli pikseliltä, ​​rivi riviltä, ​​havainnoijan näkökulmasta ulospäin, ikään kuin säteitä heittäisiin näkökulmasta. Kohdassa, jossa kohde leikkaa, väriarvo voidaan arvioida useilla menetelmillä. Yksinkertaisimmassa tapauksessa kohteen väriarvosta leikkauspisteessä tulee kyseisen pikselin arvo. Väri voidaan määrittää tekstuurikartalta. Kehittyneempi menetelmä on muuttaa väriarvoa valokertoimella, mutta ilman suhdetta simuloituun valonlähteeseen. Epätarkkuuksien vähentämiseksi monisuuntaisten säteiden lukumäärästä voidaan laskea keskiarvo.

Säteen casting sisältää "näkymäsuunnan" laskemisen (kameran asennosta) ja tämän "säteen heittämisen" asteittaisen seuraamisen kohtauksen "3D-kiinteiden esineiden" kautta, samalla kun kerätään tuloksena oleva arvo jokaisesta 3D-avaruuden pisteestä. Tämä liittyy "säteenjäljitykseen" ja muistuttaa sitä, paitsi että lähetys ei yleensä "heijastu" pinnoilta (jossa "säteen jäljitys" tarkoittaa, että se seuraa valon polkua, mukaan lukien pomppaukset). Raycasting tarkoittaa, että valonsäde seuraa suoraa polkua (johon voi sisältyä läpikuultavien esineiden läpikulku). Raycasting on vektori, joka voi tulla kamerasta tai kohtauksen päätepisteestä ("edestä taakse" tai "takaa eteen"). Joskus lopullinen valaistusarvo johdetaan "siirtotoiminnosta" ja joskus sitä käytetään suoraan.

Lisäksi voidaan käyttää optisten ominaisuuksien karkeaa mallintamista: suoritetaan yksinkertainen säteen laskenta kohteesta havaintopisteeseen. Toinen laskentamenetelmä suoritetaan valonlähteestä (-lähteistä) tulevan valonsäteiden tulokulmalle, jonka jälkeen niistä sekä valonlähteiden ilmoitetuista intensiteetistä lasketaan pikseliarvo. Valaistusta käytetään myös toisessa mallinnusmenetelmässä, joka toistaa säteilyalgoritmin tai näiden yhdistelmän.

Matemaattinen perustelu

Renderöintimoottorin toteutus perustuu aina fyysiseen malliin. Suoritetut laskelmat viittaavat yhteen tai toiseen fyysiseen tai abstraktiin malliin. Tärkeimmät ideat ovat helposti ymmärrettäviä, mutta vaikeita soveltaa. Yleensä lopullinen tyylikäs ratkaisu tai algoritmi on monimutkaisempi ja sisältää yhdistelmän eri tekniikoita.

Perusyhtälö

Renderöintimallien teoreettisen perustan avain on renderöintiyhtälö. Se on täydellisin muodollinen kuvaus renderöinnin osasta, joka ei liity lopullisen kuvan havaintoon. Kaikki mallit edustavat jotakin tämän yhtälön likimääräistä ratkaisua.

Epävirallinen tulkinta on seuraava: Tietystä pisteestä tiettyyn suuntaan tulevan valosäteilyn määrä (L o ) on sen omaa säteilyä ja heijastuvaa säteilyä. Heijastunut säteily on kaikkiin suuntiin tulevan säteilyn summa (L i ) kerrottuna heijastuskertoimella annetusta kulmasta. Yhdistämällä tuleva valo yhdessä yhtälön pisteessä lähtevään valoon, tämä yhtälö muodostaa kuvauksen koko valovirrasta tietyssä järjestelmässä.

Vertailutaulukko renderöijän ominaisuuksille

RenderMan henkinen säde YafaRay V-Ray lopullinen renderöinti Brasilia R/S Kilpikonna Maxwell Render Fryrender Indigo Renderer LuxRender Kerkythea Gelato (kehitys keskeytetty)
yhteensopiva 3ds Maxin kanssa Kyllä, MaxManin kautta sisäänrakennettu Ei Joo Joo Joo Ei Joo Joo Joo Joo Joo Joo
yhteensopiva Mayan kanssa Kyllä, RenderMan Artist Toolsin kautta sisäänrakennettu Ei Joo Joo Ei Joo Joo Joo Joo Joo Joo
yhteensopiva Softimagen kanssa Kyllä, XSIManin kautta sisäänrakennettu Ei Joo Ei Ei Ei Joo Joo Joo Joo Ei
Yhteensopiva Houdinin kanssa Joo Joo Ei Ei Ei Ei Ei Ei Joo Joo Ei Ei
yhteensopiva LightWaven kanssa Ei Ei Ei Ei Ei Ei Ei Joo Joo Ei Ei Ei
yhteensopiva Blenderin kanssa Joo Ei Joo Joo Ei Ei Ei Ei Ei Joo Joo Joo Ei
yhteensopiva SketchUpin kanssa Ei Ei Ei Joo Ei Ei Ei Joo Joo Joo Joo Joo Ei
yhteensopiva Cinema 4D :n kanssa Kyllä (versiosta 11 alkaen) Joo Ei Joo Joo Ei Ei Joo Joo Joo Joo ei, jäässä Ei
alusta Microsoft Windows , Linux , Mac OS X Microsoft Windows , Mac OS X Microsoft Windows , Linux , Mac OS X
mallin fyysinen oikeellisuus Ei Ei Ei Ei Ei Ei Ei Joo Joo Joo Joo Ei
skannausviiva Joo Joo Ei Ei Ei Ei Ei Ei Ei Ei Ei Ei Joo
raytrace hyvin hidas Joo Joo Joo Joo Joo Joo Ei Ei Ei Ei Joo Joo
Globaalit valaistusalgoritmit tai omat algoritmisi Photon, Final Gather (Quasi-Montecarlo) Fotonikartta, polkujäljitys, kaksisuuntainen, SPPM Light Cache, Photon Map, Irradiance Map, Brute Force (Quasi-Montecarlo) Hyper Global Illumination, Adaptive Quasi-Montecarlo, Image, Quasi Monte-Carlo Quasi-Montecarlo, PhotonMapping Photon Map, lopullinen keräys Metropolis kevyt liikenne Metropolis kevyt liikenne Metropolis kevyt liikenne Metropolis Light Transport, kaksisuuntainen polkujäljitys
Kamera – syväterävyys (DOF) Joo Joo Joo Joo Joo Joo Joo Joo Joo Joo Joo Joo Joo
Kamera - Liikesumennus (vektoripassi) erittäin nopea Joo Joo Joo Joo Joo Joo Joo Joo Joo Joo nopea
siirtymä nopea Joo Joo hidas, 2d ja 3d hidas Ei nopea Joo Joo Joo Joo nopea
Alueen valo Joo Joo Joo Joo Joo Joo Joo Joo Joo Joo Joo
Kiiltävä Heijasta/Taittuu Joo Joo Joo Joo Joo Joo Joo Joo Joo Joo Joo Joo Joo
Subsurface Scattering (SSS) Joo Joo Joo Joo Joo Joo Joo Joo Joo Joo Joo Joo Joo
Itsenäinen Joo Joo Ei 2005 (raaka) Ei Ei Ei Joo Joo Joo Joo Joo
Nykyinen versio 13.5,2,2 3.10 0.1.1 (0.1.2 Beta 5a) 3.6 (3ds Max)

2.0 (Maya)
1.6 (SketchUp)
1.5 (Rhino)

Vaihe-2 2 4.01 1.61 1.91 1.0.9 v1.5 Kerkythea 2008 Echo 2.2
liikkeeseenlaskuvuosi 1987 1986 2005 2000 2002 2000 2003 2007 (?) 2006 (?) 2006 2015 2008 2003
materiaalikirjasto Ei 33 Minun henkinen säteeni kehityksessä 100+ vray materiaalia 30 /. verkkosivusto 113 /. nettisivut  (linkkiä ei ole saatavilla) Ei 3200+ . verkkosivusto 110 /. verkkosivusto 80 /. verkkosivusto 61 /. verkkosivusto Ei
perustuu teknologiaan nestemäinen valo Metropolis kevyt liikenne
normaali kartoitus Joo Joo Joo
IBL/HDRI valaistus Joo Joo Joo Joo
fyysinen taivas/aurinko Joo Joo Joo Joo Joo
virallinen sivusto renderman.pixar.com YafaRay.org Arkistoitu 27. joulukuuta 2020 Wayback Machinessa vray.com
chaosgroup.com
MaxwellRender.com fryrender.com IndigoRenderer.com LuxRender.net kerkythea.net
tuottajamaa USA Saksa Korea Bulgaria Saksa USA Ruotsi Espanja Espanja USA
maksaa $ 3500 195 ilmainen, LGPL 2.1 800-1385

(riippuen 3D-paketista)
koulutusversiot saatavilla

1000 735 1500 995 1200 295 € ilmainen, GNU vapaa vapaa
tärkein etu vapaa Paistaminen suurella nopeudella (ei kovin korkealaatuinen) Valonlähteiden ryhmät, joiden vaikutusta kuvaan voidaan säätää suoraan renderöinnin aikana, erilaisia ​​jälkikäsittelytehosteita ja lennossa levitettävien eri valokuvausfilmien jäljitelmiä;

Ilmainen ja avoimen lähdekoodin ohjelmisto

vapaa
valmistaja yritys Pixar henkiset kuvat (vuodesta 2008 NVIDIA ) YafaRay Chaos ryhmä Cebas SplutterFish Valaise Labs Seuraava raja Feversoft NVIDIA

Tärkeimpien julkaisujen kronologia

Muistiinpanot