
Hand-Drawn Constellation Illustrations

Ursa Major - In-Game Reveal

Draco - Hand-Drawn Illustration
Shader Graphs

Water Shader Graph

Interactive Grass PBR

Fire Shader Graph
Mystic Camp
VR Meditation Experience
Role
Technical Artist / Developer / Environment Artist
I contributed across both the technical and artistic sides of the project, including environment asset creation, shader development, VFX creation, and VR-focused performance optimization.
Overview
Mystic Camp is a virtual reality relaxation experience where the player sits beside a peaceful lakeside campsite in a magical environment. The experience focuses on atmosphere and immersion, allowing players to relax near a campfire while surrounded by natural elements such as water, grass, and glowing fireflies.
The goal of the project was to create a calm, visually rich environment that remains performant in VR, where stable framerate and visual comfort are critical.
Technical Contributions
Stylized Fire VFX
I created the campfire visual effects used at the center of the scene. The fire was designed to feel stylized and magical rather than realistic, fitting the atmosphere of the environment.
- Animated flame effects
- Dynamic glow lighting
- Supporting particle effects
The fire acts as the main focal point of the scene.
Firefly VFX
To reinforce the magical atmosphere, I implemented firefly particle effects floating around the campsite. These small glowing particles provide environmental motion and help make the scene feel alive while maintaining lightweight performance suitable for VR.
Interactive Grass Shader
The grass system reacts physically to the player's presence. Using tessellation-based deformation, the grass bends and reacts when the player interacts with it. This creates a more immersive environment while maintaining a stylized visual style.
Magical Water Shader
The lake water uses a semi-realistic stylized shader designed to work well in VR.
- Animated water surface
- Reflection effects
- Stylized lighting response
Because real-time reflections are expensive in VR, I used a pre-baked cubemap instead. The cubemap captures the surrounding environment once, and the shader samples it for the water surface rather than re-rendering the scene from the water's perspective every frame.
A static cubemap reflection looks flat though - it doesn't move as you change your viewing angle, which breaks the illusion of water. To fake depth and motion, I apply a parallax offset: I shift the cubemap sample coordinates based on the view direction and the surface normals (driven by the animated water normal map). As you look around or as the waves ripple, the reflection appears to shift and distort like it's sitting on a real, moving surface - all without the cost of true dynamic reflections.
Constellation Interaction System
One interactive feature allows the player to discover constellations in the night sky. Players can point at individual stars to activate them. As stars are selected, they light up and become connected to form a constellation.
The system is implemented using:
- Unity Line Renderers to dynamically draw constellation connections
- Scripts to track star activation and constellation completion
- Shader and post-processing effects for the star glow
When a constellation is completed, the system reveals the name of the constellation and a stylized illustration representing it. The constellation illustrations were drawn by me and integrated into the experience using post-processing and glow effects to create a magical reveal moment.
This system combines interaction design, scripting, shaders, and visual effects to create a calm exploratory activity within the environment.
VR Performance Considerations
Performance optimization was a key part of the project because VR requires stable high framerates.
Optimization Strategies
- Baked cubemap reflections instead of real-time reflections
- Lightweight particle systems
- Shader-based environmental effects rather than complex geometry
These choices allowed the scene to maintain immersion while remaining VR-friendly.