Skip to content

Commit

Permalink
- Packaged important add-ons such as video players, gpu readback, and…
Browse files Browse the repository at this point in the history
… screen space shaders into unitypackages along with main VR Stage Light package to reduce confusion and keep things organized.

- Converted shaders and video players to all run on native linear input. This removes many issues and inconsistencies with smoothing and general movement.
- Updated GPU readback to fire events on value change when past a certain threshold for float and int paramater ranges. Added ability to name data points in GPU Readback function script.

- Added component sliders to the VRSL DMX and VRSL AudioLink scripts. These sliders replace the final intensity sliders with sliders that control the intensities of the indivdual components of a light (The volumetric, projection, and fixture mesh).
- Added "Genereate Unique VRSL Materials" menu button to the VRSL drop down menu under "Utilties". This button will search the scene for any VRSL Materials, make a copy of them, save them in your selected folder, and apply them to your VRSL meshes in your scene as well as to the Local UI Control Panel. This will allow users to seperate their VRSL materials from the prefab materials and applying it to the scene, allowing for users to make changes to their VRSL materials without updates resetting their settings. (The AudioLink component sliders are at the bottom of the script.)
- Added the "VRSL GI" toggle prefab toggle to Control Panel. This will allow one to spawn the VRSL GI variants of the standard VRSL prefabs. (VRSL GI 1.2+ Only).

- Added global DMX strobe toggle on Local Control Panel asset. Toggling this will disable the strobe channel for the player locally. Useful for those that want to enjoy the light show but can't handle the strobing.
- Adjusted the volumetrics 3D noise to scale properly with the mesh. Scaling a spotlight or strobe up should no longer result in wonky noise tiling.
- Fixed build errors with the DMX patch exporter scripts (again).

- Created Fixture Definition Files and added Fixture Type properties to DMX fixtures. Fixture Definition files are used to create arbitrary data to describe DMX fixture channels. They are mostly cosmetic and used for the DMX patch data exporter.
- Added the ability to save and load DMX Patch Data per scene. This is useful for restoring DMX patch settings to scenes due to corruption.
- Added the ability to export the patch data as a JSON, MVR (My Virtual Rig), or PDF Patch List.
- Added VRSL Manager Window Settings file. This file will start to hold per project data about the VRSL Control Panel. Right now, it holds references to alternate meshes for spotlight and washlight volumetrics.
-Added the ability to switch the volumetric meshes in a scene to lower poly versions on the fly.
-Improved the spin timer shader to have more consistent and smooth DMX gobo spinning.

- Fixed inspector related bugs and improved inspector stability on all VRSL component scripts.
- Added prefab load toggles for VRSL GI prefabs into Control Panel (VRSL GI 1.2.0+)
- Increased AudioLink Delay range from 30 to 127

- Removed the USharp Video and uDesktopDuplication DMX screen prefabs and placed them in their own packages along with new VideoTXL and ProTV DMX screen prefabs.
- Added ability to add and remove DMX Screen prefab packages. TekOSC is the only DMX reader prefab that now comes pre-installed with VRSL, removing USharp Video as a requirement for VRSL.
- Reduced the precision of majority of the DMX Render Textures to 16-Bit SFLOAT instead of 32-Bit SFLOAT to reduce VRAM usage.
- Auto set all DMX Render Textures to have a period of 0.0 to reduce editor related issues.
- Removed the bloom post processing volume prefab from the VRSL-LocalUIControlPanel prefab.
-  VRSL-LocalUIControlPanel will now hide the bloom slider if it cannot find the bloom post processing volume prefab or it's "Bloom Animator" variable is null.
- Fixed bug where you could not edit multiple VRSL scripts at once.

- Re-Added Texture Sampling features for the AudioLink Discoball.
- Added the "Singal Detection System" for interpolation CRT shaders. This system will allow users to disable VRSL DMX if pixels that are not related to the VRSL DMX Grid node are detected (in cases of the video player freezing or disconnecting or an invalid video format was inputted.) This system is disabled by default but can be enabled in the inspector of any of the interpolation CRTs.

