3D-computergraphicsMet 3D-computergraphics wordt bedoeld het genereren van tweedimensionale afbeeldingen uit driedimensionale representaties van geometrische objecten. ToepassingenComputergraphics vinden op verschillende plaatsen toepassing:
Computer-aided designBij computergeassisteerd ontwerpen speelt het modelleren van objecten een belangrijke rol. Tijdens het modelleren dient de ontwerper visuele terugkoppeling te krijgen en hier speelt de 3D-computergraphics een zeer belangrijke rol. Belangrijk is het efficiënt weergeven van complexe geometrische modellen. ComputerspellenBij computerspellen spelen computergraphics een belangrijke rol in het creëren van sfeer in een spel. Door de speler mee te nemen in realistische dan wel fantasiewerelden probeert men de spelervaring te vergroten. Hoe gedetailleerder het beeld, hoe beter deze ervaring en computerspellen hebben een dan ook niet te stillen honger naar betere graphics. Computerspellen oefenen vandaag de dag een belangrijke druk uit op de doorontwikkeling van videokaarttechnologie. FilmAnimatiefilms die volledig met de computer gemaakt zijn, zijn tegenwoordig uitermate populair. Bekende studio's die computeranimatiefilms maken zijn o.a. Pixar (Toy Story, Monsters Inc., Finding Nemo, The Incredibles, Cars), Pacific Data Images (Shrek), Blue Sky Studios (Ice Age).
Digitale KunstDe computer is naast de traditionele vormen om kunstzinnige afbeeldingen zoals schilderkunst en fotografie een uitstekend nieuw werktuig gebleken om kunst mee te maken. Computers bieden de artiest een waaier aan creatieve gereedschappen om schitterende afbeeldingen te kunnen maken. Computers blijken zowel geschikt om fotorealistische als niet fotorealistische kunst mee te ontwerpen. RendertechniekenEen rendertechniek is het basisalgoritme waarmee de driedimensionale wereld op een tweedimensionaal scherm geprojecteerd wordt. De gebruikte technieken zijn grofweg in te verdelen in twee categorieën:
De huidige computerspellen gebruiken enkel deze methode. Vroegere spellen zoals Wolfenstein en Doom gebruiken een variant van afbeelding-gebaseerde methoden genaamd raycasten. ScanlijnrenderingBij scanlijnrendering wordt de framebuffer regel per regel afgelopen. Iedere regel wordt in stukje verdeeld betreffende tot welk object dat stuk behoort. Deze stukken worden vervolgens ingekleurd. De kwaliteit van scanlijnrendering is sterk afhankelijk van de algoritmen die gebruikt worden om de kleuren van de objecten te berekenen. Bij platte kleuring heeft ieder object een vaste kleur en is de kwaliteit erg slecht. Technieken die de lichtval op een object meenemen zijn Gouraudkleuring en Phongkleuring. Bij textuurprojectie worden tweedimensionale plaatjes op de objecten geprojecteerd. Tegenwoordig kan de kleur door middel van een zogenaamde pixel shader, een kleine programmaatje dat voor elke pixel uitgevoerd wordt, ook berekend worden. Raycasting, raytracing en stochastische raytracingBij raytracing gaat men uit van een camera en lichtbronnen welke in de weer te geven ruimte aanwezig zijn. Raytracing is een verzamelnaam voor vele verschillende algoritmen om een driedimensionale scène te renderen. Het zogenaamde ray-casting algoritme zal vanuit de camera door elke pixel een straal schieten, om te bepalen welke object in de ruimte als eerste geraakt wordt. Dat object is dan zichtbaar in die bepaalde pixel. Raytracing zelf voegt hier belichtingseffecten aan toe. Door vanuit het object dat men door een pixel ziet, lichtstralen te sturen naar de lichtbronnen, kan men effecten berekenen zoals diffuse belichting, highlights, schaduwen, perfecte reflecties en refracties. Stochastische raytracing gaat nog een stap verder en zal willekeurige stralen doorheen de ruimte schieten. Door al deze stralen te volgen kan men een zeer nauwkeurig beeld berekenen: zacht verlopende schaduwen, wazige reflecties en refracties, onscherpte a.g.v. lenzen of focusafstand van de camera. In principe is stochastische raytracing in staat om een beeld te genereren dat er net uitziet als een foto van de scène. Stochastische raytracing wordt dan ook wel een foto-realistisch of globaal-belichtingsalgoritme genoemd. De wiskundige achtergrond voor stochastische ray tracing is een beschrijving van hoe lichttransport in een 3D scène gebeurt, aan de hand van de zogenaamde rendering vergelijking. Door deze rendering vergelijking numeriek te evalueren met Monte Carlo integratie technieken bekomt men stochastische ray tracing als algoritme. RadiosityRadiosity is een globaal-belichtingsalgoritme dat in principe geen rekening houdt met de positie van de camera in de ruimte zoals raytracing dat doet. Het radiositeitsalgoritme zal voor elk oppervlak (bijvoorbeeld veelhoeken) in de scène berekenen hoeveel licht het precies uitstraalt. Nadien kunnen al deze oppervlakken gevisualiseerd worden met behulp van een scanlijn-renderere of met een raycasting algoritme. De berekeningsstap van het radiositeitsalgoritme bestaat erin dat men de scène opdeelt in kleine vlakjes of veelhoeken. Voor elke veelhoek wordt een energie-balans opgesteld: de lichtenergie die deze veelhoek uitstraalt is gelijk aan de hoeveelheid licht die op deze veelhoek invalt en vervolgens gereflecteerd wordt. Dit geeft aanleiding tot een stelsel van wiskundige vergelijkingen, die met gepaste technieken worden opgelost. Het radiositeitsalgoritme is wiskundig gezien een eindige elementen-methode voor het oplossen van een transportprobleem in een 3D omgeving. Deze manier van werken is zeer goed voor indirecte diffuse lichtinteracties te berekenen, wat betekent dat objecten in de ruimte via meerdere weerkaatsingen belicht worden. Bijvoorbeeld: een lamp aan het plafond zal licht uitstralen, dat vervolgens op de vloer weerkaatst wordt, en vervolgens invalt op de onderkant van de tafel, zodat de onderkant van de tafel effectief een kleur heeft. Het radiositeitsalgoritme kan niet goed overweg met spiegelingen en refracties, hoewel er varianten bestaan die dit wel in mindere mate kunnen. Het radiositeitsalgoritme werd vooral ontwikkeld en onderzocht in de jaren 80 en 90. Op dit ogenblik (2024) is het in onbruik geraakt als algemeen foto-realistisch renderingalgoritme. Daar is stochastische raytracing veel beter geschikt voor. Wel wordt het radiositeitsalgoritme nog wel gebruikt om specifieke stukjes van het beeld uit te rekenen, of in specifieke domeinen (bijvoorbeeld architectuur). OnderdelenRuimtelijke indelingenBepaling van zichtbaarheid
Zie ook
|