Skip to main content

Overview

The VRSL_LocalUIControlPanel class provides a comprehensive local UI control system for managing all aspects of VRSL lighting. It handles quality mode switching, intensity controls, DMX grid management, AudioLink settings, and material property updates across all fixture types. This is the central control hub for VRSL in your scene, allowing users to adjust performance and appearance settings to match their system capabilities. Namespace: VRSL
Inherits from: UdonSharpBehaviour (in VRChat) or MonoBehaviour (in Unity)

Quality Modes

VolumetricQualityModes
default:"High"
Controls the rendering quality for volumetric lighting effects. Options: High, Medium, Low
bool
default:"false"
When enabled, prevents users from changing the volumetric quality mode via UI.
DefaultQualityModes
default:"High"
Quality setting for blinder projection effects. Options: High, Low
bool
default:"false"
When enabled, locks the blinder projection quality setting.
DefaultQualityModes
default:"High"
Quality setting for PAR projection effects. Options: High, Low
bool
default:"false"
When enabled, locks the PAR projection quality setting.
DefaultQualityModes
default:"High"
Quality setting for other projection effects (non-PAR, non-Blinder). Options: High, Low
bool
default:"false"
When enabled, locks the other projection quality setting.
DefaultQualityModes
default:"High"
Quality setting for disco ball effects. Options: High, Low
bool
default:"false"
When enabled, locks the disco ball quality setting.
DefaultQualityModes
default:"High"
Quality setting for lens flare effects. Options: High, Low
bool
default:"false"
When enabled, locks the lens flare quality setting.

Video Sampling

Texture
default:"null"
The target texture to sample for video-driven lighting effects.

Materials

Material[]
required
Array of all fixture materials in the scene.
Material[]
required
Array of all volumetric materials in the scene.
Material[]
required
Array of all projection materials in the scene.
Material[]
required
Array of all disco ball materials in the scene.
Material[]
required
Array of all laser materials in the scene.

Post Processing

Animator
default:"null"
Animator controlling bloom post-processing effects.

UI Sliders

UnityEngine.UI.Slider
Master intensity slider controlling all fixture types.
UnityEngine.UI.Slider
Intensity slider for fixture meshes.
UnityEngine.UI.Slider
Intensity slider for volumetric effects.
UnityEngine.UI.Slider
Intensity slider for projection effects.
UnityEngine.UI.Slider
Intensity slider for disco ball effects.
UnityEngine.UI.Slider
Intensity slider for laser effects.
UnityEngine.UI.Slider
Intensity slider for bloom post-processing.

Intensity Maximums

float
default:"1.0"
Maximum intensity value for fixtures.
float
default:"1.0"
Maximum intensity value for volumetric effects.
float
default:"1.0"
Maximum intensity value for projections.
float
default:"1.0"
Maximum intensity value for disco balls.
float
default:"1.0"
Maximum intensity value for lasers.

DMX Configuration

bool
default:"true"
Enable/disable DMX functionality in the scene.
Enable/disable AudioLink functionality in the scene.
int
default:"0"
DMX grid mode: 0 = Horizontal, 1 = Vertical, 2 = Legacy
bool
default:"true"
Delay strobe effects for global illumination baking.
bool
default:"false"
Enable support for extended DMX universes (9-universe mode).
bool
default:"true"
Use separate interpolation speed for in-game DMX.
float
default:"1.55"
Modifier for in-game interpolation speed.
bool
default:"false"
Enable debug logging for troubleshooting.

Render Textures

CustomRenderTexture[]
required
Custom render textures for horizontal DMX grid mode.
CustomRenderTexture[]
required
Custom render textures for vertical DMX grid mode.
CustomRenderTexture[]
required
Custom render textures for legacy DMX grid mode.
Custom render textures for AudioLink.

Volumetric Noise Settings

bool
default:"true"
Enable/disable volumetric noise effects. Automatically disabled on Android/iOS.
bool
default:"true"
Require depth light for volumetric effects. Automatically disabled on Android/iOS.

Strobe Settings

bool
default:"false"
Globally disable all strobe effects across all fixtures.

Public Methods

Quality Control Methods

_SetVolumetricHigh()

Sets volumetric quality to High mode.

_SetVolumetricMed()

Sets volumetric quality to Medium mode.

_SetVolumetricLow()

Sets volumetric quality to Low mode.

_UpdateAllQualityModes()

Updates all quality modes and applies settings.

Intensity Control Methods

_SetFinalIntensity()

Sets master intensity for all fixture types.

_SetFixtureIntensity()

Sets intensity specifically for fixture meshes.

_SetVolumetricIntensity()

Sets intensity specifically for volumetric effects.

_SetProjectionIntensity()

Sets intensity specifically for projection effects.

_SetDiscoBallIntensity()

Sets intensity specifically for disco ball effects.

_SetLaserIntensity()

Sets intensity specifically for laser effects.

_SetBloomIntensity()

Sets bloom post-processing intensity.

DMX Control Methods

_CheckDMX()

Checks and updates DMX configuration based on current settings.

_SetDMXHorizontal()

Switches to horizontal DMX grid mode.

_SetDMXVertical()

Switches to vertical DMX grid mode.

_SetDMXLegacy()

Switches to legacy DMX grid mode.
Checks and updates AudioLink configuration.

Video Sampling Methods

_ForceUpdateVideoSampleTexture()

Forces an update of the video sample texture across all materials.

Strobe Control

_ToggleGlobalStrobe()

Toggles the global strobe disable state.

Usage Example

Quality Mode Comparison

Performance Tips

  1. Lock quality modes in production to prevent users from selecting performance-heavy settings
  2. Use separate intensity controls to allow users to disable expensive effects (volumetrics, projections)
  3. Enable interpolation reduction for in-game use to improve DMX responsiveness
  4. Disable debug logs in production builds