Voor de leek – Hoe 3D Renderen Werkt. Deel 2: Materialen & Shaders

[ ongeveer 15 min. leestijd ]
Deel 1: 3D modellen

Dus je hebt je 3D model. Het is ofwel een polygoon model of een CAD NURBS model (zoals vermeld in het vorig artikel). Dus we importeren het in onze 3D render software, maar het ziet er nog steeds niet echt heel fraai uit. Hoogstwaarschijnlijk ziet het er gewoon saai en grijs uit door de basis materialen die de software toekent bij het laden van een 3D model. Maar door de juiste materialen toe te wijzen aan alle onderdelen van het model en de eigenschappen van de materialen naar wens aan te passen, zal dit enorm gaan veranderen (samen met het toevoegen van texturen, maar dat bespreken we in het volgende artikel).

Dus laten we het hebben over materialen. In het bijzonder wat materialen precies inhouden binnen het idee van een 3D software pakket. En hoe laten we de materialen eruit zien zoals we willen.

1. Wat is een Materiaal en een Shader?

Om te begrijpen hoe het veranderen van het uiterlijk van een 3D object werkt, moet je het volgende diagram in je achterhoofd houden:

Je hebt een 3D model. Je hebt het in een 3D render software ingeladen, en deze software biedt je zogenaamde Materialen om aan het model toe te wijzen. Zodat je het uiterlijk van het model kan veranderen. Dus je wijst een Materiaal toe aan het model. Aan het materiaal is een Shader en mogelijk enkele Texturen verbonden. Maar wat zijn nu deze drie items precies:

Materiaal – Een materiaal is in feite een container voor de shader en texturen. Het is de primaire interface naar de gebruiker. Het bevat het overzicht van alle eigenschappen en definities die je tot je beschikking hebt om het uiterlijk van het materiaal aan te kunnen passen. Dit kunnen zaken zijn als de kleur, transparantie, reflectiviteit en nog veel meer (afhankelijk van het soort materiaal).

Het kan er in een software pakket bijvoorbeeld zo uitzien als het voorbeeld hieronder. Waar je een kleurstaal hebt die je naar wens kan veranderen in de kleur die je wilt. En een slider om de waarde voor de ruwheid van reflecties aan te passen:

Shader – De shader bepaald in feite welke eigenschappen je beschikbaar hebt in je materiaal om aan te passen. Het hangt in principe achter de schermen van het materiaal en doet al het zware werk. Het bevat alle algoritmen en wiskundige programmering over hoe elke eigenschap wordt beïnvloed door de lichtinvoer van je 3D scène. Dit bepaalt dus specifiek hoe licht in je scène wordt vertaald naar het uiterlijk dat het materiaal krijgt in je uiteindelijke 3D render.

Texturen – We zullen hier in het volgende deel van deze blogreeks meer op ingaan, maar wat je voorlopig moet weten is dat texturen platte afbeeldingen zijn die worden toegewezen aan de eigenschappen van een materiaal om verder aan te passen hoe het materiaal er uiteindelijk uit zal zien. De shader gebruikt de texturen als input voor het materiaal om verder te bepalen hoe licht van je 3D scène moet worden vertaald naar de uiteindelijke afbeelding.

2. Materiaaleigenschappen voorbeelden

Ik kan me voorstellen dat dit allemaal wat vaag en ingewikkeld klinkt. Maar waar het op neerkomt is dat de combinatie van materiaal, shader en texturen bepaalt hoe een materiaal eruitziet en hoe het zich gedraagt op basis van de licht input van je 3D scène. Voor een Plastic Materiaal kan je bijvoorbeeld de kleur eigenschap aan passen van rood naar bijvoorbeeld blauw:

Maar je kan bijvoorbeeld ook de reflectiviteit eigenschap (ook wel ruwheid genoemd) aanpassen om het materiaal er matter of meer glanzend uit te laten zien:

Dit zijn eigenschappen die door de Shader aan het Materiaal worden toegekend, die wij op zijn beurt naar gelieve kunnen aanpassen.
Als we nu bijvoorbeeld een Metaal Materiaal hebben, heb je nog steeds dezelfde eigenschappen die je kan veranderen (bijvoorbeeld kleur en reflectiviteit). Maar omdat er een andere shader aan een metaal is gekoppeld, is het uiterlijk en het gedrag van het materiaal anders. Het veranderen van bijvoorbeeld de kleureigenschap van een metaal van de standaard grijze kleur naar een rode kleur resulteert in het volgende:

En het veranderen van de reflectiviteit van glanzend naar mat resulteert in het volgende voor een metaal:

En voor een meer directe vergelijking kunnen we het rode plastic naast het rode metaal bekijken. Het maakt vrij duidelijk wat de invloed van de shader is. Ze hebben allebei exact dezelfde instellingen voor de kleur en reflectiviteit. Ze hebben enkel verschillende shaders en reageren daarom anders op het licht in je 3D-scène.

3. Materiaal voorbeelden

Je hebt dus verschillende soorten materialen voor verschillende soorten toepassingen. Dit was ook te zien in de thumbnail aan het begin van deze post. Deze liet 5 verschillende soorten materialen zien (en dus 5 verschillende shaders). Van boven naar beneden en van links naar rechts zie je een zacht bruin plastic, een cartoon contourmateriaal, een rood glanzend hard plastic, een massief glas en een roestvrijstaal materiaal.

Nu we dit allemaal weten, kunnen we beginnen met het toewijzen van de juiste materialen aan ons 3D model en vervolgens de materiaaleigenschappen aanpassen om de materialen eruit te laten zien zoals we willen. Zo gaan we van een standaard grijze basismateriaal naar een volledig gematerialiseerd model.

Voor het verrekijker voorbeeld betekent dit dat we de volgend materialen toekennen. Een mat zwart plastic en glanzend zwart plastic op de body onderdelen. Een glazen lens materiaal voor de lenzen. Een rubber materiaal voor de kijkpoorten. Een witte matte plastic voor de belettering aan de bovenzijde. En een metaal materiaal voor de schroeven. Natuurlijk pas je voor elk materiaal de individuele eigenschappen naar wens aan (bijvoorbeeld kleur en ruwheid). En waar nodig voeg je texturen toe om de materialen verder te verrijken (dat zullen we in het volgende artikel behandelen). Uiteindelijk krijg je dit:

Opmerking!: Er is nog een laatste kanttekening die ik wil maken. Ik heb gesproken over verschillende materialen met verschillende shaders. Maar in veel 3D render software heb je algemene basis shaders met zoveel eigenschappen, dat je met deze enkele shaders bijna alle materialen kunt repliceren. Van kunststoffen en metalen tot glazen en complexe halfdoorschijnende materialen. Maar dat valt natuurlijk ver buiten het bestek van dit artikel. Maar voor de duidelijkheid, zulke shaders bestaan en zijn vrij algemeen voor gebruik in de belangrijkste 3D render pakketten die er zijn. Het vereist veel meer kennis, vaardigheid en ervaring op het gebied van werkelijke materiaaleigenschappen om die shaders op de juiste manier te kunnen gebruiken. Maar daar zal ik niet hier op ingaan.

Ik hoop dat je van dit bericht hebt genoten en iets nieuws hebt geleerd. Laat het mij gerust hieronder weten als je vragen of opmerkingen hebt.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *