Welcome to my shader portfolio. Here, you'll find a collection of custom shaders that I've developed using ShaderLab and implemented in Unity.
These shaders showcase a range of visual effects—from dynamic outlines and fog blending to complex vertex displacements and texture manipulations. Each project reflects my passion for pushing the boundaries of interactive visual design and my commitment to merging artistic vision with technical innovation.
Radar Shader
To create the radar shader, I broke down the pattern into separate layers.
First, I built a black-and-white coordinate gradient shader and added a time variable to create circular motion.
Next, I generated concentric circles using the frac and length functions and refined them with a round function for defined rings.
For the center cross, I used the step function to draw two perpendicular lines and combined them. Finally, I merged all layers and multiplied the monochrome output by green to produce the final radar effect.

Raindrop Ripple Effect

First Edition

Adding Water

Final Look
To create the ripple effect, I started by drawing a ring with two circles. Then, using the frac function with time, I made it expand while its thickness decreased, forming a single ripple. I then used a loop and value noise to generate multiple ripples at random locations.
I experimented with adding distortion noise for a water-like effect but eventually removed it for simplicity. Finally, I fine-tuned the timing and randomness of each ripple to complete the effect.
Tunning Shader With Mesh
I experimented with applying a single shader to different meshes to observe how each reacted, aiming to adapt the shader for various shapes.
After testing, I found the effect worked best on a cone mesh. I refined the shader by first creating a jittering cone, then modified it so that only the lower vertices moved while the top vertex stayed static. This adjustment made the cone resemble a piece of cloth hanging in the wind, evoking the motion of a ghost or a searchlight.

Floating TV

In this shader, I aimed to achieve a floating TV effect. I first modeled a TV in Blender that consists of two meshes—the frame and the screen.
I wrote the shader and used a wave function applied to the z-axis of the vertices to simulate a gentle floating motion. Additionally, I added white noise to the screen's shader to mimic TV static, enhancing the overall effect.
Water Shield
To create a water shield effect, I experimented with different normal maps and textures for a realistic water surface. I then used vertex displacement to simulate a floating water ball with slight distortions for fluidity.
To enhance transparency, I reduced the normal map's intensity, and to mimic gravity pulling water down, I used world and vertex normals combined with noise, creating a natural drip effect at the bottom.

Lava Scene

In this lava scene, I built a dynamic environment using custom meshes and shaders.
I started by creating a procedural rock base on a plane with vertex displacement, normal and displacement maps, and image-based lighting to simulate a rugged floor.
For the lava, I created a liquid texture—adding subtle vertex displacement to create slow, flowing waves. Finally, I added a heat wave element by applying a fully transparent, non-glossy water texture with tuned displacement and normals, resulting in a realistic, distorted heat haze.
Outline Shader
In this shader, I developed an outline image effect that leverages the depth buffer to highlight object boundaries. I applied Sobel edge detection on the camera's depth texture to generate distinct outlines for various objects, and I exposed a property for adjusting line thickness for easy customization.
Additionally, I used a lerp function to blend the original colors with a fog color, causing background objects to gradually lose their outlines and merge into the fog.
