Skip To Content

Wat doet Ambient Occlusion?

Written by november 9, 2019

Tijdens de begindagen van videogames, waar alles wat we hadden, bestond uit onwaarneembare tweedimensionale pixel- of spritegrafieken, werd er veel aan de verbeelding overgelaten. In die tijd waren computergraphics samengesteld uit nauwelijks herkenbare vormen, gemaakt om door te geven als hun echte wereld (of in veel gevallen, de filmwereld) tegenhangers. Ze deden het beste wat ze konden en richtten zich dan op een leuke, repetitieve gameplay die een geweldige manier is om elke zaterdagmiddag de tijd door te brengen. Dit ging heel lang door, met de Atari 2600 als de belangrijkste thuisconsole die het werk deed.

Na de videogamecrash van de jaren ’80 zijn Nintendo en Sega opgestaan uit de as en hebben ze nieuwe consoles gemaakt: respectievelijk het Nintendo Entertainment System en de Sega Genesis. Deze consoles hadden veel betere graphics waar je echt kon herkennen wat elk afzonderlijk element is. Zeker, er is nog wat over voor de verbeelding, maar je zou zeker niet zo hard hoeven te werken als voorheen. Tijdens deze 8-bits en daaropvolgende 16-bits tijdperken werden de sprite-graphics tot het uiterste genomen wat de technologie destijds kon geven. Maar het was nog steeds het domein van de 2D of twee-dimensies. De meeste spellen zouden side-scrolling, of top-down, en wat “3D” spel zou komen zou nog steeds gebruik maken van sprite graphics. Het was een geweldige manier om games te maken, en veel klassieke games nog steeds beschouwd als een van de beste in hun genres gebruikt. Echter, toen de Sony Playstation kwam, zou de game-industrie nooit meer hetzelfde zijn. Het zou het rijk van de drie dimensies, of 3d, binnengaan.

Met de komst van 3d graphics kwam een nieuwe grens in video gaming. Plotseling, twee-dimensionale sprites waren een ding van het verleden, en game-ontwikkelaars snel duwde de envelop om betere en betere 3d graphics die de onderdompeling van gaming zou maken zo goed als technologisch mogelijk te maken. Als tijdens de 8- en 16-bits tijdperken heel weinig aan de verbeelding werd overgelaten, met het aanbreken van 3d graphics, bleef er bijna niets meer over. Gameontwikkelaars konden vrijwel alles maken wat ze konden modelleren en gebruiken in het spel. En naarmate de tijd vorderde, werd de kwaliteit van deze 3D-graphics gewoon beter.

Vandaag de dag, de kwaliteit van 3d graphics in video games, vooral in triple A video games zijn zo hoogstaand dat het de lijnen van de werkelijkheid vervaagt. Dit komt omdat in de loop der jaren veel functies zijn ontwikkeld om het realisme dat 3d-graphics kunnen brengen sterk te verbeteren. Van hardwareversnelling tot software-tweaking, de 3d spellen van vandaag zijn lichtjaren verder dan de gamemakers in de jaren ’60 en ’70 ooit zouden kunnen dromen.

Er zijn veel elementen in 3D-graphics die allemaal bijdragen aan het produceren van één fantastisch beeld. Verlichting is natuurlijk een van de belangrijkste. In staat zijn om rekening te houden met de effecten van licht in een gebied en de schaduwen die het zal veroorzaken kan het verschil zijn tussen hoge kwaliteit beeldvorming. En dit is waar de sfeer van occlusie in het spel is.

Wat is Ambient Occlusion?

Op het eerste gezicht lijkt de term erg technisch. En als je het definieert door uit te zoeken wat de woorden “ambient” en “occlusion” afzonderlijk betekenen, krijg je een vaag beeld van wat het is. Online woordenboeken definiëren “ambient” als “met betrekking tot de directe omgeving van iets”. Klinkt eenvoudig genoeg. Echter, “occlusie” betekent een paar iets andere dingen, die allemaal drie dingen gemeen hebben: een blokkade, een kortstondige afsluiting, en positionering.

Gecombineerd krijg je iets in de trant van “dingen rond die blokkades.” Klinkt dat nog steeds verwarrend? Maak je geen zorgen, het is eigenlijk niet ver weg. Zie je, ambient occlusion is de schaduw- en rendering methode om uit te vinden hoeveel van een specifiek punt in een gerenderde scène omgevingslicht krijgt. Het is de methode om te zien hoe “toegankelijk” elk punt in de scène is voor omgevingslicht, om zo een effect te produceren dat zoveel dichter bij de werking van de echte wereld verlichting ligt. Het is anders dan schaduwgieten (daar komen we later nog op terug) maar het geeft wel een schaduweffect. Ingesloten of moeilijk bereikbare gebieden worden verduisterd, en blootgestelde gebieden worden verlicht, waardoor het realisme van een scène wordt vergroot.

