Best practice for MVR exports from Vectorworks to L8
Before you start exporting every single nut and bolt from Vectorworks, remember: L8 features a massive built-in library with thousands of stage elements (truss, decks, pipes, stands, etc.) that are already perfectly optimized for the engine. Whenever possible, use L8 native objects for your stage structures.
However, if you are importing a custom production design via MVR, the main rule is simple:
However, if you are importing a custom production design via MVR, the main rule is simple:
If your scene imports into L8 under ~2000 objects - don’t merge or convert geometry to Mesh at all.
L8 performs significantly better when truss segments, deck panels, platforms, and set pieces remain as separate objects. This gives better memory management, faster loading times, and superior optimization (especially occlusion culling).
Only merge when you are clearly exceeding the object limit.
When merging makes sense:
Small, self-contained objects like a drummer kit, guitar amp, monitor wedge, furniture, or small props → yes, merge them into one mesh. It saves object count with almost no downside.
Large scene elements (truss, stages, floors, walls) → avoid merging unless absolutely necessary.
When you should NOT merge:
Multiple similar objects (e.g. all guitarists’ amps, many identical monitors, rows of chairs, etc.) - do not merge them all into one big mesh.
Large structural elements (long trusses, entire stages, big walls, floors) - avoid merging unless absolutely necessary.
When merging, do it smartly:
Keep merged objects relatively compact and cube-like (similar dimensions on X, Y, Z).
Avoid long “sausages” - for example, don’t merge a 40m truss into one single object or an entire 20×30m stage into one mesh.
Good practice: truss in 8–12m sections, deck blocks in 4×4m or 6×6m pieces.
Merging is not real optimization - it’s a last resort when you hit the hard limit. Keeping things separate is almost always better for performance in L8.
Next step: Understanding real performance bottlenecks in L8
Once your MVR is imported and you’re within the object limit, it’s vital to understand what actually limits your FPS. Contrary to popular belief, geometry is often not the primary bottleneck.
Correct troubleshooting order:
1. Turn off Smoke/Fog first.
Smoke generates complex volumetric beams. When thousands of lights are active, smoke creates a massive fill-rate bottleneck for your GPU.
Disabling smoke removes this heavy pixel-processing overhead, allowing you to see the true impact of the 3D models on your performance.
2. Make the fixtures work (Intensity + Randomized Movement).
Set Intensity > 0 and use Clean Open (no Gobos).
Randomize the movement: Add effects (pan/tilt) but ensure they are out of sync (offset/random phase).
Why? Using Gobos adds unnecessary texture-processing load. Keeping them in "Open" focuses the stress on the lighting engine. Randomizing the movement prevents FPS spikes from synchronous data updates, giving you a stable, realistic benchmark.
Static, dark fixtures don’t stress the L8 rendering pipeline. The engine's real work begins when lights are moving and illuminating surfaces.
3. Analyze geometry last.
Only now can you properly judge whether merging objects, optimizing complex truss, or reducing polygon counts will actually help.
Key takeaway:
Always start testing with smoke OFF, Gobos OFF, and lights ON + moving randomly. This is the only way to distinguish between fill-rate/shader limitations and actual geometry-related lag.
Step 3: Managing Fill-rate and Shader Limitations
If you’ve optimized your geometry but the FPS is still low when the lights and smoke are on, you’ve hit a GPU fill-rate limit. This is where the L8 engine struggles to calculate every pixel of every light beam.
Here are your options to push performance further:
1. Software Optimization (L8 Settings).
Lower "Beams Resolution": This reduces the precision of volumetric calculations. It’s the fastest way to gain FPS without changing your rig.
Increase "LUX Minimum": This is a clever trick. It tells the engine to stop calculating light at a certain distance/intensity threshold. It cuts off long, faint calculations that eat resources but don't add much to the visual result.
2. Hardware Scaling (Multi-GPU).
If software tweaks aren't enough, you need more raw power.
L8 Trace / Unlimited + FP23: If you have these licenses and the FP23 package, you can install a second GPU.
The Benefit: In L8, this can double your FPS, as the engine can distribute the heavy lifting of volumetric rendering across two cards.
The GPUs must be identical (e.g., two RTX 4090s). If the cards are different, you won't see a 2x performance gain as the engine cannot synchronize the workload effectively.
The GPUs must be identical (e.g., two RTX 4090s). If the cards are different, you won't see a 2x performance gain as the engine cannot synchronize the workload effectively.
3. The GPU Upgrade.
If you are on a single-card setup, the only way forward is a hardware upgrade (more CUDA cores and faster VRAM).














