Å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 ).
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.
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.
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.
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å.
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.
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.
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) |
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) |
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 |
![]() | |
---|---|
I bibliografiska kataloger |
|