Het weergaveproces speelt een cruciale rol in de ontwikkelingscyclus van computergraphics. Rendering is het technisch meest complexe aspect van 3D-productie, maar het kan eigenlijk vrij gemakkelijk worden begrepen in de context van een analogie: net zoals een filmfotograaf zijn foto’s moet ontwikkelen en afdrukken voordat ze kunnen worden weergegeven, hebben computergraphics-professionals een soortgelijke last. noodzaak. Wanneer een kunstenaar aan een 3D-scène werkt, zijn de modellen die hij manipuleert eigenlijk een wiskundige weergave van punten en oppervlakken (meer specifiek hoekpunten en polygonen) in een driedimensionale ruimte. De term rendering verwijst naar de berekeningen die worden uitgevoerd door de renderengine van een 3D-softwarepakket om de scène te vertalen van een wiskundige benadering naar een definitief 3D-beeld. Tijdens het proces worden de ruimtelijke, textuur- en lichtinformatie van de hele scène gecombineerd om de kleurwaarde van elke pixel in het afgevlakte beeld te bepalen.
Twee soorten weergave
Er zijn twee belangrijke soorten weergave, met als belangrijkste verschil de snelheid waarmee afbeeldingen worden berekend en voltooid.
- Realtime weergave: Real-time weergave wordt het meest gebruikt in gaming en interactieve graphics, waar beelden in een ongelooflijk snel tempo moeten worden berekend uit 3D-informatie. Omdat het onmogelijk is om precies te voorspellen hoe een speler met de spelomgeving zal omgaan, moeten afbeeldingen in “realtime” worden weergegeven terwijl de actie zich ontvouwt.
- Snelheid is belangrijk: Om de beweging vloeiend te laten lijken, moeten minimaal 18 tot 20 frames per seconde op het scherm worden weergegeven. Alles minder dan dit en actie zal schokkerig lijken.
- De methodes: Realtime weergave wordt drastisch verbeterd door speciale grafische hardware en door zoveel mogelijk informatie vooraf te compileren. Een groot deel van de verlichtingsinformatie van een game-omgeving is voorberekend en rechtstreeks “ingebakken” in de textuurbestanden van de omgeving om de rendersnelheid te verbeteren.
- Offline of pre-rendering: Offline rendering wordt gebruikt in situaties waar snelheid minder een probleem is, waarbij berekeningen doorgaans worden uitgevoerd met multi-core CPU’s in plaats van speciale grafische hardware. Offline-rendering wordt het vaakst gezien in animatie- en effectwerk waar visuele complexiteit en fotorealisme aan een veel hogere standaard worden gehouden. Aangezien er geen onvoorspelbaarheid is over wat er in elk frame zal verschijnen, is het bekend dat grote studio’s tot 90 uur rendertijd besteden aan individuele frames.
- Fotorealisme: Omdat offline weergave plaatsvindt binnen een onbeperkt tijdsbestek, kunnen hogere niveaus van fotorealisme worden bereikt dan bij realtime weergave. Karakters, omgevingen en de bijbehorende texturen en lichten hebben doorgaans hogere polygoontellingen en textuurbestanden met een resolutie van 4k (of hoger).
Weergavetechnieken
Er zijn drie belangrijke rekentechnieken die worden gebruikt voor de meeste weergave. Elk heeft zijn eigen reeks voor- en nadelen, waardoor alle drie haalbare opties in bepaalde situaties zijn.
- Scanline (of rastering): Scanline-rendering wordt gebruikt wanneer snelheid een noodzaak is, waardoor het de voorkeurstechniek is voor realtime-rendering en interactieve grafische afbeeldingen. In plaats van een afbeelding pixel voor pixel weer te geven, berekenen scanline-renderers polygoon voor polygoon. Scanline-technieken die worden gebruikt in combinatie met vooraf berekende (gebakken) verlichting kunnen snelheden van 60 frames per seconde of beter bereiken op een high-end grafische kaart.
- Raytracing: Bij raytracing worden voor elke pixel in de scène een of meer lichtstralen getraceerd van de camera naar het dichtstbijzijnde 3D-object. De lichtstraal wordt vervolgens door een bepaald aantal “bounces” geleid, waaronder reflectie of breking, afhankelijk van de materialen in de 3D-scène. De kleur van elke pixel wordt algoritmisch berekend op basis van de interactie van de lichtstraal met objecten in zijn getraceerde pad. Raytracing is in staat tot een groter fotorealisme dan scanline, maar is exponentieel langzamer.
- Radiosity: In tegenstelling tot raytracing wordt radiosity onafhankelijk van de camera berekend en is het oppervlak georiënteerd in plaats van pixel voor pixel. De primaire functie van radiosity is om de oppervlaktekleur nauwkeuriger te simuleren door rekening te houden met indirecte verlichting (weerkaatst diffuus licht). Radiosity wordt meestal gekenmerkt door zachte gegradueerde schaduwen en kleurverloop, waarbij licht van felgekleurde objecten op nabijgelegen oppervlakken “vloeit”.
In de praktijk worden radiosity en raytracing vaak in combinatie met elkaar gebruikt, waarbij de voordelen van elk systeem worden gebruikt om indrukwekkende niveaus van fotorealisme te bereiken.
Rendersoftware
Hoewel rendering afhankelijk is van ongelooflijk geavanceerde berekeningen, biedt de huidige software eenvoudig te begrijpen parameters die ervoor zorgen dat een kunstenaar zich nooit met de onderliggende wiskunde hoeft bezig te houden. Elke grote 3D-softwaresuite wordt geleverd met een render-engine, en de meeste bevatten materiaal- en belichtingspakketten die het mogelijk maken om verbluffende niveaus van fotorealisme te bereiken.
De twee meest voorkomende render-engines
- mentale straal: Verpakt met Autodesk Maya. Mental Ray is ongelooflijk veelzijdig, relatief snel en waarschijnlijk de meest competente renderer voor karakterafbeeldingen die verstrooiing onder het oppervlak nodig hebben. Mental ray maakt gebruik van een combinatie van raytracing en “globale verlichting” (radiosity).
- V-Ray: U ziet V-Ray meestal gebruikt in combinatie met 3DS Max – samen is het paar absoluut ongeëvenaard voor architecturale visualisatie en omgevingsweergave. De belangrijkste voordelen van VRay ten opzichte van zijn concurrent zijn de verlichtingstools en uitgebreide materialenbibliotheek voor arch-viz.
Rendering is een technisch onderwerp, maar kan best interessant zijn als je echt wat dieper ingaat op enkele veelvoorkomende technieken.