Mastering Environments Personal Project
Started as a guided exploration through Rebelway's Mastering Environment course, but quickly became a deeper technical and artistic exercise. I pushed the project well beyond the base tutorial, redesigning the landscape, expanding the vegetation library, and rebuilding the entire shading pipeline in a different render engine.
Year
2024
Houdini / SpeedTree/Arnold / Quixel Megascans / Runway AI
Environment Layout & Scattering
heightfield system
The foundation of the scene was built in Houdini using a procedural heightfield system to sculpt and shape the mountain landscape, giving full control over terrain features, erosion and surface detail. Custom scattering techniques were then used to populate the landscape with controlled vegetation variation, writing scattering logic that responds to terrain slope, altitude and proximity to water, giving the environment a natural, art-directed feel.
Custom VEX Scattering System
Rather than using a standard instancing setup, I wrote a custom VEX script to control how the 8 tree variants were distributed across the terrain. The code uses probability weighting to favour certain species in specific conditions, mimicking how forests naturally tend toward dominant species while maintaining variety. Each point on the scatter network gets an independently randomised scale and rotation within art-directed min and max ranges, avoiding the repetitive look that default scattering produces.
The system also allowed me to quickly iterate on the forest feel by adjusting simple channel parameters without touching the underlying code, keeping the artistic control accessible while the technical logic ran underneath.
Vegetation Variants
To avoid repetition across the landscape I built a library of 8 custom tree variants in SpeedTree, each with distinct silhouette, branch structure and seasonal colour. Combined with additional bush and ground cover assets from Quixel Megascans, each species was scattered independently across the heightfield terrain, allowing fine control over density, colour variation and distribution per zone. The result gives the environment a natural diversity that reads both up close and at distance.
Shading Networks — Arnold Migration
The original course uses a different render engine, so every material had to be rebuilt from scratch in Arnold. This meant independently solving surface translations, SSS on foliage, atmospheric shading and sky lighting without a direct reference point. It was the most technically demanding part of the project and the one I learned the most from.
Lighting & Atmosphere
The lighting targets a late afternoon golden hour with ground mist settling into the valley. Atmospheric depth was built in layers to push the sense of scale between the foreground trees, the mid-ground ridgeline and the distant peaks.
AI Camera Exploration — Runway
As a final creative step I used Runway AI to generate a drone-style camera move across the finished frame. This was an exploratory exercise in using AI as a motion tool on top of a fully rendered CG environment. The result gives the still image a cinematic sense of scale and flight that a locked frame alone could not convey.
This project became one of the most rewarding personal explorations I have taken on. Starting from a structured course and gradually pulling it in my own direction taught me as much about decision making and artistic ownership as it did about the tools themselves. Bridging Houdini, SpeedTree, Arnold, Megascans and Runway into a single cohesive pipeline forced me to think like both an artist and a technical problem solver at every step, which is exactly the kind of challenge I look for in my work.