Overview
Static light shaders provide fixed-position stage lighting effects including projection mapping and realistic lens flares. These lights don’t include pan/tilt mechanics but offer the same projection and color control as moving lights.Shader Paths
DMX Control
VRSL/Standard Static/ProjectionVRSL/Standard Static/Lens Flare
AudioLink Control
VRSL/AudioLink/Standard Static/ProjectionVRSL/AudioLink/Standard Static/Lens Flare
Projection Shader Properties
DMX Configuration
int
default:"0"
DMX fixture number/sector. Each static light uses 13 channels in standard mode or 5 channels in 5CH mode.
bool
default:"false"
Enable extended universe mode for up to 9 DMX universes.
bool
default:"false"
Enable DMX control via render texture.
enum
default:"0"
Channel mode:
0: 13CH - Full control (13 channels)1: 5CH - Simplified control (5 channels: intensity + RGB)
bool
default:"false"
Enable legacy DMX grid reading compatibility.
bool
default:"false"
Switch to vertical DMX grid layout.
Intensity and Color
float
default:"1"
Final intensity multiplier for the light output.
float
default:"1"
Global intensity shared across all fixtures.
float
default:"1"
Blend between local and global intensity.
float
default:"1"
Universal scene intensity multiplier.
color
default:"(1,1,1,1)"
Light color tint (HDR). Multiplied with DMX RGB values.
float
default:"1"
Maximum light intensity output.
float
default:"1"
Red channel multiplier for color correction.
float
default:"1"
Green channel multiplier.
float
default:"1"
Blue channel multiplier.
Projection Settings
texture
default:"white"
GOBO texture for projection pattern.
float
default:"1"
Maximum projection intensity. Higher values create brighter projections.
float
default:"0"
Horizontal offset for projection in world space.
float
default:"0"
Vertical offset for projection in world space.
float
default:"0"
Drawing range for projection. Scales the projection mesh.
vector
default:"(0, -0.07535, 0.12387, 0)"
Origin point for projection range scaling.
float
default:"1"
Attenuation constant for distance-based falloff.
float
default:"1"
Light range/falloff distance.
float
default:"1"
Attenuation quadratic factor. Controls falloff curve.
float
default:"0"
UV scale modifier for projection. Adjusts GOBO size.
float
default:"1"
Projection UV X axis stretch.
float
default:"1"
Projection UV Y axis stretch.
float
default:"0"
Static rotation angle for the projection in degrees.
bool
default:"false"
Enable automatic projection rotation animation.
float
default:"0"
Speed of automatic projection rotation.
bool
default:"false"
Use world normals instead of view normals for projection.
float
default:"0"
Beam spread/specular strength.
Rendering Options
enum
default:"1"
Transparency rendering mode:
1: Transparent2: AlphaToCoverage
enum
default:"2"
Source blend mode.
enum
default:"1"
Destination blend mode.
enum
default:"0"
Blend operation.
bool
default:"false"
Enable depth buffer writing.
bool
default:"false"
Enable alpha to coverage for MSAA.
float
default:"0.5"
Alpha clipping threshold.
float
default:"0.5"
Alpha channel intensity for projection.
bool
default:"true"
Enable multi-sample depth texture reading.
Advanced Options
bool
default:"false"
Use raw unsmoothed DMX grid for instant response.
bool
default:"false"
Enable strobe effect support.
float
default:"1"
Strobe frequency in Hz.
Lens Flare Shader Properties
The Lens Flare shader creates realistic lens flare effects with depth-based occlusion.Core Properties
texture
default:"white"
Lens flare texture. Typically a circular gradient or starburst pattern.
float
default:"1"
Maximum light intensity for the lens flare.
float
default:"1"
Intensity multiplier for bloom scaling. Higher values create more intense bloom effects.
float
default:"1"
Fade strength from center to edge.
float
default:"1"
Color saturation strength. Lower values desaturate toward edges.
Scale and Distance
float
default:"1"
Overall scale factor for the lens flare.
float
default:"2"
Reference distance for scaling calculations.
float
default:"1"
UV scale for the flare texture.
Depth Occlusion
bool
default:"true"
Enable depth-based occlusion testing. Flare fades when objects are in front.
float
default:"0.05"
Radius for depth occlusion sampling in view space.
float
default:"-0.001"
Z-bias for depth comparison. Adjust to prevent self-occlusion.
Distance Fade
float
default:"0.05"
Distance where flare starts to fade in (world units).
float
default:"0.5"
Distance where flare is fully visible (world units).
Visual Polish
float
default:"0"
Removes texture artifacts by subtracting a small value.
float
default:"5"
Light intensity curve modifier. Adjusts brightness response curve.
bool
default:"false"
Enable premultiplied alpha blending. Requires texture with correct alpha.
Flicker Animation (Optional)
bool
default:"true"
Enable flickering animation for the lens flare.
float
default:"5"
Speed of the flicker animation.
float
default:"0.5"
Minimum intensity during flicker. 1.0 = no flicker.
Channel Modes
The lens flare supports multiple DMX channel modes:enum
default:"2"
0: 1CH - Intensity only1: 4CH - Intensity + RGB2: 5CH - Intensity + RGB + Strobe3: 13CH - Full control
Usage Examples
Static Projection Light
- Create a projection mesh (cone or pyramid)
- Assign
VRSL/Standard Static/Projectionshader - Set DMX channel with
_DMXChannel - Assign GOBO texture to
_ProjectionMainTex - Adjust
_ProjectionRangeto fit the scene - Set
_ProjectionMaxIntensityfor desired brightness
Lens Flare Setup
- Create a quad facing the camera
- Assign
VRSL/Standard Static/Lens Flareshader - Assign lens flare texture to
_MainTex - Set
_DMXChannelto match the fixture - Adjust
_ScaleFactorfor appropriate size - Enable
_UseDepthLightfor realistic occlusion
Performance Tips
For Projection:- Use lower
_ProjectionRangeto reduce overdraw - Disable
_MultiSampleDepthon mobile platforms - Use simpler GOBO textures (lower resolution)
- The depth occlusion test (
COUNT = 8) performs 289 depth samples per flare - Disable
_UseDepthLightfor better performance if occlusion isn’t needed - Reduce
_FixutreIntensityMultiplierto decrease bloom overhead - Use
_AlphaToCoveragemode for cleaner edges on MSAA
Technical Details
Depth Occlusion Algorithm
The lens flare uses a grid-based depth sampling approach:Mirror Correction
Both shaders include mirror depth correction for VRChat mirrors using frustum correction calculations.See Also
- Moving Light Shaders - Moving head fixtures
- Shader Overview - System architecture
- Volumetric Rendering - Volumetric techniques