
Time of Day: Runtime Day/Night Lighting System
A baked, night-only Unreal scene rebuilt as a fully dynamic Lumen environment, with a C++ controller that switches or blends between two complete lighting looks at runtime.
Personal project
A vehicle-maintenance and cargo hub inside a deep-space station — built to hold up at industrial scale without the texture budget that usually implies.
Ownership: Personal project. Every element described here — the modular kit, the trim sheet, the spline Blueprint, the lighting and the set dressing — is my own work. Work in progress; the images show the environment mid-development.

Assets: All geometry, materials and lighting authored by me. No marketplace or library assets.
A hangar has to read as enormous, and it has to read as functional. Those two goals fight each other: the scale that makes a space impressive is exactly what makes it repetitive and expensive to texture, and a big open volume gives the player no obvious route through it.
So the brief I set myself had three constraints. The space had to feel massive and lived-in. Player pathing had to stay legible without signage doing all the work. And the whole thing had to stay inside a texture budget that a real-time scene could actually afford.
Rather than model the hangar as a single environment, I built a modular kit — structural trusses, floor gridding and wall panels designed to snap together on a consistent grid.
The practical payoff is texel density. Because every piece is authored against the same grid and the same unwrap rules, surface detail stays consistent everywhere in the environment instead of drifting as the space expands. It also means the hangar can grow: adding another bay is assembly, not modelling.
The texturing approach is the decision I would defend hardest. Instead of unique bakes for every structural beam and wall panel, I authored a single 4K trim sheet in Substance 3D Painter containing corrugated metal, cable bundles, bolted seams and non-directional grunge.
Modular pieces — the yellow crane supports, the ceiling trusses — are then unwrapped to specific coordinates on that sheet. The result is detail that reads as bespoke across the entire hangar while resolving to a single material ID.
Tiling trims do have a tell: repetition. I broke that up with deferred decals for floor markings and safety warnings, which lets me put specific, narrative wear exactly where the composition needs it without adding a texture set.
The curved transit tube running through the background is not modelled by hand. I built a Blueprint that instances and deforms static meshes along a 3D spline: I move the spline points, and it recalculates how many segments are needed and handles their orientation and spacing.
This is the kind of Blueprint work I do — tooling that removes repetitive placement from the art process, rather than gameplay programming.
Large environments lose their sense of size without a human reference. Traffic cones, crates and terminal stations are placed specifically to give the viewer something whose real-world size they already know, which is what makes the crane supports and trusses read as massive.
The composition uses a high-angle perspective so the floor layout and overhead gantries are both visible, with the floor markings and the horizontal transit tube acting as leading lines into the depth of the scene.
Breakdown
How the trim sheet is allocated. The kit is unwrapped to fixed coordinates on a single 4K sheet, so detail reads as bespoke while the environment stays on one material ID.
Demonstration
Five bays built from four repeated module types — truss, brace, beam, floor plate. The wireframe is the same geometry as the solid pass, which is the point of a modular kit: one set of parts, consistent texel density, arbitrary length.
Shown as a live 3D view on larger screens with motion enabled.
Gallery



Next

A baked, night-only Unreal scene rebuilt as a fully dynamic Lumen environment, with a C++ controller that switches or blends between two complete lighting looks at runtime.

A measured optimisation pass on a scene I did not author: 30.45 → 22.60 ms GPU frame time at native 1440p, with the method and the missed target reported in full.

An Unreal Engine 5 master material driven by ID masks, so one mesh can swap between wood, painted metal and emissive trim without leaving the engine.