Tolkning

Återgivning eller ritning ( eng.  rendering-  " visualisering ") är en term i datorgrafik , som betecknar processen att erhålla en bild från en modell med hjälp av ett datorprogram .

Här är en modell  en beskrivning av alla objekt eller fenomen i ett strikt definierat språk eller i form av en datastruktur. En sådan beskrivning kan innehålla geometriska data, positionen för observatörens punkt, information om belysning, graden av närvaro av något ämne, styrkan på det fysiska fältet etc.

Ett exempel på visualisering är radarrymdbilder , som representerar i form av bilddata som erhållits med hjälp av radarskanning av ytan på en rymdkropp, inom området för elektromagnetiska vågor som är osynliga för det mänskliga ögat.

Ofta i datorgrafik (konstnärlig och teknisk) förstås rendering ( 3D-rendering ) som skapandet av en platt bild - en digital rasterbild - baserat på en utvecklad 3D-scen. En synonym i detta sammanhang är visualisering .

Visualisering är en av de viktigaste grenarna inom datorgrafik, och i praktiken är den nära besläktad med de andra. Vanligtvis inkluderar programvarupaket för 3D-modellering och animering också en renderingsfunktion. Det finns separata mjukvaruprodukter som utför rendering.

Beroende på syftet särskiljs rendering som en ganska långsam renderingsprocess, som främst används när man skapar video, till exempel i Vegas Pro , och rendering i realtid, till exempel i datorspel . Den senare använder ofta 3D-acceleratorer .

Ett datorprogram som renderar kallas renderare ( eng.  render ) eller renderer ( eng.  renderer ).

Grundläggande termer i renderingspraxis

Bildåtergivning kan karakteriseras i termer av ett antal synliga egenskaper. Forskning och utveckling inom rendering initieras till stor del för att hitta sätt att tillämpa dem effektivt. Vissa relaterar direkt till specifika algoritmer och metoder, medan andra kompletterar varandra.

Återgivningsmetoder (visualisering)

Hittills har många visualiseringsalgoritmer utvecklats. Befintlig programvara kan använda flera algoritmer för att producera den slutliga bilden.

Att spåra varje ljusstråle i en scen är opraktiskt och tar oacceptabelt lång tid. Även att spåra ett litet antal strålar, tillräckligt för att få en bild, tar överdrivet lång tid om approximation ( sampling ) inte tillämpas.

Som ett resultat har fyra grupper av metoder utvecklats som är mer effektiva än att simulera alla ljusstrålar som lyser upp scenen:

Avancerad programvara kombinerar vanligtvis flera tekniker för att få en tillräckligt högkvalitativ och fotorealistisk bild för en acceptabel mängd datorresurser.

Återgivning och rasterisering

Högnivårepresentationen av en bild innehåller nödvändigtvis andra element än pixlar. Dessa element kallas primitiver. Till exempel i en schematisk ritning kan linjer och kurvor vara primitiva. I ett grafiskt användargränssnitt kan fönster och knappar vara primitiva. När du renderar 3D-modeller kan trianglar och polygoner i rymden vara primitiva.

I fall där en pixel-för-pixel (bildåtergivning) tillvägagångssätt för rendering inte är genomförbar eller för långsam för en given uppgift, kan en primitiv-för-primitiv (objektåtergivning) tillvägagångssätt för rendering vara användbar.

Här tittar varje bana på var och en av primitiverna, och som ett resultat avgör den vilka pixlar i bilden den påverkar, och dessa pixlar modifieras därefter. Detta kallas rastrering och denna renderingsmetod används av alla moderna grafikkort .

Rasterisering är ofta snabbare än pixelrendering. För det första kan stora delar av bilden vara tomma på grund av primitiver; rastrering ignorerar dessa områden, men pixelrendering måste gå igenom dem. För det andra kan rastrering förbättra cachens koherens och minska overhead genom att utnyttja det faktum att pixlar som upptas av samma primitiva tenderar att vara sammanhängande i en bild. Av dessa skäl är rastrering vanligtvis det lämpliga valet när interaktiv rendering krävs; Men pixelrenderingsmetoden ger ofta bilder av högre kvalitet och är mer mångsidig eftersom den inte beror på så många bildantaganden som rastrering.