- Added per fixture toggle to disable black-to-white conversion when texture sampling mode is enabled on audiolink fixtures.

- Added Global Intensity Blend property to all shaders.
- Removed all `.Blend`and `.Blend1` files
  • Loading branch information
AcChosen committed Jun 2, 2024
1 parent c030703 commit aa156dd
Show file tree
Hide file tree
Showing 302 changed files with 8,127 additions and 76,012 deletions.
9 changes: 0 additions & 9 deletions Packages/.gitignore
Original file line number Diff line number Diff line change
@@ -1,11 +1,2 @@
/*/
!com.vrchat.core.*

com.vrchat.core.vpm-resolver
manifest.json
packages-lock.json
vpm-manifest.json

# Change this to match your new package name
!com.acchosen.vr-stage-lighting
!com.vrchat.core.*/
63 changes: 63 additions & 0 deletions Packages/com.acchosen.vr-stage-lighting/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,68 @@
# VR Stage Lighting - Changelog

## 2.7.0 Change Log - June 2nd, 2024
- Packaged important add-ons such as video players, gpu readback, and screen space shaders into unitypackages along with main VR Stage Light package to reduce confusion and keep things organized.
- Converted shaders and video players to all run on native linear input. This removes many issues and inconsistencies with smoothing and general movement.
- Updated GPU readback to fire events on value change when past a certain threshold for float and int paramater ranges. Added ability to name data points in GPU Readback function script.

## 2.6.2 Change Log - May 21st 2024
- Added component sliders to the VRSL DMX and VRSL AudioLink scripts. These sliders replace the final intensity sliders with sliders that control the intensities of the indivdual components of a light (The volumetric, projection, and fixture mesh).
- Added "Genereate Unique VRSL Materials" menu button to the VRSL drop down menu under "Utilties". This button will search the scene for any VRSL Materials, make a copy of them, save them in your selected folder, and apply them to your VRSL meshes in your scene as well as to the Local UI Control Panel. This will allow users to seperate their VRSL materials from the prefab materials and applying it to the scene, allowing for users to make changes to their VRSL materials without updates resetting their settings. (The AudioLink component sliders are at the bottom of the script.)
- Added the "VRSL GI" toggle prefab toggle to Control Panel. This will allow one to spawn the VRSL GI variants of the standard VRSL prefabs. (VRSL GI 1.2+ Only).

## 2.6.1 Change Log - April 6th 2024
- Added global DMX strobe toggle on Local Control Panel asset. Toggling this will disable the strobe channel for the player locally. Useful for those that want to enjoy the light show but can't handle the strobing.
- Adjusted the volumetrics 3D noise to scale properly with the mesh. Scaling a spotlight or strobe up should no longer result in wonky noise tiling.
- Fixed build errors with the DMX patch exporter scripts (again).

## 2.6.0 Change Log - March 25th 2024
- Created Fixture Definition Files and added Fixture Type properties to DMX fixtures. Fixture Definition files are used to create arbitrary data to describe DMX fixture channels. They are mostly cosmetic and used for the DMX patch data exporter.
- Added the ability to save and load DMX Patch Data per scene. This is useful for restoring DMX patch settings to scenes due to corruption.
- Added the ability to export the patch data as a JSON, MVR (My Virtual Rig), or PDF Patch List.
- Added VRSL Manager Window Settings file. This file will start to hold per project data about the VRSL Control Panel. Right now, it holds references to alternate meshes for spotlight and washlight volumetrics.
-Added the ability to switch the volumetric meshes in a scene to lower poly versions on the fly.
-Improved the spin timer shader to have more consistent and smooth DMX gobo spinning.

## 2.5.1 Change Log - February 29th 2024

- Fixed inspector related bugs and improved inspector stability on all VRSL component scripts.
- Added prefab load toggles for VRSL GI prefabs into Control Panel (VRSL GI 1.2.0+)
- Increased AudioLink Delay range from 30 to 127