Nog steeds in de war? Denk er maar eens over na. Neem een kartonnen koker van toiletpapier en plaats deze op een regelmatig verlichte tafel. Neem een kijkje in de buis, en kijk dan naar buiten. Omdat de binnenkant van de koker niet gemakkelijk bereikbaar is met omgevingslicht, lijkt het donkerder dan de buitenkant van de koker. Dat is wat Ambient Occlusion doet. Als de echte wereld nu grafische instellingen had, en we zetten ambient occlusion uit, dan zal het niet zo gemakkelijk zijn om te onderscheiden wat de binnenkant van de buis is en wat er buiten is. Tenzij de texturen (we komen hier later ook op terug) van de kartonnen koker al schaduwen hebben aangebracht.

Ambient Occlusion wanneer deze correct wordt uitgevoerd, resulteert in een scène die er zoveel realistischer uitziet dan wanneer deze zonder Ambient Occlusion wordt weergegeven. Maar er was een tijd dat ambient occlusie niet werd gebruikt in videogames. In 2001, de film Pearl Harbor, met Ben Affleck en Kate Beckinsale in de hoofdrol, werd ambient occlusie gebruikt. In 2007 echter, Crytek’s spel “Crysis” onthulde de Screen Space Ambient Occlusion, de eerste keer dat ambient occlusie werd gebruikt in een video game. De resultaten waren verbluffend en Crysis werd in die tijd geprezen als een prachtig gemaakt sci-fi epos. Niet alleen vanwege het verhaal en de gameplay, maar ook vanwege de cutting edge graphics van die tijd. Maar zo’n vooruitstrevende technologie betekende dat Crysis bij de release een van de hoogste hardware-eisen van elke game had. Desalniettemin legde het de lat hoog waarin andere triple A-titels die meeslepende en realistische graphics willen bereiken, moeten reiken of passeren.

Hoe werkt Ambient Occlusion?

We weten nu wat Ambient Occlusion is. Maar hoe doet het zijn werk door diepte toe te voegen aan de videogamescène in de vorm van schaduwen?

De door Crytek ontwikkelde methode, specifiek door Vladimir Kajalin, werkt als een algoritme van een pixelshader. Pixelshaders zijn in essentie verschillende attributen en instellingen van een gebied van een scène of object in een scène berekenen, en een resultaat produceren op basis van die berekeningen. Het kan een eenvoudig resultaat zijn zoals een effen kleur, of, in dit geval, een hoeveelheid licht. Het doet dit voor elke pixel die op het scherm aanwezig is.

Dit klinkt als veel werk, en dat is het ook. Dit is waarschijnlijk precies de reden waarom het zo lang duurde om het te implementeren in videogames. Want voordien was het erg moeilijk om ambient occlusion uit te voeren via real-time rendering. Maar de oplossing van Crytek, die gebruik maakt van sampling van een vast aantal pixels in plaats van elke pixel, heeft de benodigde tijd en verwerking sterk gereduceerd. En met andere ontwikkelde technologie kon een beeld van hoge kwaliteit worden geproduceerd dat acceptabel is voor de ontwikkeling van videogamegrafiek.

Tegenwoordig zijn er vele soorten van ambient occlusion of AO zoals de industrie het noemt, en ze functioneren iets anders dan anders.

Soorten Ambient Occlusion

De verschillende soorten Ambient Occlusion hebben vergelijkbare, maar enigszins verschillende resultaten, afhankelijk van de manier waarop een spelontwikkelaar ze heeft gebruikt. Hier zijn enkele van de meest voorkomende, en hun voors en tegens.

SSAO of Screen-Space Ambient Occlusion – de grootvader van de ambient occlusion technologie voor videogames. Ontwikkeld door Crytek in 2007, heeft SSAO de standaard gezet als het gaat om ambient occlusion en is tot op de dag van vandaag de standaard optie voor de meeste uitgebrachte videogames.

Belangrijkste kenmerken:

    1. Weinig tot geen CPU-bronnen – door het gebruikte algoritme is er vrijwel geen noodzaak om de CPU te gebruiken. SSAO kan worden uitgevoerd door de grafische verwerkingseenheid of de GPU.
    2. Snel en bronvriendelijk – omdat er geen voorbewerking nodig is, heeft SSAO vrijwel geen laadtijd en geheugentoewijzingen. SSAO kan specifiek worden gedaan in de GPU
    3. Consistent en betrouwbaar – het algoritme wordt telkens op dezelfde manier toegepast.
    4. Aanpasbaar – kan op verschillende manieren worden toegepast door videogame-ontwikkelaars en GPU-makers.

SSDO of Screen Space Directional Occlusion – kan worden beschouwd als een opstapje van SSAO in termen van technologische vooruitgang. SSDO gebruikt niet alleen de pixels van een scène of een object. Het maakt ook gebruik van de richting van het licht dat op het object valt, en van de lichten die van objecten achter het object afkaatsen. Dit geeft de speler de mogelijkheid om objecten te onderscheiden door het verschil in de hoeveelheid schaduw en licht tussen de objecten te zien.

Dit geeft meer diepte en realisme boven wat SSAO al brengt en brengt videogames steeds dichter bij de steeds ongrijpbaarder wordende fotorealistische omgeving.

Belangrijkste kenmerken:

    1. Meer realistische verlichting – door rekening te houden met de richting van het licht van de lichtbronnen wordt de diepte van de verlichting veel groter.
    2. Niet zo ver van de SSAO-bronvereisten – zelfs als SSDO de opvolger van SSAO is en meer functies heeft, blijven de bronvereisten zeer vergelijkbaar met die van SSAO en dit is niet zo’n grote belasting voor moderne GPU’s.

HBAO/HDAO of Horizon-Based Ambient Occlusion en High-Definition Ambient Occlusion – dit zijn varianten van SSAO die behoren tot twee GPU-ontwikkelaars. Nvidia is eigenaar van HBAO en AMD is eigenaar van HDAO. Ze verschillen niet zozeer van SSAO, maar produceren betere ambient occlusion, vooral als ze gebruikt worden met hun respectievelijke videokaarten. Dit gaat echter ten koste van een hogere resourcebehoefte en prestatieverlies, tenzij de gebruikte GPU zeer up-to-date is.

VXAO of Voxel Ambient Occlusion – dit is de volgende stap voor HBAO en is ook door Nvidia ontwikkeld. Het biedt een hogere kwaliteit van ambient occlusion dan HBAO, maar ten koste van het feit dat het meer middelen kost, zelfs als we rekening houden met de gemiddelde GPU’s van vandaag. Om deze vorm van ambient occlusie volledig te benutten, heb je de meest hoogwaardige GPU’s nodig die er zijn. Wanneer u deze optie inschakelt, zult u echter zeker het verschil zien.

GI of Global Illumination – dit soort AO is nog niet gebruikt in videogames. Maar wetende hoe de technologie zich ontwikkelt, zullen we dit zeker zien binnen ons leven. Dit is hoe fotorealistische verlichting wordt gedaan. GI houdt rekening met alle lichtbronnen die in de scène aanwezig zijn, en hoe elk ervan de vele objecten die daar aanwezig zijn beïnvloedt. Hierdoor is de verlichting bijna, zo niet al, precies hetzelfde als in de echte wereld. Realistische lichten en schaduwen die ervoor zorgen dat alles in de scène er precies hetzelfde uitziet als in de echte wereld. Tenzij ze natuurlijk gemodelleerd of op een duidelijk onrealistische manier gemaakt zijn.

Maakt Ambient Occlusion echt een verschil in videogames?

Met de manier waarop de ambient occlusion wordt beschreven, lijkt het erop dat AO het belangrijkste ingrediënt is in het maken van videogames. En in veel gevallen is dat ook zo. Echter, als je de afgelopen jaren veel videogames hebt gespeeld, zul je merken dat niet veel games, behalve triple A-titels, AO of varianten daarvan bevatten. Waarom zou u zich afvragen?

Het is zo dat, zelfs als AO geen CPU-verwerkingskracht nodig heeft, en bronvriendelijk is, ambient occlusie zeer belastend is voor de GPU. Nu zou je kunnen denken, “mijn PC kan alles aan, zeker de PC van iedereen?” Maar niet iedereen zal dezelfde GPU’s hebben, zal de meest geavanceerde technologie hebben, en de nieuwste software. En videogamebedrijven gaan nadenken over de bottom line, ook wel bekend als het verkopen van hun spellen aan zoveel mogelijk mensen.

Als een spel te zwaar is voor de hardware, zal het misschien niet zo goed verkopen. En dit is eigenlijk een van de belangrijkste klachten die zowel critici als spelers maakten over Crysis. Op het moment dat het spel werd uitgebracht, kon de gemiddelde PC-speler het niet eens draaien zonder framerate verlies of een daling van de kwaliteit of iets dergelijks.

Laten we nu eens aannemen dat je in staat bent om de ambient occlusion aan te zetten zonder enige negatieve neveneffecten. Is de impact echt merkbaar? Nou, het korte antwoord is, het hangt ervan af.