Den gamla formen av rasterisering kännetecknas av att det primitiva återges som en enda färg. Alternativt kan rastrering göras på ett mer sofistikerat sätt, genom att först återge hörn på ett ansikte och sedan återge pixlarna i det ansiktet som en blandning av vertexfärger. Denna version av rastrering har gått om den gamla metoden som används eftersom den tillåter grafik att flyta utan komplexa texturer (en rastrerad bild tenderar att ha effekten att om vi har att göra med enkla texturer är kanterna inte släta eftersom det inte sker någon gradvis färgförändring från en primitiv till en annan). Denna rasteriseringsmetod använder mer komplexa skuggningsfunktioner och ger fortfarande bättre prestanda eftersom enklare texturer i minnet tar upp mindre utrymme. Ibland använder designers en rasteriseringsmetod på vissa ytor och en annan metod på andra, baserat på vinkeln med vilken den ytan möter andra anslutna ytor, vilket ökar hastigheten utan att påverka den totala effekten.

Raycasting

Vid strålkastning analyseras geometrin som har modellerats pixel-för-pixel, rad-för-linje, från betraktarens synvinkel utåt, som om strålar kastades från synvinkeln. Vid den punkt där objektet skär kan färgvärdet uppskattas med flera metoder. I det enklaste fallet blir färgvärdet för objektet vid skärningspunkten värdet för den pixeln. Färg kan bestämmas från texturkartan. En mer sofistikerad metod är att ändra färgvärdet med hjälp av ljusfaktorn, men utan att beräkna förhållandet till den simulerade ljuskällan. För att minska felaktigheter kan medelvärdet av antalet flerriktade strålar beräknas.

Strålkastning innebär att beräkna en "vyriktning" (från kamerapositionen) och gradvis följa denna "strålkastning" genom "fasta 3D-objekt" i scenen, samtidigt som det resulterande värdet ackumuleras från varje punkt i 3D-rymden. Detta är relaterat till och liknar "ray tracing", förutom att transmissionen vanligtvis inte "reflekteras" från ytor (där "ray tracing" indikerar att den följer ljusets väg, inklusive studsar). Strålkastning innebär att ljusstrålen följer en rak bana (vilket kan innefatta att passera genom genomskinliga föremål). Raycasting är en vektor som kan komma från kameran eller från scenens slutpunkt ("från fram till bak" eller "bak till fram"). Ibland härleds det slutliga ljusvärdet från "överföringsfunktionen", och ibland används det direkt.

Grov modellering av optiska egenskaper kan dessutom användas: en enkel beräkning av strålen från objektet till observationspunkten görs. En annan beräkningsmetod utförs för infallsvinkeln för ljusstrålar från ljuskällan/ljuskällorna, sedan beräknas pixelvärdet från dem, såväl som från de indikerade intensiteterna för ljuskällorna. Belysning används också i en annan modelleringsmetod som återger strålningsalgoritmen, eller en kombination av de två.

Matematisk motivering

Implementeringen av renderingsmotorn är alltid baserad på den fysiska modellen. De utförda beräkningarna avser en eller annan fysisk eller abstrakt modell. Huvudidéerna är lätta att förstå men svåra att tillämpa. Som regel är den slutliga eleganta lösningen eller algoritmen mer komplex och innehåller en kombination av olika tekniker.

Grundläggande ekvation

Nyckeln till den teoretiska grunden för renderingsmodeller är renderingsekvationen. Det är den mest kompletta formella beskrivningen av den del av renderingen som inte är relaterad till uppfattningen av den slutliga bilden. Alla modeller representerar någon ungefärlig lösning av denna ekvation.

Den informella tolkningen är följande: Mängden ljusstrålning (L o ) som kommer från en viss punkt i en viss riktning är dess egen strålning och reflekterad strålning. Den reflekterade strålningen är summan av den inkommande strålningen i alla riktningar (Li ) , multiplicerad med reflektionskoefficienten från den givna vinkeln. Genom att kombinera det inkommande ljuset med det utgående ljuset vid en punkt i en ekvation, utgör denna ekvation en beskrivning av hela ljusflödet i ett givet system.

Jämförelsetabell för renderaregenskaper