## 2.5.0 Change Log - February 9th, 2024
- Removed the USharp Video and uDesktopDuplication DMX screen prefabs and placed them in their own packages along with new VideoTXL and ProTV DMX screen prefabs.
- Added ability to add and remove DMX Screen prefab packages. TekOSC is the only DMX reader prefab that now comes pre-installed with VRSL, removing USharp Video as a requirement for VRSL.
- Reduced the precision of majority of the DMX Render Textures to 16-Bit SFLOAT instead of 32-Bit SFLOAT to reduce VRAM usage.
- Auto set all DMX Render Textures to have a period of 0.0 to reduce editor related issues.
- Removed the bloom post processing volume prefab from the VRSL-LocalUIControlPanel prefab.
- VRSL-LocalUIControlPanel will now hide the bloom slider if it cannot find the bloom post processing volume prefab or it's "Bloom Animator" variable is null.
- Fixed bug where you could not edit multiple VRSL scripts at once.

## 2.4.5 Change Log
- Re-Added Texture Sampling features for the AudioLink Discoball.
- Added the "Singal Detection System" for interpolation CRT shaders. This system will allow users to disable VRSL DMX if pixels that are not related to the VRSL DMX Grid node are detected (in cases of the video player freezing or disconnecting or an invalid video format was inputted.) This system is disabled by default but can be enabled in the inspector of any of the interpolation CRTs.

## 2.4.4 Change Log
- Added per fixture toggle to disable black-to-white conversion when texture sampling mode is enabled on audiolink fixtures.

## 2.4.3 Change Log
- Added Global Intensity Blend property to all shaders.
- Removed all `.Blend`and `.Blend1` files

## 2.4.2 Change Log
- Changed Movement smoothing algorithm to be framerate-independent.
- Added smoothing multiplier that works in VRChat only to better match smoothing values in Editor.
- Added extra strobe render textures to reduce the delay between GI and VRSL strobing updates.
- Made version numbers consistent across all editor scripts.
- Fixed package format. (Again)

## 2.4.1 Change Log
- Added ability to switch between dynamic and static strobing for DMX fixtures in the settings of the Strobe Timings CRT. This will switch strobe channels from the smooth variable speed strobing channel to a 3 speed consistent strobe channel. The 3 speed strobing will be slightly more performant and should also appear more consistent at lower frame rates.
- Added the ability to quickly make changes to any of the CRT materials for the DMX and AudioLink Custom Render Textures inside of the VRSL Control Panel. It is listed under options and allows users to view and edit the materials that the custom render textures use. This will allow for adjusting global dmx settings such as range of smoothing for movement on moving heads as well as the maximum and minmum strobe speeds.
- Moved some files around in preperation for the VRSL GI release.

# NOTE: This version of VRSL has changed ALOT of the backend (under-the-hood). If you are production sensitive project, please continue to use [v2.2](https://github.com/AcChosen/VR-Stage-Lighting/releases/tag/v2.2.0) until you feel your project is ready to update to 2.4. If not, please update to this version as soon as you can!~

## v2.3.0 - February 15th, 2023
### New Features
- All DMX Grid textures are now global textures set with VRCShader.SetGlobalTexture(), which gives all shaders in a scene/instance access to all 4 DMX Grid textures at all times. This allows for custom VRSL shaders to be created without having to manage a bunch of render textures in the material's inspector. This also allows avatar shaders to have a wider range of channels to read from and allows a much more performant way of getting the textures to the avatars without relying on a grabpass.
Expand Down
12 changes: 11 additions & 1 deletion Packages/com.acchosen.vr-stage-lighting/Editor/VRSLInspector.cs
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,8 @@ public class VRSLInspector : ShaderGUI

