3D-rendering
Tredimensionell (3D) datorgrafik |
---|
Fundamentals |
Primära användningsområden |
Relaterade ämnen |
3D-rendering är 3D-datorgrafikprocessen för att konvertera 3D-modeller till 2D-bilder på en dator . 3D-renderingar kan innehålla fotorealistiska effekter eller icke-fotorealistiska stilar .
Renderingsmetoder
Rendering är den sista processen för att skapa den faktiska 2D-bilden eller animeringen från den förberedda scenen. Detta kan jämföras med att ta ett foto eller filma scenen efter att installationen är klar i verkligheten. Flera olika, och ofta specialiserade, renderingsmetoder har utvecklats. Dessa sträcker sig från den distinkt icke-realistiska wireframe -renderingen till polygonbaserad rendering till mer avancerade tekniker som: scanline-rendering , ray tracing eller radiosity . Återgivningen kan ta från bråkdelar av en sekund till dagar för en enskild bild/bildruta. I allmänhet är olika metoder bättre lämpade för antingen fotorealistisk rendering eller realtidsrendering .
Realtid
Rendering för interaktiva medier, såsom spel och simuleringar, beräknas och visas i realtid, med hastigheter på cirka 20 till 120 bilder per sekund. I realtidsrendering är målet att visa så mycket information som möjligt som ögat kan bearbeta på en bråkdel av en sekund (alias "i en bildruta": i fallet med en 30 bildrutor per sekund animering, en bildruta omfattar en 30:e sekund).
Det primära målet är att uppnå en så hög som möjligt grad av fotorealism vid en acceptabel lägsta renderingshastighet (vanligtvis 24 bilder per sekund, eftersom det är det minimum som det mänskliga ögat behöver se för att framgångsrikt skapa illusionen av rörelse). Faktum är att exploatering kan tillämpas på hur ögat "uppfattar" världen, och som ett resultat är den slutliga bilden som presenteras inte nödvändigtvis den av den verkliga världen, utan en tillräckligt nära för det mänskliga ögat 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 ge ett element av realism till en scen, även om effekten bara är en simulerad artefakt av en kamera. Detta är den grundläggande metoden som används i spel, interaktiva världar och VRML .
Den snabba ökningen av datorns processorkraft har möjliggjort en successivt högre grad av realism även för realtidsrendering, inklusive tekniker som HDR-rendering . Realtidsrendering är ofta polygonal och med hjälp av datorns GPU .
Icke-realtid
Animationer för icke-interaktiva medier, som långfilmer och video, kan ta mycket längre tid att rendera. Icke-realtidsrendering gör det möjligt att utnyttja begränsad processorkraft för att erhålla 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 filmfilm eller optisk skiva. Dessa bildrutor visas sedan sekventiellt med höga bildhastigheter, 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 tekniker som ray tracing , path tracing , fotonkartläggning eller radiositet . Detta är den grundläggande metoden som används i digitala medier och konstnärliga verk. Tekniker har utvecklats i syfte att simulera andra naturligt förekommande effekter, såsom ljusets interaktion med olika former av materia. Exempel på sådana tekniker 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 ljusfokusering av ojämna ljusbrytande ytor, t.ex. ljusa krusningar som ses på botten av en simbassäng) och spridning under ytan (för att simulera ljus som reflekteras inuti volymerna av fasta föremål, såsom mänsklig hud ).
Återgivningsprocessen är beräkningsmässigt dyr, med tanke på den komplexa mängd fysiska processer som simuleras. Datorns processorkraft har ökat snabbt under åren, vilket möjliggör en successivt högre grad av realistisk rendering. Filmstudior som producerar datorgenererade animationer använder vanligtvis en renderfarm för att generera bilder i tid. Fallande hårdvarukostnader innebär dock att det är fullt möjligt att skapa små mängder 3D-animation på ett hemdatorsystem med tanke på kostnaderna för att använda renderfarmar. Utdata från renderaren används ofta som bara en liten del av en färdig filmscen. Många lager av material kan renderas separat och integreras i den slutliga bilden med hjälp av kompositmjukvara .
Reflexions- och skuggmodeller
Modeller av reflektion/spridning och skuggning används för att beskriva utseendet på en yta. Även om dessa frågor kan tyckas vara problem ensamma, studeras de nästan uteslutande inom ramen för rendering. 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 ; i de flesta 3D-programmeringsimplementeringar är termen för detta värde "brytningsindex" (vanligtvis förkortat till IOR).
Skuggning kan delas upp i två olika tekniker, som ofta studeras oberoende av varandra:
- Ytskuggning - hur ljus sprids över en yta (används oftast i scanline-rendering för 3D-rendering i realtid i videospel)
- Reflektion/spridning - hur ljus interagerar med en yta vid en given punkt (används oftast i strålspårade renderingar för icke-realtidsfotorealistisk och konstnärlig 3D-rendering i både CGI-stillbilder i 3D och icke-interaktiva 3D-animationer i CGI)
Algoritmer för ytskuggning
Populära ytskuggningsalgoritmer i 3D-datorgrafik inkluderar:
- Flat shading : en teknik som skuggar varje polygon i ett objekt baserat på polygonens "normala" och positionen och intensiteten för en ljuskälla
- Gouraud-skuggning : uppfanns av H. Gouraud 1971; en snabb och resursmedveten vertex-skuggningsteknik som används för att simulera jämnt skuggade ytor
- Phong-skuggning : uppfanns av Bui Tuong Phong ; används för att simulera spegelblanka högdagrar och släta skuggade ytor
Reflexion
Reflektion eller spridning är förhållandet mellan den inkommande och utgående belysningen vid en given punkt. Beskrivningar av spridning ges vanligtvis i termer av en dubbelriktad spridningsfördelningsfunktion eller BSDF.
Skuggning
Skuggning tar upp hur olika typer av spridning är fördelade över ytan (dvs vilken spridningsfunktion som gäller var). Beskrivningar av detta slag uttrycks vanligtvis med ett program som kallas en shader . Ett enkelt exempel på skuggning är texturmapping , som använder en bild för att specificera den diffusa färgen vid varje punkt på en yta, vilket ger den mer tydliga detaljer.
Några skuggtekniker inkluderar:
- Bumpmapping : Uppfunnet av Jim Blinn , en normal störningsteknik som används för att simulera skrynkliga ytor.
- Cel shading : En teknik som används för att imitera utseendet på handritad animation.
Transport
Transport beskriver hur belysningen i en scen kommer från en plats till en annan. Sikt är en viktig del av lätta transporter.
Utsprång
De skuggade tredimensionella objekten måste tillplattas så att visningsenheten - nämligen en bildskärm - bara kan visa den i två dimensioner, denna process kallas 3D-projektion . Detta görs med hjälp av projektion och, för de flesta tillämpningar, perspektivprojektion . Grundtanken bakom perspektivprojektion är att föremål som är längre bort görs mindre i förhållande till de som är närmare ögat. Program producerar perspektiv genom att multiplicera en utvidgningskonstant upphöjd till effekten av det negativa av avståndet från observatören. En utvidgningskonstant på ett betyder att det inte finns något perspektiv. Höga dilatationskonstanter kan orsaka en "fisköga"-effekt där bildförvrängning börjar uppstå. Ortografisk projektion används främst i CAD- eller CAM- applikationer där vetenskaplig modellering kräver exakta mätningar och bevarande av den tredje dimensionen.
Rendering motorer
Rendermotorer kan kombineras eller integreras med 3D-modelleringsprogram, men det finns också fristående programvara. Vissa renderingsmotorer är kompatibla med flera 3D-program, medan vissa är exklusiva för en.
Se även
- Arkitektonisk återgivning
- Omgivningsocklusion
- Datorsyn
- Geometri pipeline
- Geometri bearbetning
- Grafik
- Grafikprocessorenhet (GPU)
- Grafiska utgångsenheter
- Bildbehandling
- Industriell CT-skanning
- Målarens algoritm
- Parallell rendering
- Reflektion (datorgrafik)
- SIGGRAF
- Volymåtergivning
Anteckningar och referenser
- ^ Badler, Norman I. "3D-objektmodellering föreläsningsserie" ( PDF ) . University of North Carolina vid Chapel Hill . Arkiverad (PDF) från originalet 2013-03-19.
- ^ "Icke-fotorealistisk återgivning" . Duke University . Hämtad 2018-07-23 .
- ^ "Vetenskapen om 3D-rendering" . Institutet för digital arkeologi . Hämtad 2019-01-19 .
- ^ Christensen, Per H.; Jarosz, Wojciech. "The Path to Path-Traced Movies" ( PDF ) . Arkiverad (PDF) från originalet 2019-06-26.
- ^ "Hur rendering av gårdsprissättning faktiskt fungerar" . GarageFarm . 2021-10-24 . Hämtad 2021-10-24 .
- ^ "Fundamentals of rendering - Reflexance Functions" ( PDF ) . Ohio State University . Arkiverad (PDF) från originalet 2017-06-11.
- ^ Ordet shader används ibland också för program som beskriver lokal geometrisk variation.
- ^ "Bump Mapping" . web.cs.wpi.edu . Hämtad 2018-07-23 .