From Render Texture to Fixture Path
The output boundary keeps artistic composition independent from fixture transport.
The central architectural choice in DungeonOPC is that the room is rendered before it is transmitted. Rather than teaching every effect about every physical fixture, Unity produces one visual field through the OPC camera. A sampling component reads that field after rendering and extracts color sequences along configured paths, turning scene composition into fixture data.
That boundary keeps artistic code separate from transport code. Pattern authors work with light, geometry, motion, color, and shared show controls. The output layer validates pixel counts, constructs Open Pixel Control headers and bodies, and handles practical network constraints such as splitting oversized unbuffered UDP frames into safe chunks. A visual pattern does not need to know how its pixels eventually cross the network.
The pattern layer follows the same separation of concerns. Existing Timeline scenes and newer procedural effects are wrapped behind common controls for activation, triggering, intensity, speed, palette, blend, and audio reactivity. A registry and orchestrator decide which primary pattern and overlays receive the current show state, so inactive visuals do not continue drifting or consuming unnecessary work in the background.
Visual testing is fixture-aware as well. The editor coverage system opens an isolated temporary scene, records a black baseline, drives each registered pattern with deterministic synthetic show state, and samples the same paths used by the output system. It evaluates exposure, path coverage, timing, trigger response, and other intent-specific metrics while retaining images as review aids. This makes the regression contract about whether a pattern reaches the intended output—not whether every future frame remains pixel-for-pixel identical.