Dit komt omdat het ook afhangt van hoe de spelontwikkelaar ambient occlusie in hun spel heeft geïmplementeerd. Goed gedaan, het effect is bijna direct nadat je de instellingen hebt aangezet. U zult dit vooral merken wanneer objecten dicht bij elkaar worden geplaatst, zoals gras en vegetatie-elementen, of wanneer objecten dicht bij muren, plafonds of vloeren worden geplaatst. Als u een zeer visuele gamer bent, dan is dit iets wat u zeer zult waarderen.

Als je het verkeerd doet, zul je het visuele verschil echter nauwelijks merken. Maar je zult de prestaties zeker voelen dalen in de vorm van lagere fps of vertraging. En als dat het geval is, wat heeft het dan voor zin om het aan te laten, toch?

In sommige gevallen is het een middenweg tussen de twee. Natuurlijk kun je het verschil zien, maar op de lange termijn is het misschien niet significant genoeg om de mogelijke prestatiedaling te rechtvaardigen. Als dat gebeurt dan is het gewoon een geval tussen visuele kwaliteit en prestatie. En als je een serieuze gamer bent, is de kans groot dat je kiest voor prestatie.

Maar er is nog een andere reden waarom ambient occlusion niet zo veel gebruikt wordt of niet is opgenomen in veel games. En dat komt omdat er alternatieven zijn die zeer gelijkaardige resultaten opleveren zonder dat er sprake is van de performance neveneffecten.

Alternatief voor ambient occlusie

Een van de meest populaire alternatieven voor ambient occlusion is bloeiverlichting, gebruikt door populaire games zoals Skyrim. Simpel gezegd is bloeiverlichting een kunstmatig gecreëerde reproductie van een visueel artefact dat echte camera’s produceren bij het ontvangen van licht. Het is als een zachte gloed (vandaar een “bloom”) die heldere gebieden van een scène produceren. Dit neemt de camera over en is duidelijk zichtbaar in films, televisieshows en zelfs thuis opgenomen video’s met behulp van videocamera’s of mobiele telefooncamera’s. Het heeft in 2004 aan kracht gewonnen in videogames en is sindsdien in veel videogames aanwezig geweest.

Het bloeiverlichtingseffect zorgt ervoor dat het licht van een helder gedeelte van een scène “bloedt” naar andere zichtbare elementen in de scène vanuit het oogpunt van de camera. Het menselijk oog herkent dit als een realistisch effect dat we eerder hebben gezien en ervaren en verwerkt het als een realistische verlichting in onze hersenen. Dus zelfs als de schaduwen die door Ambient Occlusion worden geproduceerd niet bestaan in een scène, compenseert het bloomeffect het “immersieve” realistische effect.

Het beste deel? Bloomverlichting neemt zeer weinig GPU-verwerkingskracht in beslag, of hoogstens, het komt niet in de buurt van wat ambient occlusion van een grafische kaart vraagt. Daarom is het sinds 2004 voor veel games een populair visueel effect geworden, waaronder triple A-titels als Elder Scrolls IV: Oblivion en Elder Scrolls V: Skyrim, evenals de Fallout-serie, en meer.

Als ambient occlusion de moeite niet waard is of weinig doet, moet u dan zelfs overwegen om het aan te zetten bij het spelen van games?

Moet je Ambient Occlusion In My Game inschakelen?

Nadat we er verder over hebben gesproken, lijkt het erop dat er meer nadelen dan voordelen zijn als het gaat om ambient occlusion in videogames, toch? Dus als dat het geval is, moet je dan zelfs ambient occlusion aanzetten? Als je alleen maar een minimale visuele verbetering krijgt voor een heleboel middelen, dan is het het niet waard, toch?

Het korte antwoord is, nogmaals, het hangt ervan af. Als uw GPU het aankan met minimale of geen prestatieverlies, dan is het inschakelen van ambient occlusie zeker een optie, zeker als u uw visuele kwaliteit wilt verbeteren. Het hangt er ook van af of het spel het goed doet of niet. Als dat zo is, dan is het de moeite waard om eventueel een beetje prestaties te verliezen voor de visuele kwaliteit. En als het niet goed doet, dan is het het beste om het gewoon uit te laten staan. De enige manier om erachter te komen is om de functie aan te zetten en zelf te controleren.

Het is de algemene consensus dat ambient occlusion slechts een gimmick special effect is dat weinig toevoegt aan de videogame-ervaring die andere effecten niet kunnen geven zonder de neveneffecten. Echter, sommige games doen dit heel goed, dus als je die games speelt die dit effectief doen, dan is het de moeite waard om de functie ingeschakeld te houden.

  • Authentic reporting, expertise, and voice.

  • Driven to continually improve the audience experience.

  • Approachable, by explaining today’s technology in everyday terms.