3D-rendering är processen att konvertera 3D-modeller till 2D-bilder på en dator . 3D-renderingar kan innehålla fotorealistiska effekter eller icke-fotorealistiska stilar.
Återgivning är den sista processen för att skapa en riktig 2D-bild eller animering från en förberedd scen. Detta kan jämföras med att ta ett foto eller filma en scen efter att ha slutfört installationen i verkligheten [1] . Flera olika och ofta specialiserade bildbehandlingsmetoder har utvecklats . Dessa sträcker sig från uppenbart orealistisk wireframe-rendering, genom polygonbaserad rendering, till mer avancerade tekniker som scanline-rendering, ray tracing och andra. Återgivningen kan ta från bråkdelar av en sekund till flera dagar för en enda bild/bildruta. Generellt sett är olika metoder bättre lämpade för både fotorealistisk rendering och realtidsrendering [2] .
Rendering för interaktiva medier som spel och simuleringar beräknas och renderas i realtid med cirka 20 till 120 bilder per sekund. Med realtidsrendering är målet att visa så mycket information som möjligt som ögat kan bearbeta på en bråkdel av en sekund (t.ex. "i en bildruta": i fallet med en animering på 30 fps spänner en bildruta över en 30:e del av en sekund).
Huvudmålet är att uppnå en så hög grad av fotorealism som möjligt vid en acceptabel lägsta renderingshastighet (vanligtvis 24 bilder per sekund, eftersom detta är det minimum som det mänskliga ögat behöver se för att framgångsrikt skapa illusionen av rörelse). Faktum är att exploateringar kan tillämpas på hur ögat "uppfattar" världen, och som ett resultat är den slutliga bilden som presenteras inte nödvändigtvis en bild av den verkliga världen, utan tillräckligt nära det mänskliga ögat för att tolerera.
Renderingsprogramvara kan simulera visuella effekter som linsreflexer, skärpedjup eller rörelseoskärpa. Dessa är försök att simulera visuella fenomen som härrör från kamerornas och det mänskliga ögats optiska egenskaper. Dessa effekter kan lägga till ett element av realism till en scen, även om effekten bara är en imitation av en kameraartefakt. Detta är den huvudsakliga metoden som används i spel, interaktiva världar och VRML.
Den snabba ökningen av datorernas processorkraft har gjort det möjligt att uppnå allt högre grader av realism även för realtidsrendering, inklusive tekniker som HDR-rendering. Realtidsrendering är ofta polygonal och stöds av datorns GPU [3] .
Animation för icke-interaktiva medier som långfilmer och videor kan ta mycket längre tid [4] . Icke-realtidsrendering gör att du kan använda begränsad processorkraft för att få högre bildkvalitet. Återgivningstider för enskilda bildrutor kan variera från några sekunder till flera dagar för komplexa scener. Återgivna ramar lagras på en hårddisk och överförs sedan till andra media som film eller optisk skiva. Dessa bildrutor renderas sedan sekventiellt med en hög bildhastighet, vanligtvis 24, 25 eller 30 bilder per sekund (fps), för att uppnå illusionen av rörelse.
När målet är fotorealism används metoder som strålspårning, vägspårning, fotonkartläggning eller strålemission. Detta är den huvudsakliga metoden som används i digitala medier och konstverk. Metoder har utvecklats i syfte att simulera andra naturliga effekter såsom ljusets interaktion med olika former av materia. Exempel på sådana metoder inkluderar partikelsystem (som kan simulera regn, rök eller eld), volymetrisk provtagning (för att simulera dimma, damm och andra rumsliga atmosfäriska effekter), kaustik (för att simulera fokusering av ljus av ojämna brytande ytor, som t.ex. ljusa krusningar som ses på botten av en simbassäng) och spridning under ytan (för att simulera reflektion av ljus inuti volymerna av fasta föremål som mänsklig hud).
Visualiseringsprocessen är beräkningsmässigt dyr med tanke på den komplexa mängd fysiska processer som modelleras. Datorns processorkraft har vuxit snabbt under åren, vilket gör att graden av realism gradvis kan ökas. Filmstudior som skapar datoranimationer använder vanligtvis en renderfarm för att skapa bilder i tid. Men den minskande kostnaden för hårdvara gör att det är fullt möjligt att skapa en liten mängd 3D-animationer på en hemdator. Rendering-utgången används ofta som bara en liten del av en komplett filmscen. Många lager av material kan renderas separat och integreras i den slutliga bilden med hjälp av kompositprogram.
Modeller med reflektion/spridning och skuggning används för att beskriva utseendet på en yta. Även om dessa frågor kan verka som problem i sig själva, studeras de nästan uteslutande i samband med visualisering. Modern 3D-datorgrafik är starkt beroende av en förenklad reflektionsmodell som kallas Phong-reflektionsmodellen (inte att förväxla med Phong-skuggning). I ljusets brytning är ett viktigt begrepp brytningsindex; de flesta implementeringar av 3D-programmering använder termen "brytningsindex" (vanligtvis förkortad till IOR) för detta värde.
Skuggning kan delas upp i två distinkta tekniker som ofta studeras oberoende av varandra:
Populära ytskuggningsalgoritmer i 3D-datorgrafik inkluderar:
Reflektion eller spridning är förhållandet mellan inkommande och utgående belysning vid en given punkt. Spridningsbeskrivningar ges vanligtvis i termer av den dubbelriktade spridningsfördelningsfunktionen eller BSDF [5] .
Skuggning avser hur olika typer av spridning är fördelade över en yta (det vill säga vilken spridningsfunktion som appliceras var). Beskrivningar av detta slag uttrycks vanligtvis med hjälp av ett program som kallas en shader [6] . Ett enkelt exempel på skuggning är texturmapping, som använder en bild för att sprida färg på varje punkt på en yta, vilket gör den mer synlig. Några skuggtekniker inkluderar:
Transport beskriver hur ljus i en scen färdas från en plats till en annan. Sikt är huvudkomponenten i lätta transporter.
Skuggade 3D-objekt måste tillplattas så att visningsenheten – nämligen monitorn – bara kan visa dem i två dimensioner, en process som kallas 3D-projektion. Detta görs med hjälp av projektion och, för de flesta applikationer, perspektivprojektion. Grundtanken bakom perspektivprojektion är att objekt längre bort blir mindre jämfört med objekt närmare ögat. Program producerar perspektiv genom att multiplicera expansionskonstanten upphöjd till styrkan av det negativa avståndet från observatören. En expansionskonstant på ett betyder att det inte finns något perspektiv. Höga expansionskonstanter kan orsaka en fisheye-effekt, där bildförvrängning börjar uppstå. Ortografisk projektion används främst i CAD- eller CAM-tillämpningar där vetenskaplig modellering kräver exakta mätningar och bevarande av den tredje dimensionen.