Shockwave VFX

Mentorship project with Krill Interactive

ART & Gameplay

Shader Shockwave

The following videos show the nodes setup used for the main shockwave shape. It consists of textures with polar coordinates + UV Distortion * SDF Mask.

Polar coordinates setup

Distortion setup

SDF Mask

Curve Atlas


I used a curve atlas so that I could have multiple colours available in one asset, and select between them parametrically in the material. This is beneficial vs. creating a separate texture for every variation, since I didn’t need to go into Photoshop to create a new gradient texture every time. This way it’s more procedural and artist-friendly.



6-Point Lighting


This method allows for more volumetric smoke, even though it is still a quad. Instead of using 6 actual lights, I used a channel-packed mask representing the six directions (left, right, up, down, into, outo), previously rendered in Houdini with the actual 6-light setup.

Shader 6-Point Lighting

Niagara Systems

Description text underneath an image

Description text underneath an image

For the optimization of the NS I ended up trying two different methods: Spawn Groups and Visibility Tags. Both have the same objective: to reduce the number of emitters. Without this approach, I would have used 6 different emitters. As you can see in the video, I reduced 2 emitters and only used 4.

CPD

You can use this space here to write a bit more about the work you show on the side.


PS: You can duplicate and flip this layer too, helping you to quickly build a elegant layout.

NDC

On left mouse click, the character performs a visibility trace and writes the hit position and surface normal into a Niagara Data Channel.

The Niagara system listens to this channel through Spawn from NDC. When new data is available, it spawns particles and assigns each particle an NDC index.

During Read from NDC, that index is used to retrieve the corresponding Position and Hit Normal, which are then mapped onto the particle.

This drives the shockwave effect: the main Smoke / Blur / Base Alpha + Circle Glow + Shockwave spawn group is positioned and oriented at the impact point, while a Secondary Shockwave provides an additional layer to enhance the effect.


The practical optimization results of NDC: