Repository navigation
Getting Started
From an empty project to a lit rig. Ten minutes if the example scene is enough. A little longer for a rig of your own.
- Unity 6000.4 or newer.
- Universal Render Pipeline 17.4 or newer (the version Unity 6000.4 ships with), in Forward or Forward+ mode. Deferred rendering is not supported.
- AudioLink 3.1.2 or newer, only if you want fixtures driven by music. A DMX-only rig doesn't need it. Without it the AudioLink fixtures, their light manager, the AudioLink menus and the AudioLink example scene aren't available; install AudioLink later and they appear, and any scene already using them picks them back up.
- Windows (D3D11 or D3D12, desktop and PC VR), Android and Quest (Vulkan, multiview), or Linux (Vulkan, desktop or headless server). macOS and iOS aren't supported. The beams are raymarched and the decode runs in compute shaders, and the package hasn't been checked on a Quest headset, so check the look and the frame time there before you ship.
In the Package Manager, choose Add package from git URL and paste:
https://github.com/towneh/vrsl-urp.git
If you have cloned the repository, point Packages/manifest.json at the folder instead:
"town.mr.vrsl-urp": "file:C:/path/to/vrsl-urp"Nothing needs adding to your URP renderer, because the package injects its render passes at runtime and never edits your pipeline asset. After you install, run VRSL → URP → Validate Renderer Setup once. It reads your pipeline asset and the open scene and reports, in plain terms, whether anything on your side needs to change, and it only reads.
Open one of the example scenes:
| Scene | Folder | Needs |
|---|---|---|
VRSL-ExampleScene-AudioLink-URPRealtimeLights |
Runtime/Example Scenes/AudioLink-Scenes/ |
AudioLink installed, and audio playing through it |
VRSL-ExampleScene-EditorViaOSC-Horizontal-URPRealtimeLights |
Runtime/Example Scenes/DMX-EditorViaOSCScenes/ |
A desk or DMX sender |
The AudioLink scene lights up as soon as audio plays. The DMX scene stays dark until something feeds it, which is the expected state rather than a fault, and DMX Sources covers the ways in.
-
Add a light manager. For DMX, run VRSL → URP → Add Light Manager to Active Scene. For AudioLink, drag in
Runtime/Prefabs/AudioLink/VRSL-AudioLink-LightManager. A scene has at most one of each. The manager fills in its own shader and texture references. Its inspector opens with one status line that says whether it is fully wired. If a reference goes missing, run VRSL → URP → Repair Manager Wiring. -
Add fixtures. Drag prefabs in from
Runtime/Prefabs/DMX/orRuntime/Prefabs/AudioLink/. Each is a fixture body with the light component already on it. To light from geometry of your own, addVRSLDMXRealtimeLightorVRSLAudioLinkRealtimeLightto it. Then pointlensTransformat the place the light should come from.For an AudioLink rig, run VRSL → URP → AudioLink Config → Setup AudioLink Realtime Lights in Scene. It adds and wires the component on every AudioLink mover in the scene.
-
Patch them. A DMX fixture needs the universe and start channel that the desk sends it on. An AudioLink fixture needs a frequency band and a colour source. Fixtures walks through both.
-
Press play. Surfaces light, and beams appear where a fixture points into the air.
Select the manager in play mode, right-click the component header and run VRSL Diagnostics. It prints one block in the Console that answers four questions: whether the shaders compiled, whether the decode produced fixture data, whether the tile cull keeps it, and whether the surface prepass feeds the surfaces. It also says what the beams took. Read it first when a scene is dark.
For DMX, open VRSL → URP → DMX Config → DMX Monitor. It shows every channel of a universe live. It names which of the two DMX paths the fixtures read, and how long ago each universe was last heard from. A patch that is off by one is obvious there and invisible in the lit scene.
- Fixtures for the fixture types and their fields.
- Performance and Quality for the one cost control and how to measure your own scene.
- Mirrors and Secondary Cameras if your world has mirrors.
- Troubleshooting when something is dark.