#Premodeled Light Fixtures
Upload your own fixture models and the Light Shop drives them like real units — pan, tilt, beam, flare, and a lit lens.
The Light Shop's parametric generator covers a lot, but sometimes you need your fixture — the exact Leko, moving head, or LED batten on the plot. Upload a rigged model and EVT3D articulates it with the same controls as a generated fixture: pan and tilt, a real spotlight with volumetric beam and lens flare, and the lens shader that glows hot-white in the center and fades to the beam color.
What makes a model "rigged" here is nothing exotic: four named nodes, nested in order. This page is the reference for that contract. For the guided version — how to set it up in Blender, Max, C4D, or Unity — follow the Rigging light fixtures tutorial.
#The rig contract
One chain, each part a child of the one above:
FixtureName ← root — display name, anything you like
FixtureName_Base ← static mount (clamp / floor plate) — never moves
FixtureName_Yoke ← pans about vertical
FixtureName_Head ← tilts + carries the beam
FixtureName_Lens ← beam origin + lens shader target
| Node | Role | Pivot goes |
|---|---|---|
_Base | Static clamp or floor plate | At the mount contact point |
_Yoke | Pans (spins about vertical) | On the pan bolt |
_Head | Tilts + emits the beam | On the tilt axle |
_Lens | Beam origin; takes the lit-lens shader at runtime | At the lens center, on the optical axis |
Names match case-insensitively on the last word, with synonyms accepted (base/clamp/mount, yoke/fork/arm, head/body/barrel/can, lens/emit/aim) — but the canonical four above are the standard.
#Authoring rules
- Upright, +Y up, meters, real-world scale. Base contact at Y = 0.
- At rest the beam aims out −Z. Author the fixture standing; EVT3D reorients it per mount (floor/stand as authored, pipe/truss flipped to hang).
- Pivots on the real axes. Each node rotates about its own origin — yoke origin on the pan bolt, head origin on the tilt axle.
- The lens is a separate flat disc at the aperture with centered planar UVs (center 0.5, 0.5) and its own material. Multi-emitter fixtures use one lens per cell:
_Lens_01,_Lens_02, … - Preserve the hierarchy on export. No merge/flatten/join options — a fused mesh has no rig. GLB is native; FBX auto-converts on upload.
#Reduced forms
| You author | Behavior |
|---|---|
_Base > _Yoke > _Head > _Lens | Full rig — static mount, pan, tilt |
_Yoke > _Head > _Lens (no Base) | Yoke is the mount — still pans, nothing static |
_Base > _Head > _Lens (no Yoke) | Tilt-only — pan disabled, base frozen |
#Categorizing the upload
Upload the model into the Light Fixtures category — that's what the Light Shop's Premodeled fixtures list shows (Design tab → Mode → Premodeled (model)), so categorized fixtures appear there instantly as pickable lights. Name it whatever reads naturally. The fastest path is that list's own ⬆ Upload Fixture Model button: it takes the file directly (GLB, GLTF, OBJ, FBX, SKP, or zip), categorizes it for you, and loads it straight into the studio.
Not categorized? Use the 🔍 Search Library button next to it to search your whole library unfiltered and load any model as a fixture. Setting its category to Light Fixtures afterward (in the Prop Editor) keeps it in the fast list.
#Verifying a fixture
In the Light Shop, open the Design tab, set Mode to Premodeled (model), and pick it from Premodeled fixtures. The mapping panel shows the detected Base / Yoke / Head / Lens rows with the node each mapped to:
- All four rows named → the rig read exactly as authored.
- Yoke row "— (no pan)" → no yoke node found; the fixture is tilt-only.
- Base row "— (yoke is the mount)" → the no-base reduced form was recognized.
- Lens row "— (emit estimated)" → the lens marker didn't survive export; the beam origin is being guessed from the head's shape. Re-export with the
_Lensnode intact.
Then test the controls under Aim — Test Drive: the base should hold still, Pan (yoke) should swing the yoke, Tilt (body) should rock the head, and the beam should track the lens.