As a student game developer I've often filled the role as a technical artist. With my background in digital art and software engineering, I felt right at home combining both skills to create shaders and particle effects. This post is about the process behind my VFX and tech art work created in Unity.

1. Area-of-Effect Electric Attack (Leechbug, 2020)

I'm directing the student game Leechbug, an RTS about fish swarms battling underwater. This is one of the fish's special attacks, an electric shock. I first brainstormed some ideas for the animation and picked the first sequence.

I experimented a bit with the particle system to make the fish look like it's building up energy, and added a noise shader to the expanding orb at the center. It ended up looking different from my initial sketches (and a lot cooler!)

2. Healing Aura (Leechbug, 2020)

We needed a way to clearly show which fish are affected by the healing aura, while obstructing the player's view as little as possible. It is important for the player to know what fish they are healing.

The translucent bubble doesn't show depth well – you can't tell which fish is within it. I added some floating "+" particles but it didn't help much.

I started to look for a way to put a screen space overlay on objects inside the sphere. I tried different approaches from scene depth to mesh boolean, before I found a hint online to use double render passes. The first pass is invisible, and writes only back-facing pixels that is behind another object to a stencil buffer. The second pass is the green overlay, and it renders only front-facing pixels that are in the same stencil buffer as the first pass.

This lets the green overlay render behind objects outside the orb, while still rendering in front of objects inside the orb:

Then I simply added the "+" pattern to the green overlay, and used a scene depth node to highlight the edge where the orb meets the object. This took a whole day to figure out and I was delighted when it finally worked!

Extra: For this project I also made a simple sine wave fish shader that saved our art department a lot of time, since they won't have animate each fish. It also mimics how a fish's head moves much less than its tail.

3. Memory Tree Shader (Momento, 2019)

Referencing this piece of concept art from our artist, I made the shaders for this memory tree and pond. We ended up changing the colors to make it more dreamlike.

The cloud shader combines a moving noise texture with a fresnel node to create a shimmering effect. The trunk and orbs use a gradient + fresnel shader, and the water uses a twirling noise texture.

4. Water Hose (2020)

This is a rework of a water hose effect I made in an old game jam years ago. I wanted to redo it as a portfolio piece after having learnt a lot more about VFX. I made a sketch of the elements that would go into the water stream.

I ended up not using the swirl effect since it didn't make sense for a water hose to "spin" the water (and it didn't look that great).

The stream of water is a cylinder with a shader that displaces its vertices with a moving noise texture. The stripes comes from another noise texture combined with a seamless water texture I painted:

The water splash is from a particle system that spawns squares with a moving noise texture. It works surprisingly well as as a stylized smoke or cloud effect.

5. Horror Glitch Effect (Berklee Game Jam, 2020)

This is a 3d glitch effect I made for a game jam project about living in quarantine, where household objects appear and disappear with a glitch. It's a shader applied to a cube that scrambles whatever is rendering behind its surface.

As a bonus, here is my talk about Unity Shader Graph that I recently gave to fellow students. Enjoy!

Next Up

Leechbug (Prototype)