Aanleiding
Ik wil graag nieuwe technieken ontdekken om dingen mogelijk te maken die ik eerst niet voor mogelijk zag. Die hogere technieken is wat graag wil kennen en hierin wil graag mezelf zien in ontwikkelen. Ik heb ooit wel eens met shaders gewerkt, maar wist eigenlijk nooit niet echt wat ze nu precies waren en wat je er eigenlijk allemaal mee kon doen. Ik dacht het is gewoon een techniek om realistisch water mee te maken. Wat nog meer?
Methodiek
~ Expert interview/conversation
Met de 3D artist van het bedrijf.
Shaders
Met shaders kun je heel veel doen. Het is super tof om hier mee te werken.
Het begrijpen van shaders is voor de eene wat moeilijker te begrijpen dan de andere.
Je hebt met shaders veel mogelijkheden om wat je allemaal kan creëren.
Doe eens onderzoek naar shaders.
Je terrein tot leven maken door natuurlijke realistische kenmerken te geven
wist je dat met shaders we zand tussen de berg lijnen kunnen creëren? Zodat het natuurlijke element realistisch naar voren komt.
Wist je dat we een zand laag onder de bergen kunnen creëren zodat het lijkt alsof het zand via de wind op de zijkant is geslagen?
Wist je dat je met een shader je een texture van ver af zo ziet, maar als je dichterbij komt je de texture op die laag kan toveren zodat de diepte gelijk blijft? want dat veranderd meestal als je van ver naar dichtbij komt.
Realistische wolken creëren
Wist je dat we die particle system die je nu gebruikt met PNGs we mooier en veel realistischer kunnen neerzetten door een shader?
Hierbij kunnen we ook het effect creëren dat de wolken ook langzaam vergaan en komen te bestaan.
~ Literature study
(1) De video legt de basis uit van shaders. Hierin heb ik de volgende inzichten uitgehaald.
Shaders zijn programma's die informatie over objectvertex en textuurcoördinaten gebruiken om de manier waarop materialen op game objecten verschijnen aan te passen.
Met sommige shaders kun je door delen van je game object heen kijken (transparantie shader) en sommige shaders kunnen ervoor zorgen dat je game object de omgeving weerspiegelt (reflecterende shader).
Shaders gebruiken kleurinformatie en manipulatie om vrijwel elk effect te bereiken dat je wilt dat je game objecten gebruiken.
Hoe werken shaders?
Shaders gebruiken een combinatie van textuur UV coördinaatinformatie, objectvertex- of pixelinformatie, scene lighting informatie en meer in wiskundige functies om de manier te manipuleren waarop objecten in de scène worden weergegeven.
(2) In deze video maakt de persoon 10 shaders in 10 minuten. Hierbij laat hij mogelijkheden zien met wat je nu allemaal wel niet met shaders kan doen. Uit deze video heb ik de volgende inzichten uit gehaald.
Inverted hull outlines
Dissolve
Dithered transparency
Silhouette
Scene intersections
Dot matrix
Stat increase
Portal vortex
CRT TV
Vertex waves
Hieronder zie je de foto met de voorbeelden van elke shader.
Resultaat
~ Computer Simulation
Terrein texture die ver en dichtbij ervoor zorgt dat het detail het zelfde blijf
Helaas is deze shader niet af. De 3D artist, Steven, had met mij samen deze shader in elkaar gebouwd. Maar tijdens het uitleggen en meer toepassen is de shader nu kapot en kan ik hem niet even zo maken.
Zoals je hier wel ziet, is dat dit een perfecte shader kan voor een landschap texture omdat die berekent hoe de faces staan en zo er een texture op moet komen. We maken hier nu gebruik van 2 textures die de shader ook nog eens overlapt wanneer de andere moet komen.
Helaas zit deze shader nog niet op de grond textures want hij is not niet af.
Shader Graph
Ik heb goed opgelet hoe Steven deze shader aan het maken was. Hij legde ook uit waarom je zit nu doet en waarom je deze node er juist nu tussen moet. Helaas probeerde ik zelf wat dingen uit maar ik begreep het heel slecht. Dit komt omdat er heel veel op je af komt en je ook wiskundig goed moet nadenken. Dat kan ik wel maar dit is toch even wennen zo de eerste keer zien.
Zand tussen de bergen maken en zand aan de onderkant van de berg laten overlopen
Zoals Steven al uitgelegd had gaan we dit nu daadwerkelijkj verwerken in het project. Hij begon met het laten zien van de stappen plan en heeft me vragen gesteld en gekeken of ik op zat te letten met de vorige uitleg. Ik snapte veel vragen en wist ze goed te beantwoorden. Helaas is het wel veel stof om op te nemen voor me.
Zoals je hieronder ziet is de berg met shader zo veel mooier en passender in de scene dan de eene zonder shader. Nu lijkt het echt alsof de natuurlijke elementen de berg in de jaren hebben aangepast. Het lijkt nu echt alsof er meerdere zandstormen zijn geweest en de berg er al veel langer staat.
Berg zonder de shader.
Berg met de shader
Het maken van de occlusion map in 3Ds max
Steven legde uit dan Unreal wel occlusion map kan maken. Helaas kan dat in Unity3D nog niet. Dit kan gelukkig wel gedaan worden als ik bijvoorbeeld 3ds Max. Deze hebben we nodig voor de shader om zo het zand tussen de bergen berekent te hebben.
Shader Graph
Deze heb ik samen gemaakt met Steven. Hierin vroeg hij bepaalde vragen weer en wist ze steeds beter te beantwoorden. Vragen zoals hoe we de faces zouden kunnen berekenen en hoe we kwa performance dit nog beter konden maken.
Wolken maken
Het was nu een uitdaging van mij om een wolken shader te gaan maken. Hier heb ik eerst lang over nagedacht en geprobeerd te maken. Helaas lukte het me na lang proberen niet en heb ik opgezocht hoe het wel kan. Hierna was het me wel gelukt en de shader geeft een mooie toevoeging aan de scene.
Shader Graph
Het is super cool om effecten zoals deze te creëren. Ze geven zo veel toevoeging en je kan ze op zo veel manieren aanpassen. Het versteld me nog steeds hoe cool shaders wel niet kunnen zijn en wat je hiermee eigenlijk allemaal wel niet mee kan maken!
Conclusie
Welke technieken kan ik gebruiken om effecten of textures op een effectieve manier goed, snel, slim en leuk te creëren?
Shaders zijn de perfecte toepassing om te doen voor dit project. Je kan er zo veel mee doen en hoeven niet perse veel performance eisend te zijn. Je kan hier leuke effecten mee maken maar ook leuk texturen.
Validatie
Door deze nieuwe shaders staat er een hele nieuwe wereld voor me open. Ik zie hoeveel je wel niet met shaders kan doen en hoe leuk het is deze te realiseren.
Ik heb het vorige particle system en de nieuwe wolken shader langs elkaar gelegd. Meteen zie je dat de shader zo veel meer toevoeging geeft en het veel beter maakt dan de oude particle system.
Iedereen aan wie ik het verschil liet zien was meteen overuit dat de shader veel leuker en beter was dan de particlesystem en dat zo het immersive experience veel beter naar voren komt.
Vervolgstap
Nu is het beter maken van de shaders en het implementeren van nieuwe in de toekomst.