Website powered by

Unreal Engine Diorama - Tropical Scene

Here’s a demo I made in Unreal Engine to test my technical abilities in multiple areas including water shaders, flipbooks, vertex animations, morph targets, procedural workflows, virtual textures and Niagara particles…

The art style was also fun to figure out. I really wanted to push the color, saturation and brightness on this one and I think I’ve managed that. I’m quite happy with the result. Performance is around 30fps at 1080p on a 970GTX/1950TR in editor. It’s definitely costly to render but it’s not really crazy expensive either considering that’s 5+ years-old hardware (and there’s room for improvements)

Hope you like it !

Seamless tiling flipbook based ocean with linear frame interpolation

Seamless tiling flipbook based ocean with linear frame interpolation

A Niagara particle system samples the foam and height flipbooks and generates particles on wave crests (crest threshold is controllable)

A Niagara particle system samples the foam and height flipbooks and generates particles on wave crests (crest threshold is controllable)

Distance field based animated shore lines

Distance field based animated shore lines

Shore lines textures are projected using DistanceToNearestSurface and DistanceFieldGradient converted to a normalized angle to create UV coordinates (costly)

Shore lines textures are projected using DistanceToNearestSurface and DistanceFieldGradient converted to a normalized angle to create UV coordinates (costly)

Blender is used to generate an FFT ocean simulation to bake height/foam/normals flipbooks

Blender is used to generate an FFT ocean simulation to bake height/foam/normals flipbooks

A margin of a couple of pixels is necessary to get rid of sampling artifacts when using tiling flipbooks

A margin of a couple of pixels is necessary to get rid of sampling artifacts when using tiling flipbooks

Linear interpolation is used to blend flipbook frames for a smooth animation

Linear interpolation is used to blend flipbook frames for a smooth animation

Smooth, seamless tiling flipbooks :)

Smooth, seamless tiling flipbooks :)

A static mesh morph target is baked into UV coordinates using a Python script in Blender to bake vertex position and normal

A static mesh morph target is baked into UV coordinates using a Python script in Blender to bake vertex position and normal

Rocks blend into eroded morph targets below water level using a simple material

Rocks blend into eroded morph targets below water level using a simple material

Virtual Textures are extensively used for all kind of effects

Virtual Textures are extensively used for all kind of effects

Most notably they're great to very smoothly blend-in assets with a landscape

Most notably they're great to very smoothly blend-in assets with a landscape

Pebbles are projected onto the landscape for a quick drag&drog workflow

Pebbles are projected onto the landscape for a quick drag&drog workflow

'Skirts' are added to trees to better ground them and smoothly blend-in with the landscape

'Skirts' are added to trees to better ground them and smoothly blend-in with the landscape

Cheap, fake bounce lighting is added using Virtual Textures to sample landscape's height to check if a pixel is above water or sand

Cheap, fake bounce lighting is added using Virtual Textures to sample landscape's height to check if a pixel is above water or sand

Cheap animated bubbles are made with vertex animation and static mesh instances

Cheap animated bubbles are made with vertex animation and static mesh instances

Vertex animation and static mesh instances are used to create groups of smaller fishes as well

Vertex animation and static mesh instances are used to create groups of smaller fishes as well

Alternatively a Niagara particle system can be created to instance fishes and implement more complex behaviours, like obstacle and nearby fish avoidance

Alternatively a Niagara particle system can be created to instance fishes and implement more complex behaviours, like obstacle and nearby fish avoidance

Bigger fishes use skeletal animations and follow a spline. A couple of parameters are used to customize the spline animation

Bigger fishes use skeletal animations and follow a spline. A couple of parameters are used to customize the spline animation

Plants & grass are scattered using a simple Construction Script

Plants & grass are scattered using a simple Construction Script