Inleiding
Het moderne spel heeft grote hoogten bereikt in het leveren van adembenemend realistische omgevingen met meerdere voorwerpen en personages. Terwijl ze allemaal op verschillende afstanden tot het gezichtspunt functioneren, zijn er maar weinig die werkelijk iets toevoegen aan de scène.
Toch moet een engine alle voorwerpen verwerken en renderen. Juist dan komt LOD in het spel om een snelle rendering te verzekeren. Maar dat is het nog niet.
Vandaag leer je alles wat je moet weten over wat LOD is en waarom je het nodig hebt in spel en karaktermodellering.
Wat is LOD?
LOD of de gedetailleerdheid is de methode om het aantal polygons in 3D objecten te verminderen op basis van hun afstand tot de toeschouwer of de camera. Modelleerders gebruiken het om de werkdruk op de CPU of de grafische kaart te verminderen en de efficiëntie van de rendering te verhogen.
Dienovereenkomstig, zijn er verschillende niveaus van detailgroepen gemaakt voor elk stukje van het spellandschap. Elk ervan heeft een andere polygon telling en behoort tot een groep, waarbij de LOD0 groep een volledig gedetailleerd model is en LOD1, LOD2 一 een lagere mate van detail hebben, enzovoort.
Het kan gaan van enkele duizenden driehoeken in een polygoonnetwerk op het meest gedetailleerde voorwerp en nauwelijks honderd op de minst gedetailleerde versie van het model.
Als je je afvraagt of het de ervaring van spelers beïnvloedt 一 het antwoord is ja en nee.
Aan de verminderde visuele kwaliteit van het model wordt zelden aandacht besteed omdat de voorwerpen ver weg zijn of snel bewegen. De renderingstijd wordt echter aanzienlijk verbeterd, wat niet onopgemerkt blijft.
Hoewel het een pasklare oplossing lijkt, kun je het nog steeds niet op alle spellen toepassen.
Noteer: LOD niet gebruiken bij heel eenvoudige voorwerpen met veel driehoeken of bij spellen met een statisch camerabeeld. In deze gevallen wordt mesh optimalisatie anders aangepakt.
LOD Parameters
Verschillende voorwerpen bevinden zich tijdens het spel op verschillende afstanden tot de toeschouwer. Alleen afstand is dus geen geldige factor om de mate van detail voor elk voorwerp, personage en landschap te bepalen.
Er zijn ook nog andere maatstaven om rekening mee te houden:
- Objectkenmerken ー werkelijk bestaande voorwerpen en hun elementen moet je opnemen
- De complexiteit van de kenmerken ー minimumgrootte van de kenmerken in de werkelijkheid en de complexiteit van hun geometrie
- Semantiek ー ruimtelijk-semantische coherentie
- Afmetingen ー geometrische dimensie van elk kenmerk
- Textuur ー het vereiste kwaliteitsniveau voor elke eigenschap als je een voorwerp moet textureren
Zodra je deze gedefinieerd hebt, moet je kiezen welke techniek je wilt gebruiken om LOD voor je object te maken.
Beheerstechnieken op detailniveau
LOD helpt om voldoende leveren visuele kwaliteit, terwijl onnodige computatie vermeden wordt met behulp van het algoritme. Moderne benaderingen zijn echter toegesneden op de weergegeven informatie, wat ver afstaat van wat het oorspronkelijke algoritme geneigd was te doen.
Op grond van de situatie zijn er 2 hoofdmethoden.
Discrete Detailniveaus (DLOD)
Gebruik makend van de discrete methode, maak je meerdere discrete of afzonderlijke versies van het object met een verschillend detailniveau. Om ze allemaal te verkrijgen heb je een extern algoritme nodig, dat gebruikt wordt in verschillende polygon verkleiningstechnieken.
Tijdens het renderen worden de versies van de objecten met een hoger detailniveau vervangen door de objecten met een lager detailniveau en omgekeerd. Dit veroorzaakt tijdens de overgang een visuele knal, die je altijd moet vermijden.
Continue Detailniveaus (CLOD)
Een methode met doorlopend detailniveau is het meest geschikt voor prestatie-intensieve toepassingen en bewegende voorwerpen. Hiermee kun je het detail plaatselijk variëren. Daardoor kun je de ene kant van het voorwerp dichter bij de kijker met meer detail presenteren en de andere kant met minder detail.
Dat is mogelijk door de in de methode gebruikte structuur waarin het spectrum van details voortdurend varieert. Met CLOD kun je de mate van gedetailleerdheid kiezen die voor bepaalde situaties geschikt is. Vanwege de weinige betrokken bewerkingen, deze methode levert zowel lagere CPU als snellere prestaties.
Optimaliseer het niveau van LOD voor een 3D object
Als je begint met het maken van polygon meshes, is de eerste vraag die in je hoofd opkomt ー wat is het redelijke aantal LOD?
Het klinkt misschien eenvoudig, maar het is het tweede belangrijke ding om te weten nadat je geleerd hebt wat LOD is.
En hier is waarom.
Als je maar een paar hoekpunten in een polygon mesh verkleint, zal er geen noemenswaardige prestatieverbetering zijn. Alle versies van het voorwerp zullen bijna hetzelfde gerenderd worden. Als je dan de polygons te veel verkleint, zal de LOD omschakeling te merkbaar zijn.
Een goede tip: gebruik een ongeschreven regel om het aantal polygons te verminderen met 50% voor elk voorwerp van de groep (LOD1, LOD2, LOD3, enz.), maar stem het toch af op de grootte en het belang van een voorwerp.
Bovendien kosten LOD meshes je geheugen en CPU werkbelasting. Te veel ervan zal dus veel verwerking vergen en de bestandsgrootte vergroten. Houd daar rekening mee.
Hoe maak je LOD Meshes?
Met al het mooie 3D modelleersoftware en modifiers die ze meebrengen, zou het niet moeilijk moeten zijn om LOD meshes te maken voor je spelobjecten.
Toch kun je dit zowel handmatig als automatisch doen.
Handmatig
Als je handmatig een detailniveau aanmaakt, hoef je alleen maar verwijder een aantal hoekpunten van een 3D object en de lussen van polygons. Je kunt ook het gladde voor je LOD's uitschakelen.
Hoewel je dit binnen de software doet, kost het nog steeds veel tijd. Je kunt dit proces dus misschien beter automatiseren.
Automatisch
Met de automatische optie, omgekeerd, heb je veel meer mogelijkheden. Je kunt de modifier binnen de 3D software gebruiken die we net vermeld hebben. De meest populaire zijn ProOptimizer voor 3DSMax of Genereer LOD Meshes in Maya.
Als je wilt, kun je kiezen voor een apart LOD generatie programma zoals Simplygon, of de ingebouwde LOD generatie mogelijkheden verkennen die sommige game engines bieden (b.v. Unreal Engine 4).
In elk geval wordt, als je LOD meshes maakt automatisch moet je gewoon de modellen opgeven in de LOD getallen en de afstand tot de camera waar elk van hen voor staat.
Noteer: als je met automatische gereedschappen werkt, bewaar dan de back-ups van je werk en doe goede tests om te verzekeren dat ze de UV's van je model niet beschadigen.
De mate van detail is een must voor high-end spellen, want het beïnvloedt de ervaring van de kijkers en de renderingstijd van de hele omgeving. Zodra je je erin begint te verdiepen en leert hoe een 3D model maken, lijkt het maken van LOD een koud kunstje. Zeker met al de details die je vandaag geleerd hebt.