MaterialProperty _DMXChannel = null;
MaterialProperty _NineUniverseMode = null;
MaterialProperty _SignalDetectionSystem = null;
MaterialProperty _SignalDetectionSensativity = null;
MaterialProperty _EnableDMX = null;
MaterialProperty _EnableExtraChannels = null;
// MaterialProperty _Udon_DMXGridRenderTextureMovement = null;
Expand Down Expand Up @@ -114,7 +116,7 @@ public class VRSLInspector : ShaderGUI
MaterialProperty _Noise2Stretch = null;
MaterialProperty _Noise2StretchInside = null;
MaterialProperty _Noise2Power = null;

MaterialProperty _UseTraditionalSampling = null;


MaterialProperty _Noise2XDefault = null;
Expand Down Expand Up @@ -1723,6 +1725,10 @@ public void ColorTextureSamplingGUI(MaterialEditor matEditor, MaterialProperty[]
matEditor.ShaderProperty(_TextureColorSampleX, new GUIContent("X UV Coordinate", "The x uv coordinate for where on the texture to sample from (0 to 1)."));
matEditor.ShaderProperty(_TextureColorSampleY, new GUIContent("Y UV Coordinate", "The y uv coordinate for where on the texture to sample from (0 to 1)."));
matEditor.ShaderProperty(_RenderTextureMultiplier, new GUIContent("Render Texture Multiplier", "Increase the strength of the render texture color"));
if(_RenderTextureMultiplier.floatValue > 0f)
{
matEditor.ShaderProperty(_UseTraditionalSampling, new GUIContent("Use Traditional Texture Sampling", "Disable Black to white conversion in texture sampling"));
}
EditorGUI.indentLevel--;
GUILayout.Space(5);

Expand Down Expand Up @@ -1801,6 +1807,7 @@ public void DiscoballGUI(MaterialEditor matEditor, MaterialProperty[] props, Mat
VRSLStyles.PartingLine();
EditorGUI.indentLevel++;
matEditor.ShaderProperty(_Emission, new GUIContent("Emission Color", "The overall emissive color of the shader. Use this to tint the shader."));
ColorTextureSamplingGUI(matEditor, props, target);
matEditor.TexturePropertySingleLine(new GUIContent("Discoball Projection Cube Map", "The cube map used to project a 360 degree image from the center of the object onto other objects."), _Cube);
matEditor.TextureScaleOffsetProperty(_Cube);
matEditor.ShaderProperty(_RotationSpeed, new GUIContent("Discoball Rotation Speed", "The speed at which the discoball spins."));
Expand Down Expand Up @@ -1830,6 +1837,9 @@ public void DMXInterpolationGUI(MaterialEditor matEditor, MaterialProperty[] pro
matEditor.ShaderProperty(_SmoothValue, new GUIContent("Smoothness Level", "Changes how much interpolated smoothing is applied to the texture. The closer to 0, the more smoothing applied, the closer to 1, the less smoothing applied. \nThis value is usually controlled by a seperate DMX signal to control the movement speed of the movers. "));
matEditor.ShaderProperty(_MinimumSmoothnessDMX, new GUIContent("Minimum Smoothness Value", "Sets the minimum amount of smoothing applied to the texture by default."));
matEditor.ShaderProperty(_MaximumSmoothnessDMX, new GUIContent("Maximum Smoothness Value", "Sets the maximum amount of smoothing applied to the texture by default."));
GUILayout.Space(5);
matEditor.ShaderProperty(_SignalDetectionSystem, new GUIContent("Enable Signal Detection System", "Enables the auto signal detection system. If certain pixels in the grid node (that aren't DMX Channels) aren't black, this texture will output black. This prevents unwanted pixel data coming in and disrupting a show."));
matEditor.ShaderProperty(_SignalDetectionSensativity, new GUIContent("Signal Detection System Sensativity", "How close to black does the signal need to be before it activates."));
matEditor.RenderQueueField();
EditorGUI.indentLevel--;
GUILayout.Space(5);
Expand Down
Loading

0 comments on commit aa156dd

Please sign in to comment.