Paint Dissolve

Paint Dissolve

Paint Dissolve

The visual goal was to create a controllable, unlit dissolve with a glowing emissive edge. Rather than default to fire or simple noise, I explored a melting iridescent paint aesthetic. The surface will liquefy and flow before vanishing entirely.

The visual goal was to create a controllable, unlit dissolve with a glowing emissive edge. Rather than default to fire or simple noise, I explored a melting iridescent paint aesthetic. The surface will liquefy and flow before vanishing entirely.

The visual goal was to create a controllable, unlit dissolve with a glowing emissive edge. Rather than default to fire or simple noise, I explored a melting iridescent paint aesthetic. The surface will liquefy and flow before vanishing entirely.

Type

UE5, Unlit, Paint, Dissolve

Type

UE5, Unlit, Paint, Dissolve

Shader Instructions

275

Shader Instructions

275

Figure 1: Video Demonstrating Shader Color Melting

Figure 1: Video Demonstrating Shader Color Melting

Figure 2: Snapshot of Shader Graph nodes responsible for the Material Melt

Figure 2: Snapshot of Shader Graph nodes responsible for the Material Melt

Dissolve Logic

Dissolve Logic

To solve the melting effect, I wanted to ensure that the dissolve would start from the top to bottom. This began with a bounding box based node, the blue channel is combined with a dissolve noise texture to distort the edge. The noise texture is multiplied by a dissolve noise tiling to give control of the UV seams to the artist. These are then separated into 3 color blends by using a cheap contrast node, creating the dissolved layer, the dissolving edge, and the material underneath. I added a node to account for glow for more customization before plugging the opacity mask into a Dither Temporal AA Node

To solve the melting effect, I wanted to ensure that the dissolve would start from the top to bottom. This began with a bounding box based node, the blue channel is combined with a dissolve noise texture to distort the edge. The noise texture is multiplied by a dissolve noise tiling to give control of the UV seams to the artist. These are then separated into 3 color blends by using a cheap contrast node, creating the dissolved layer, the dissolving edge, and the material underneath. I added a node to account for glow for more customization before plugging the opacity mask into a Dither Temporal AA Node

Figure 3: Snapshot of Shader Graph nodes responsible for Texture Layer

Figure 3: Snapshot of Shader Graph nodes responsible for Texture Layer

Figure 4: Snapshot of Resulting texture and its application on a Base Texture

Figure 4: Snapshot of Resulting texture and its application on a Base Texture

Paint Surface

Paint Surface

I was inspired by melting paint and overlapping colors so I started building the material with 2 texture samples, each with custom panning (controlled by artist). In rotating and panning the specific textures we’re able to simulate advection similar to a lava lamp. After the texture is rendered, I linear interpolate the inverse with a Color Curve (Gradient). The result is multiplied into the emissive node of the result. I added parameters to give the artist full control of the color gradients, panning speed, and noise textures. A Photoshop-style blend mode parameter added as a finish to give the artist control over how the layers interact.

I was inspired by melting paint and overlapping colors so I started building the material with 2 texture samples, each with custom panning (controlled by artist). In rotating and panning the specific textures we’re able to simulate advection similar to a lava lamp. After the texture is rendered, I linear interpolate the inverse with a Color Curve (Gradient). The result is multiplied into the emissive node of the result. I added parameters to give the artist full control of the color gradients, panning speed, and noise textures. A Photoshop-style blend mode parameter added as a finish to give the artist control over how the layers interact.

Figure 5: Snapshot of World Displacement Logic Nodes and resulting effect

Figure 5: Snapshot of World Displacement Logic Nodes and resulting effect

Wobble Warp Displacement

Wobble Warp Displacement

A separate noise texture sample drives World Position Offset to simulate the mesh losing structure as it melts. UV panning in both U and V channels creates a gel-like wobble. The artist has control of the wobble like animation by changing the coordinates (U and V) as well as the speed of the panning. I have two nodes responsible for the magnitude of the displacement, one is the strength scalar and the other is a strength multiplier (more powerful).

A separate noise texture sample drives World Position Offset to simulate the mesh losing structure as it melts. UV panning in both U and V channels creates a gel-like wobble. The artist has control of the wobble like animation by changing the coordinates (U and V) as well as the speed of the panning. I have two nodes responsible for the magnitude of the displacement, one is the strength scalar and the other is a strength multiplier (more powerful).

Figure 6: Snapshot of Shader Complexity of the Color Melt Material

Figure 6: Snapshot of Shader Complexity of the Color Melt Material

Optimization

Optimization

The shader is unlit, single-sided, and masked, with Temporal AA Dithering, avoiding the overdraw and blending issues that follow translucency in a deferred renderer. At 275 instructions it sits comfortably within desktop/console budgets.

The shader is unlit, single-sided, and masked, with Temporal AA Dithering, avoiding the overdraw and blending issues that follow translucency in a deferred renderer. At 275 instructions it sits comfortably within desktop/console budgets.

Thank You for Playing!

Thank You for Playing!

Thank You for Playing!

Thank You for Playing!

Thank You for Playing!

Thank You for Playing!