RenderMan mental stråle YafaRay V-Ray finalRender Brasilien R/S Sköldpadda Maxwell Render Fryrender Indigo Renderer LuxRender Kerkythea Gelato (utveckling avbruten)
kompatibel med 3ds Max Ja, via MaxMan inbyggd Inte Ja Ja Ja Inte Ja Ja Ja Ja Ja Ja
kompatibel med Maya Ja, via RenderMan Artist Tools inbyggd Inte Ja Ja Inte Ja Ja Ja Ja Ja Ja
kompatibel med Softimage Ja, via XSIMan inbyggd Inte Ja Inte Inte Inte Ja Ja Ja Ja Inte
Kompatibel med Houdini Ja Ja Inte Inte Inte Inte Inte Inte Ja Ja Inte Inte
kompatibel med LightWave Inte Inte Inte Inte Inte Inte Inte Ja Ja Inte Inte Inte
kompatibel med Blender Ja Inte Ja Ja Inte Inte Inte Inte Inte Ja Ja Ja Inte
kompatibel med SketchUp Inte Inte Inte Ja Inte Inte Inte Ja Ja Ja Ja Ja Inte
kompatibel med Cinema 4D Ja (från och med version 11) Ja Inte Ja Ja Inte Inte Ja Ja Ja Ja nej, frusen Inte
plattform Microsoft Windows , Linux , Mac OS X Microsoft Windows , Mac OS X Microsoft Windows , Linux , Mac OS X
modellens fysiska korrekthet Inte Inte Inte Inte Inte Inte Inte Ja Ja Ja Ja Inte
skanna linje Ja Ja Inte Inte Inte Inte Inte Inte Inte Inte Inte Inte Ja
raytrace väldigt långsam Ja Ja Ja Ja Ja Ja Inte Inte Inte Inte Ja Ja
Global Illumination algoritmer eller dina egna algoritmer Photon, Final Gather (Quasi-Montecarlo) Fotonkarta, sökväg, dubbelriktad, SPPM Light Cache, Photon Map, Irradians Map, Brute Force (Quasi-Montecarlo) Hyper Global Illumination, Adaptiv Quasi-Montecarlo, Bild, Quasi Monte-Carlo Quasi-Montecarlo, PhotonMapping Fotonkarta, Final Gather Metropolis lätta transporter Metropolis lätta transporter Metropolis lätta transporter Metropolis lätt transport, dubbelriktad vägspårning
Kamera – skärpedjup (DOF) Ja Ja Ja Ja Ja Ja Ja Ja Ja Ja Ja Ja Ja
Kamera - Rörelseoskärpa (vektorpass) väldigt snabbt Ja Ja Ja Ja Ja Ja Ja Ja Ja Ja snabbt
förflyttning snabbt Ja Ja långsam, 2d och 3d långsam Inte snabbt Ja Ja Ja Ja snabbt
Områdesljus Ja Ja Ja Ja Ja Ja Ja Ja Ja Ja Ja
Glänsande reflektera/bryta Ja Ja Ja Ja Ja Ja Ja Ja Ja Ja Ja Ja Ja
Subsurface Scattering (SSS) Ja Ja Ja Ja Ja Ja Ja Ja Ja Ja Ja Ja Ja
Fristående Ja Ja Inte 2005 (rå) Inte Inte Inte Ja Ja Ja Ja Ja
Aktuell version 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)

Steg-2 2 4.01 1,61 1,91 1.0.9 v1.5 Kerkythea 2008 Echo 2.2
utgivningsår 1987 1986 2005 2000 2002 2000 2003 2007 (?) 2006 (?) 2006 2015 2008 2003
materialbibliotek Inte 33 Min mentala Ray under utveckling 100+ vray material 30 av. hemsida 113 av. webbplats  (länk ej tillgänglig) Inte 3200+ av. hemsida 110 av. hemsida 80 av. hemsida 61 av. hemsida Inte
baserad på teknik flytande ljus Metropolis lätta transporter
normal kartläggning Ja Ja Ja
IBL/HDRI Belysning Ja Ja Ja Ja
fysisk himmel/sol Ja Ja Ja Ja Ja
officiella webbplats renderman.pixar.com YafaRay.org Arkiverad 27 december 2020 på Wayback Machine vray.com
chaosgroup.com
MaxwellRender.com fryrender.com IndigoRenderer.com LuxRender.net kerkythea.net
producerande land USA Tyskland Korea Bulgarien Tyskland USA Sverige Spanien Spanien USA
kostar $ 3500 195 gratis, LGPL 2.1 800-1385

(beroende på 3D-paket)
tillgängliga utbildningsversioner

1000 735 1500 995 1200 295 € gratis, GNU fri fri
främsta fördelen fri Bakning i hög hastighet (inte särskilt hög kvalitet) Grupper av ljuskällor, vars inverkan på bilden kan justeras direkt under renderingen, olika efterbehandlingseffekter och imitationer av olika fotografiska filmer applicerade i farten;

Gratis och öppen källkod

fri
tillverkarföretag Pixar mentala bilder (sedan 2008 NVIDIA ) YafaRay Kaosgruppen Cebas SplutterFish Belys labb Nästa gräns Feversoft NVIDIA

Kronologi för större publikationer

Anteckningar