Introduction
This Waterfall Diorama was created as part of my polytechnic year 2.2 module assignment, 3D Environment(3DE), where I was tasked to create a diorama using modular low-poly models with a waterfall present within the diorama. The modular pieces were modeled and textured in Maya and Substance Painter.
Snapshots
Breakdown
I will now be doing a breakdown on how I've made certain aspects of this diorama.
Trees and Foliage
As I was looking for a Forest theme for this diorama, multiple low-poly trees and mushrooms were modeled and textured using a single texture atlas with only flat colours.
Swaying grass
To make the environment look abit more interesting, I placed multiple grass across the diorama that has a shader that displaces each vertices based on a gradient noise value.
As I was unfamiliar with shader programming, I made use of Unity's shader graph to create the shader with the help of Brackeys Grass Shader tutorial.
Waterfall
The waterfall itself has 2 parts, the shader and the mesh.
Shader
Creating the shader itself was pretty straight forward with 3 simple steps:
- Displace each vertices of the mesh based on a
Gradient Noise - Lerping the above result with the R channel of the
Vertex Coloras theTvalue to ensure that vertices with red Vertex Color are not displaced. - Create a normal map using another
Gradient Noiseplugged into theNormal From Heightnode.
Mesh
The way I have created the waterfall mesh are as follows:
- Extruding a cube and adding multiple subdivisions so that the resulting vertex displacement from the shader does not feel "choppy"
- Unwrapping the UV in such a way that the back portion of the mesh mirrors the front portion since the gradient noise used for the vertex displacement is procedural and not seamless. The mirrored UVs would allow me to "fake" the seamless displacement.
Interactive Water
The final aspect of the diorama is to add water interaction the moment the player enters the water. By referencing a tutorial created by MinionsArt, I was able to create the interactive water by writing a script and using Unity's Particle System.
Download this documentation instead to setup the Interactive Water.