Project Overview
Fantasy Lake is a real-time environment that serves as my entry into the Technical Art discipline, designed to bridge the gap between artistic vision and engine performance. The primary goal was to build a lush, interactive world while maintaining strict optimization. Key achievements include engineering a dynamic water shader, implementing lightweight vertex-animated wildlife, building custom Editor Utility tools to streamline pipeline workflows, and integrating custom-scanned PBR materials.
Technical Stack
- Engine:Unreal Engine
- Language: Blueprints (Visual Scripting) & Material Graph
- Key System: Niagara Particle System, Editor Utility Widgets (EUW), World Position Offset (WPO)
- Optimization: TrimSheets,Vertex Animation,Procedural Tiling
Image Gallery
← Scroll horizontally to view more →
Challenges & Solutions
1. Workflow Efficiency & Scene Organization
As environments scale, managing hundreds of assets leads to messy Outliners, inconsistent naming
conventions, and slow iteration times.
Solution: I engineered a "Multi Renaming Actor" (MRA) tool using Unreal's
Editor Utility Widgets. This custom UI tool allows for bulk operations—adding prefixes/suffixes,
find-and-replace, and auto-numeration—directly in the editor, streamlining the scene management
pipeline and enforcing naming standards.
2. Unique Landscape Texturing
Relying solely on standard libraries (like Megascans) can make a portfolio piece look generic. I
wanted a bespoke aesthetic without sacrificing PBR quality.
Solution:I created my own textures by scanning real-world elements. I captured
photos of grass, rocks, and forest floors, then processed them through a software called
Materialize to extract complete, tileable PBR maps (Normal, Displacement, ORM). This gave the
terrain an authentic, unique look tailored specifically to this project.
3. Interactive, Non-Repetitive Water Surfaces
Large bodies of water often suffer from obvious texture tiling and lack cheap, dynamic
interaction with the world.
Solution: I built a custom Water Shader that blends three wave normal maps with
a mathematical setup to break both surface and caustic tiling. For performance-friendly
interaction, I used a DistanceToNearestSurface setup to generate a dynamic mask. This creates
seamless, real-time ripples wherever other actors touch the water mesh, avoiding the need for
heavy fluid simulations.
4. Lightweight Wildlife Animation
Populating the environment with ambient elements like swarms of fish or flying birds can
drastically increase CPU overhead when using standard Skeletal Meshes.
Solution: I implemented Vertex Animation Textures (VAT) via materials. By
baking the animation data into textures and driving the mesh deformation entirely on the GPU,
I bypassed the CPU animation tick calculation completely. This allowed hundreds of background
creatures to be rendered with virtually zero performance impact.
Showcase Videos
← Scroll horizontally to view more →