

DESCRIPTION
HUH
SHADER WORK
Welcome visitors to your site with a short, engaging introduction.
Double click to edit and add your own text.

WATER SHADER
Wave simulation
These are the nodes responsible for vertex displacement. Inside of the subgraph is the formula for Trichoidal waves. I blend three different waves together to make the effect seem more seamless.

Refraction
In the shader, refraction is calculated by getting screen-space information about the color, basically creating a duplicate texture of what the camera is showing. Then, this is distorted by a normal map. The final normal map is created by blending two scrolling textures.

Particle-based dynamic ripples
For Dynamic ripples and Player interactions, I use render textures and particles. This of course comes with some limitations, but it is a fair solution for small bodies of water, which were the planned to be the majority in our game.
​
​
These node setup is very simple. It's just adding the Render texture that is masked to only detect particles. The output of this is a black and white texture, where the white areas are the particles. With this, I derive a heightmap, which I then add on top of the previous wave displacement.
I also use this method to mask out certain areas from waves. For example, it doesn't make sense for water to behave the same near the shore.

Caustics
These set of nodes are contained in a subgraph, which is later on used for triplanar mapping. What is happening here is very simple, some Voronoi noises are blended between each other and multiplied by a float which determines the strength / brightness of the effect. All of the noises are displaced over time, giving the illusion of motion. Since The textures are moving at different speeds, it breaks the pattern, creating the caustics.
These are the nodes responsible for vertex displacement. Inside of the subgraph is the formula for Trichoidal waves. I blend three different waves together to make the effect seem more seamless.



GRASS SHADER
Wind Simulation
The wind simulation is very simple. The blades of grass are displaced according to a noise texture. This texture is in world space and it scrolls towards a direction, which is set externally. The displacecement is then masked, making it so the blades of grass sway only on the top.
​
​

Grass-Player interaction
Unity offers Render Features, which allow artists / coders to customize the way Unity renders some things. In this example, the render feature is used to displace grass in an area defined by a sphere. Inside of the game, the sphere is made invisible and placed under the player's feet. This method isn't the most scalable as the perfomance cost increases as interactable objects are added, but it worked very well for this particular project as the player was the only entity that was capable of interacting with the grass.
​
I achieved this by following NedMakesGames' tutorial (I also got in contact with him and he was very open to helping me out!)
​
​


Shading
These are the nodes responsible for vertex displacement. Inside of the subgraph is the formula for Trichoidal waves. I blend three different waves together to make the effect seem more seamless.


CRYSTAL SHADER
Crystal Refraction
These are the nodes responsible for vertex displacement. Inside of the subgraph is the formula for Trichoidal waves. I blend three different waves together to make the effect seem more seamless.

Additional Effects
These are the nodes responsible for vertex displacement. Inside of the subgraph is the formula for Trichoidal waves. I blend three different waves together to make the effect seem more seamless.

WATERFALL SHADER
Displacement
These are the nodes responsible for vertex displacement. Inside of the subgraph is the formula for Trichoidal waves. I blend three different waves together to make the effect seem more seamless.

Foam
These are the nodes responsible for vertex displacement. Inside of the subgraph is the formula for Trichoidal waves. I blend three different waves together to make the effect seem more seamless.
water droplets
These are the nodes responsible for vertex displacement. Inside of the subgraph is the formula for Trichoidal waves. I blend three different waves together to make the effect seem more seamless.

ADDITIONAL SHADERS
Toon Shader
These are the nodes responsible for vertex displacement. Inside of the subgraph is the formula for Trichoidal waves. I blend three different waves together to make the effect seem more seamless.
These are the nodes responsible for vertex displacement. Inside of the subgraph is the formula for Trichoidal waves. I blend three different waves together to make the effect seem more seamless.
water droplets
These are the nodes responsible for vertex displacement. Inside of the subgraph is the formula for Trichoidal waves. I blend three different waves together to make the effect seem more seamless.
3D MODELING
Welcome visitors to your site with a short, engaging introduction.
Double click to edit and add your own text.

TREES
Toon Shader
These are the nodes responsible for vertex displacement. Inside of the subgraph is the formula for Trichoidal waves. I blend three different waves together to make the effect seem more seamless.
Sand and Crystal sparkles
These are the nodes responsible for vertex displacement. Inside of the subgraph is the formula for Trichoidal waves. I blend three different waves together to make the effect seem more seamless.
water droplets
These are the nodes responsible for vertex displacement. Inside of the subgraph is the formula for Trichoidal waves. I blend three different waves together to make the effect seem more seamless.

ROCKS
Empower
Growth


PROPS AND VEGETATION
Vegetation
- Using Particles
​
- Fixing Normals
​
- Using a simple VD shader
