Unreal Engine Shaders
Project Theme - Velocity, Contrast & Reversal Link to heading
Project File Link to heading
TriCount : 13, 380 Link to heading
FPS: ~100 on an RTX4070 Mobile With Latest Studio Drivers Link to heading
Ideation: Link to heading
When I heard of the theme, my primary idea was to create something related to the Doppler effect or similar to Return of the Obra Dinn. While I liked those ideas, I was not 100% certain that they would cover the scope of the requirements. To further adhere to the theme, I also decided to follow a Vapour/Synth Wave theme for the overall look of the area.
Aesthetic Inspirations: Link to heading
Resources: Link to heading
Software: Link to heading
In addition to UE, I used both Blender and Maya for Remeshing and creating new models. This allowed me to effectively downsample some of the high-resolution models and obtain a decent low-resolution version of them. I also decided to make models out of Tri’s themselves; this made Tri-Count more literal and also enhanced the visuals.
For some materials, I used Substance Painter; however, most of the materials were naturally rendered in the engine through the primary (MM_DynamicShader) Shader.
Tutorials: Link to heading
To get a base understanding of how to create Skybox Shaders, I used this tutorial by
Digvijaysinh Gohil. This provided me with a good understanding of how shading works for Unreal Skyboxes, which I then utilised to add the Grid effect animation and the sun.
I also used a few tutorials to help me understand how to handle wireframe shaders in Unreal Engine. As far as I understood, there were two ways people would do the Wireframe/edge effect: the first was through a convolution filter in a PostProcess material, and the second was by literally using the Wireframe Shader Setting built into the base material shader in Unreal.
Most of the other things I completed by pure trial and error. This is how I prefer to work; I enjoy tinkering with numbers and understanding how things operate, allowing me to learn through hands-on experience.
Models: Link to heading
- 4k_Duck was downsampled and then used.
- LionHead was used as is, and also used supersampling from a 4K model ( Tutorial on 3039 Seminar)
- The terrain was created in Maya using soft selection and remeshing
- Cube was from the engine
- Skybox is A Custom Shader.
- Mobius Strip [Nurbs and Sweepmesh] and Icosahedron were made in Maya.
My Favourite Part - The SkyBox & DynamicShader: Link to heading
I really loved making these two shaders, as I could fine-tune them to look the way I wanted with all the parameters I exposed for the Instances. This helped me refine the aesthetics I wanted and add some polish. Primarily through the animations and UV stretching of the Geometry masks, it really helped me establish a strong aesthetic. And make the scene feel more alive.
Future Improvements: Link to heading
Now you might be wondering, what about the Doppler effect thing? I tried very hard to make it work, and I succeeded. However, when I performed the shifting, it proceeded to lag significantly and also seemed to have damaged the model’s emissions. My laptop also decided to brick itself at this time, so I had to make do and scrap the Doppler Idea overall, although these shaders have worked well in implementing the theme and central concept behind my idea.
Some improvements include adding more models and incorporating some form of interactivity beyond physics. But at that point, it would become a more active endeavour so I will save that idea for the future. Vaporwave retro racing game, anyone?
Another critique would likely be that I haven’t grouped my shaders that well, especially the Expensive wireframe shader. So it’s kind of hard to understand what all the parameters do if you don’t know what’s happening under the hood.
My Failed Doppler Effect:
With this, I was trying to have a Grid projection displayed through the skybox to act as a false floor, it just looked weird tho.