In het vorige artikel had ik het over materialen en shaders. Het materiaal is de belangrijkste interface voor de gebruiker. Deze laat alle eigenschappen van het materiaal zien die kunnen worden aangepast. De shaders bevatten alle algoritmen en wiskundige programmering. Op basis van de instellingen van de materiaaleigenschappen bepaalt de shader het uiteindelijke uiterlijk van het materiaal. Wat ik ook kort een aantal keer aankaartte was, dat texturen de materiaaleigenschappen verder kunnen beïnvloeden. Wat texturen precies zijn, hoe ze de materiaaleigenschappen beïnvloeden en wat enkele algemene textuurtypes zijn, wordt in dit artikel besproken.
1. Wat is een Textuur?
Wat is precies een textuur? Het is niets meer dan een afbeelding. Over het algemeen zijn texturen vaak niet meer dan eenvoudige .jpeg bestanden, en worden ze ook wel maps genoemd. De texturen worden gebruikt om materialen uit de echte wereld en hun specifieke eigenschappen nauwkeuriger weer te geven. De bruine leertextuur hieronder is bijvoorbeeld een Color textuur die kan worden toegewezen aan de kleureigenschap van een materiaal. Het materiaal heeft dan de exacte kleuren van de textuur wanneer je het in je 3D scène rendert.
Bruin leer, Color textuur
Gerendered op een 3D bol
We willen dat dit materiaal er robuuster uitziet. Zoals een echt leermateriaal. Je kunt je voorstellen dat zoals het er nu uitziet, het daar nog niet in de buurt van komt. Het heeft de kleur van leer, maar leer heeft meer specifieke real-world eigenschappen, waardoor leer eruitziet als leer. Zoals hoe reflecterend het is, of hoe verschillend de highlights zijn in de plooien. We moeten deze aspecten dus nabootsen. Om dat in een 3D scène te doen hebben we meer en verschillende soorten texturen nodig voor de verschillende eigenschappen van het materiaal.
2. Verschillende type texturen
Om een materiaal nauwkeurig na te kunnen bootsen, zijn er eigenlijk maar een paar standaardeigenschappen die normaal gesproken aangepast hoeven te worden. Dit wordt dan gedaan met specifieke texturen. Deze eigenschappen zijn:
We zullen het leermateriaal verder bekijken, om te zien hoe we door de materiaaleigenschappen te beïnvloeden met speciale texturen, een echt leer kunnen nabootsen. Hieronder staat het overzicht van de texturen die we gaan gebruiken en voor welke eigenschap de textuur wordt gebruikt.
Color map
Roughness map
Normal map
Displacement map
Roughness map
Een Roughness map bepaalt hoe scherp of wazig reflecties van het materiaal zijn. Het is een textuur in grijswaarden. Perfect wit is voor delen die volledig mat zijn, en perfect zwarte voor delen die scherp reflecterend zijn. Alle grijswaarden tussen zwart en wit geven een reflectie die lineair oploopt van scherp naar wazig.
Het leermateriaal heeft vagere reflecties in de plooien en scherpere reflecties op de plekken tussen de plooien in. Daarom zijn de plooien witter van structuur.
Het toepassen van de Roughness map op een standaard glanzend grijs materiaal, geeft het volgende resultaat:
Normal map
Een Normal map doet min of meer hetzelfde als een Bump map. Ze bootsen oppervlaktedetails na, zoals bulten, groeven en krassen. Zonder dat de daadwerkelijke oppervlaktedetail hoeft te worden gemodelleerd. Normaal gesproken wordt het één of het ander gebruikt, maar beide tegelijk kan ook. Er is een (persoonlijke) voorkeur voor de Normal map. Omdat deze meestal betere resultaten geven.
Normal maps hebben meestal een paarsachtige basiskleur. In de Normal map wordt de richting van het reliëf van het oppervlak van het object vastgelegd in een RGB-kleurenschema (rood, groen en blauw). Elke kleur vertegenwoordigt een andere richtings-as. De render software kan de verschillende RGB-tinten interpreteren en kan vervolgens reliëf nabootsen door schaduw en highlights toe te voegen. Je kunt duidelijk het reliëf van het leer zien in de textuur:
Color map
De Color map bevat niets meer dan alle kleuren van een materiaal. We hebben de kleurtextuur eerder in dit artikel toegepast. Maar nu zullen we het toepassen samen met de Roughness en de Normal map. Je zal zien dat dit een groot verschil geeft:
En vergeleken met wat we in het begin van het artikel hadden:
Displacement map
Een Displacement map is iets dat je als een heel zwaar wapen kunt beschouwen. Bump en Normal maps bootsen oppervlaktereliëf na, maar een Displacement map wordt gebruikt om de oppervlaktegeometrie tijdens het renderen werkelijk te genereren. 3D software pakketten hebben speciale Displacement technieken die je polygonen model in feite opsplitst in heel, heel, heel veel kleine driehoekige polygonen (vaak tot ver in de miljoenen polygonen). De Displacement map wordt dan gebruikt om je objectoppervlak daadwerkelijk te vervormen.
Een Displacement map is een textuur in grijswaarden. de render software interpreteert de zwarte kleur in de textuur als de hoogte van het basisoppervlak. Alles wat grijs tot wit is, wordt geïnterpreteerd als een reliëf bovenop het oppervlak:
Je kan je voorstellen dat voor het leermateriaal de Displacement een subtiele toevoeging is. Maar voor het volgende voorbeeld van een steenmateriaal betekent het een verschil tussen dag en nacht:
Kijk hier voor een additioneel voorbeeld van een textuur opbouw. In dit geval voor een betonnen wegmateriaal. Dit extra voorbeeld maakt gebruik van een Bump en Glossiness map.
3. Verrekijker textuur voorbeeld
We kunnen dezelfde textuurtechnieken gebruiken voor het voorbeeld van de verrekijker. We zullen texturen gebruiken om veranderingen in de materiaaleigenschappen te creëren voor onder meer de vloer, de verrekijker body en de handvaten.
Het eerder opgebouwde leermateriaal uit dit artikel, is eigenlijk hetzelfde materiaal dat wordt gebruikt voor de handvaten. Maar in dit geval is de kleur meer zwart gemaakt en de reflectie meer richting plastic behouden.
Het enorme verschil dat het toevoegen van texturen creëert, is te zien in de onderstaande vergelijking.
4. Labels
Naast de algemene texturen die worden gebruikt om materialen na te bootsen, zijn er ook vele andere toepassingen hoe texturen gebruikt kunnen worden om details toe te voegen. Ik zal niet verder in detail gaan, maar enkel als additioneel voorbeeld wil ik hier de techniek van labels aankaartten. Met labels kan je bijvoorbeeld logo’s op een model projecteren. Dit wordt ook in de final render van de verrekijker gedaan.
Hieronder is te zien dat het merklogo op de zijkant van de verrekijker wordt geplaatst.
Note!: Er is nog een laatste kanttekening die ik wil maken. In de wereld van 3D zijn er veel meer soorten texturen en, belangrijker nog, verschillende soorten workflows voor het gebruik van texturen. Mijn verhaal is alleen om je bewust te maken van texturen en hoe ze worden gebruikt. De 3D Artiest(en) met wie je misschien werkt, kunnen andere soorten software hebben en dus andere workflows met texturen hanteren.
Ik hoop dat je deze post leuk vond en iets nieuws hebt geleerd. Laat het me hieronder weten als je vragen of opmerkingen hebt.