From b360082e91bc43327cc9c43c574cff0a02427392 Mon Sep 17 00:00:00 2001 From: AcChosen Date: Tue, 8 Aug 2023 17:15:42 -0400 Subject: [PATCH] VRSL 2.4.1 Update - Added Alternative Strobe texture settings. Toggle to switch from traditional dynamic DMX strobing to a 3 speed strobe channel. Affects all fixtures. - Adjusted all VRSL materials and a few textures to prepare for GI release. - Added ability to edit VRSL DMX Custom Render Textures in the VRSL Control Panel. - Added ability to set 2D Noise Texture settings between high and medium modes for the spotlight and washlight volumetric DMX shaders. --- .../Editor/VRSLInspector.cs | 72 +++- .../Editor/VRSL_ManagerWindow.cs | 362 +++++++++++++++++- ...nterpolated-Color+Intensity-Horizontal.mat | 2 +- ...DMXRTMaterial-StrobeTimings-Horizontal.mat | 8 +- .../DMXRTMaterial-StrobeTimings-Vertical.mat | 4 + ...-AudioLink-StandardMover-VolumetricMat.mat | 10 +- ...VRSL-AudioLink-WashMover-VolumetricMat.mat | 6 +- ...-StandardMover-VolumetricMat-HQ-Legacy.mat | 11 +- ...StandardMover-FixtureMat-HQ-Horizontal.mat | 2 +- ...ndardMover-ProjectionMat-HQ-Horizontal.mat | 18 +- ...ndardMover-VolumetricMat-HQ-Horizontal.mat | 12 +- ...tandardMover-VolumetricMat-HQ-Vertical.mat | 11 +- ...VRSL-WashMover-VolumetricMat-HQ-Legacy.mat | 5 +- ...-WashMover-ProjectionMat-HQ-Horizontal.mat | 2 +- ...-WashMover-VolumetricMat-HQ-Horizontal.mat | 10 +- ...SL-WashMover-VolumetricMat-HQ-Vertical.mat | 31 +- .../VRSL-Blinder-LensFlareMat-Vertical.mat | 2 +- ...Bar-FixtureMat-Horizontal-5CH-Standard.mat | 225 ----------- ...ixtureMat-Horizontal-5CH-Standard.mat.meta | 8 - .../VRSL-Flasher-FixtureMat-Horizontal.mat | 2 +- .../Lights/DMX/VRSL-6x4StrobeLightMat.mat | 5 +- ...L-Horizontal-ExampleSurfaceShader-Cube.mat | 3 +- .../VRSL-Legacy-ExampleSurfaceShader-Cube.mat | 5 +- .../Materials/Other/VRSL-VideoScreen.mat | 2 +- .../HQ Meshes/MoverLight-WashLight-HQMesh.fbx | Bin 196972 -> 195692 bytes .../Scripts/VRSL_LocalUIControlPanel.asset | 93 ++++- .../Scripts/VRSL_LocalUIControlPanel.cs | 16 +- .../Scripts/VRStageLighting_DMX_Static.cs | 6 +- .../Discoball/VRSL-AudioLink-Discoball.shader | 2 +- ...ioLink-StandardMover-VolumetricMesh.shader | 7 +- ...RSL-AudioLink-WashMover-FixtureMesh.shader | 4 +- ...-AudioLink-WashMover-VolumetricMesh.shader | 7 +- .../DMXRTShader-StrobeTimings.shader | 86 +++-- .../Shaders/Discoball/VRSL-Discoball.shader | 2 +- .../VRSL-StandardMover-ProjectionFrag.cginc | 2 +- .../VRSL-StandardMover-Vertex.cginc | 12 +- .../VRSL-StandardMover-VolumetricFrag.cginc | 10 +- .../VRSL-StandardMover-VolumetricMesh.shader | 7 +- .../VRSL-WashMover-VolumetricMesh.shader | 7 +- .../Shaders/Shared/VRSL-DMXFunctions.cginc | 5 + .../Runtime/Shaders/Shared/VRSL-Defines.cginc | 16 +- .../VRSL-StaticLight-LensFlare.shader | 10 +- .../VRSL-StaticLight-ProjectionFrag.cginc | 2 +- .../Runtime/Shaders/VRSLDMX.cginc | 36 +- ...HQMesh_SpotMover-HQ_MetallicSmoothness.png | Bin 775179 -> 789635 bytes ...shLight-Mesh_WashMover-HQ_EmissionMask.png | Bin 0 -> 43351 bytes ...ht-Mesh_WashMover-HQ_EmissionMask.png.meta | 116 ++++++ .../RTs/DMXRT-StrobeOutput-Horizontal.mat | 1 + ...DMXRTViewer-StrobeTimings-Horizontal.asset | 2 +- .../DMXRTViewer-StrobeTimings-Legacy.asset | 2 +- .../DMXRTViewer-StrobeTimings-Vertical.asset | 2 +- ...Volumetric_BlinderMaterial_Normal.png.meta | 4 +- ...er-LowPoly_FlasherMaterial_Normal.png.meta | 4 +- 53 files changed, 893 insertions(+), 386 deletions(-) delete mode 100644 Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Lights/DMX/StaticLight-LightBarAndFlashers/5-Channel/VRSL-LightBar-FixtureMat-Horizontal-5CH-Standard.mat delete mode 100644 Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Lights/DMX/StaticLight-LightBarAndFlashers/5-Channel/VRSL-LightBar-FixtureMat-Horizontal-5CH-Standard.mat.meta create mode 100644 Packages/com.acchosen.vr-stage-lighting/Runtime/Textures/MoverLightTextures/Washlight/WashLight-Mesh_WashMover-HQ_EmissionMask.png create mode 100644 Packages/com.acchosen.vr-stage-lighting/Runtime/Textures/MoverLightTextures/Washlight/WashLight-Mesh_WashMover-HQ_EmissionMask.png.meta diff --git a/Packages/com.acchosen.vr-stage-lighting/Editor/VRSLInspector.cs b/Packages/com.acchosen.vr-stage-lighting/Editor/VRSLInspector.cs index 80bb30a..1acadc5 100644 --- a/Packages/com.acchosen.vr-stage-lighting/Editor/VRSLInspector.cs +++ b/Packages/com.acchosen.vr-stage-lighting/Editor/VRSLInspector.cs @@ -104,6 +104,7 @@ public class VRSLInspector : ShaderGUI MaterialProperty _NoiseTex = null; + MaterialProperty _NoiseTexHigh = null; MaterialProperty _NoisePower = null; MaterialProperty _Noise2X = null; MaterialProperty _Noise2Y = null; @@ -135,7 +136,8 @@ public class VRSLInspector : ShaderGUI - MaterialProperty _MAGIC_NOISE_ON = null; + MaterialProperty _MAGIC_NOISE_ON_HIGH = null; + MaterialProperty _MAGIC_NOISE_ON_MED = null; MaterialProperty _2D_NOISE_ON = null; MaterialProperty _UseDepthLight = null; MaterialProperty _PotatoMode = null; @@ -238,6 +240,10 @@ public class VRSLInspector : ShaderGUI //Strobe RenderTexture MaterialProperty _MaxStrobeFreq = null; + MaterialProperty _LowFrequency = null; + MaterialProperty _MedFrequency = null; + MaterialProperty _HighFrequency = null; + MaterialProperty _StrobeType = null; //Texture Color Sampling Stuff MaterialProperty _TextureColorSampleX = null; @@ -1297,8 +1303,17 @@ public void MoverLightVolumetricGUI(MaterialEditor matEditor, MaterialProperty[] if((Mathf.FloorToInt(target.GetInt("_2D_NOISE_ON"))) == 1) { EditorGUI.indentLevel++; - matEditor.TexturePropertySingleLine(new GUIContent("Noise Texture", "Alpha Noise Texture used for adding variation to the cone."), _NoiseTex); - matEditor.TextureScaleOffsetProperty(_NoiseTex); + if(target.GetInt("_RenderMode") == 0) + { + matEditor.TexturePropertySingleLine(new GUIContent("Noise Texture HQ", "Alpha Noise Texture used for adding variation to the cone."), _NoiseTexHigh); + matEditor.TextureScaleOffsetProperty(_NoiseTexHigh); + } + else + { + matEditor.TexturePropertySingleLine(new GUIContent("Noise Texture", "Alpha Noise Texture used for adding variation to the cone."), _NoiseTex); + matEditor.TextureScaleOffsetProperty(_NoiseTex); + } + matEditor.ShaderProperty(_NoisePower, new GUIContent("Noise Strength", "Controls how much the noise texture affects the cone")); EditorGUI.indentLevel--; } @@ -1308,13 +1323,26 @@ public void MoverLightVolumetricGUI(MaterialEditor matEditor, MaterialProperty[] //if(!isDMXCompatible) //{ - - if((Mathf.FloorToInt(target.GetInt("_MAGIC_NOISE_ON"))) == 1) + string magicNoiseString = "_MAGIC_NOISE_ON_MED"; + MaterialProperty magicNoiseProp = _MAGIC_NOISE_ON_MED; + string magicNoiseSuffix = "Transparent"; + if(target.GetInt("_RenderMode") == 0) + { + magicNoiseString = "_MAGIC_NOISE_ON_HIGH"; + magicNoiseProp = _MAGIC_NOISE_ON_HIGH; + magicNoiseSuffix = "HQTransparent"; + + } + + + if((Mathf.FloorToInt(target.GetInt(magicNoiseString))) == 1 && target.GetInt("_RenderMode") != 2) { - matEditor.ShaderProperty(_MAGIC_NOISE_ON, new GUIContent("Enable Magic 3D Noise", "Enable Second layer of world space, faux 3D Noise")); + + matEditor.ShaderProperty(magicNoiseProp, new GUIContent("Enable Magic 3D Noise For: " + magicNoiseSuffix, "Enable Second layer of world space, faux 3D Noise")); EditorGUILayout.LabelField("Potato Mode is unavailable. Disable Magic 3D Noise to enable Potato Mode."); + + matEditor.TexturePropertySingleLine(new GUIContent("Magic 3D Noise Texture", "A magical texture for generating 3D Perlin Noise at runtime! Code and texture based on https://www.shadertoy.com/view/4sfGzS by iq!"), _LightMainTex); EditorGUI.indentLevel++; - matEditor.TexturePropertySingleLine(new GUIContent("Magic 3D Noise Texture", "A magical texture for generating 3D Perlin Noise at runtime! Code and texture based on https://www.shadertoy.com/view/4sfGzS by iq!"), _LightMainTex); // if((Mathf.FloorToInt(target.GetInt("_PotatoMode"))) == 1) // { // EditorGUILayout.LabelField("HQ Mode is unavailable. Disable Potato Mode to enable Potato HQ."); @@ -1384,18 +1412,25 @@ public void MoverLightVolumetricGUI(MaterialEditor matEditor, MaterialProperty[] } EditorGUI.indentLevel--; } - else if((Mathf.FloorToInt(target.GetInt("_PotatoMode"))) == 1) + else if((Mathf.FloorToInt(target.GetInt("_PotatoMode"))) == 1 && target.GetInt("_RenderMode") != 2) { EditorGUILayout.LabelField("Magic 3D Noise is unavailable. Disable Potato Mode to enable Magic 3D Noise."); matEditor.ShaderProperty(_PotatoMode, new GUIContent("Potato Mode", "Reduces the overhead on the fragment shader by removing both noise components to extra texture sampling.")); } + else if(target.GetInt("_RenderMode") ==2) + { + EditorGUILayout.LabelField("Magic 3D Noise is unavailable. Use Transparent or HQTransparent Render Mode to enable Magic 3D Noise."); + } else { - matEditor.ShaderProperty(_MAGIC_NOISE_ON, new GUIContent("Enable Magic 3D Noise", "Enable Second layer of world space, faux 3D Noise")); + matEditor.ShaderProperty(magicNoiseProp, new GUIContent("Enable Magic 3D Noise For: " + magicNoiseSuffix, "Enable Second layer of world space, faux 3D Noise")); matEditor.ShaderProperty(_PotatoMode, new GUIContent("Potato Mode", "Reduces the overhead on the fragment shader by removing both noise components to extra texture sampling.")); } - SetKeyword(target, "_MAGIC_NOISE_ON", (Mathf.FloorToInt(target.GetInt("_MAGIC_NOISE_ON"))) == 1 ? true : false); + SetKeyword(target, "_MAGIC_NOISE_ON_HIGH", (Mathf.FloorToInt(target.GetInt("_MAGIC_NOISE_ON_HIGH"))) == 1 ? true : false); + SetKeyword(target, "_MAGIC_NOISE_ON_MED", (Mathf.FloorToInt(target.GetInt("_MAGIC_NOISE_ON_MED"))) == 1 ? true : false); + + SetKeyword(target, "_USE_DEPTH_LIGHT", (Mathf.FloorToInt(target.GetInt("_UseDepthLight"))) == 1 ? true : false); SetKeyword(target, "_POTATO_MODE_ON", (Mathf.FloorToInt(target.GetInt("_PotatoMode"))) == 1 ? true : false); SetKeyword(target, "_HQ_MODE", (Mathf.FloorToInt(target.GetInt("_HQMode"))) == 1 ? true : false); @@ -1739,7 +1774,22 @@ public void DMXStrobeGUI(MaterialEditor matEditor, MaterialProperty[] props, Mat GUILayout.Space(5); EditorGUI.indentLevel++; matEditor.TexturePropertySingleLine(new GUIContent("DMX Grid Raw", "The raw DMX Render texture from the camera."),_DMXTexture); - matEditor.ShaderProperty(_MaxStrobeFreq, new GUIContent("Maximum Strobe Frequency", "The maximum strobing frequency of all fixtures.")); + matEditor.ShaderProperty(_StrobeType, new GUIContent("Strobe Mode", "Choose between a smooth dynamic strobe rate or static pre set rates. Static rates are frame rate independent.")); + SetKeyword(target, "_VRSL_STATICFREQUENCIES",target.GetInt("_StrobeType") == 1); + if(target.GetInt("_StrobeType") == 1) + { + EditorGUI.indentLevel++; + matEditor.ShaderProperty(_LowFrequency, new GUIContent("Low Frequency")); + matEditor.ShaderProperty(_MedFrequency, new GUIContent("Medium Frequency")); + matEditor.ShaderProperty(_HighFrequency, new GUIContent("High Frequency")); + EditorGUI.indentLevel--; + } + else + { + EditorGUI.indentLevel++; + matEditor.ShaderProperty(_MaxStrobeFreq, new GUIContent("Maximum Strobe Frequency", "The maximum strobing frequency of all fixtures.")); + EditorGUI.indentLevel--; + } matEditor.ShaderProperty(_NineUniverseMode, new GUIContent("Enable Extended Universe Mode", "Enables or Disables extended universe mode (9-universes via RGB)")); matEditor.RenderQueueField(); EditorGUI.indentLevel--; diff --git a/Packages/com.acchosen.vr-stage-lighting/Editor/VRSL_ManagerWindow.cs b/Packages/com.acchosen.vr-stage-lighting/Editor/VRSL_ManagerWindow.cs index dbcd9c5..8714518 100644 --- a/Packages/com.acchosen.vr-stage-lighting/Editor/VRSL_ManagerWindow.cs +++ b/Packages/com.acchosen.vr-stage-lighting/Editor/VRSL_ManagerWindow.cs @@ -18,6 +18,7 @@ using System; using System.Diagnostics.CodeAnalysis; using System.Linq; +using UnityEngine.UIElements; #endif #if !COMPILER_UDONSHARP && UNITY_EDITOR @@ -262,6 +263,10 @@ public void ApplyChanges() #pragma warning disable 0618 //suppressing obsoletion warnings light.ApplyProxyModifications(); #pragma warning restore 0618 //suppressing obsoletion warnings + if(PrefabUtility.IsPartOfAnyPrefab(light)) + { + PrefabUtility.RecordPrefabInstancePropertyModifications(light); + } } catch(Exception e) { @@ -501,6 +506,10 @@ public void ApplyChanges(VRStageLighting_AudioLink_Static li) #pragma warning disable 0618 //suppressing obsoletion warnings light.ApplyProxyModifications(); #pragma warning restore 0618 //suppressing obsoletion warnings + if(PrefabUtility.IsPartOfAnyPrefab(light)) + { + PrefabUtility.RecordPrefabInstancePropertyModifications(light); + } } public void ApplyChanges(VRStageLighting_AudioLink_Laser li) @@ -566,6 +575,11 @@ public void ApplyChanges(VRStageLighting_AudioLink_Laser li) #pragma warning disable 0618 //suppressing obsoletion warnings laser.ApplyProxyModifications(); #pragma warning restore 0618 //suppressing obsoletion warnings + + if(PrefabUtility.IsPartOfAnyPrefab(light)) + { + PrefabUtility.RecordPrefabInstancePropertyModifications(light); + } } @@ -607,6 +621,7 @@ public class VRSL_ManagerWindow : EditorWindow { private static bool[] bandFold = new bool[4]; static GUIContent colorLabel; private string[] dmxModes = new string[]{"Horizontal", "Vertical", "Legacy"}; + private string[] materialChooserList = new string[]{"Off","Intensity+Color", "Movement", "Spin", "Strobe Timing", "Strobe Output", "AudioLink Interpolation"}; private string [] dmxGizmoInfo = new string[]{"None", "Channel Only", "Universe + Channel"}; private static UnityEngine.Object controlPanelUiPrefab, directionalLightPrefab, uDesktopHorizontalPrefab, uDesktopVerticalPrefab, uDesktopLegacyPrefab, uVidHorizontalPrefab, uVidVerticalPrefab, uVidLegacyPrefab, audioLinkPrefab, audioLinkControllerPrefab, standardAudioLinkControllerPrefab, oscGridReaderHorizontalPrefab, oscGridReaderVerticalPrefab, audioLinkVRSLPrefab, cubeMask, cylinderMask, capsuleMask, sphereMask; @@ -626,9 +641,23 @@ public class VRSL_ManagerWindow : EditorWindow { private static UnityEngine.Object laser_h, laser_v, laser_l, laser_a; private static UnityEngine.Object sixFour_h, sixFour_v, sixFour_l; private static UnityEngine.Object multiLightbar_h, multiLightbar_v, multiLightbar_l; + private Material dmx_H_CRT_Color_Mat, dmx_V_CRT_Color_Mat, dmx_L_CRT_Color_Mat, + dmx_H_CRT_Mvmt_Mat, dmx_V_CRT_Mvmt_Mat, dmx_L_CRT_Mvmt_Mat, + dmx_H_CRT_Spin_Mat,dmx_V_CRT_Spin_Mat,dmx_L_CRT_Spin_Mat, + dmx_H_CRT_StrobeTime_Mat, dmx_V_CRT_StrobeTime_Mat, dmx_L_CRT_StrobeTime_Mat, + dmx_H_CRT_StrobeOut_Mat, dmx_V_CRT_StrobeOut_Mat, dmx_L_CRT_StrobeOut_Mat, + audiolink_CRT_InterpolationMat; + + private MaterialEditor _materialEditor; + private bool showMaterialEditor; private static DMXListItem copyDMXListProx; private static AudioLinkListItem copyAudioLinkListProx; + + private static Shader GIDMXLightTextureShader; + private static bool hasDMXGI; + + private int materialChooser; // private float panRangeTarget = 90f; // private float tiltRangeTarget = -90f; @@ -660,6 +689,7 @@ static void ShowWindow() { ApplyChangesToFixtures(true, true, false); } + hasDMXGI = CheckIfDMXGIAvailable(); window.minSize = new Vector2(925f, 700f); @@ -671,6 +701,21 @@ static void ShowWindow() { } + static bool CheckIfDMXGIAvailable() + { + string path = "Packages/com.acchosen.vrsl-dmx-gi/Runtime/Shaders/VRSL_GI_LightTexture.shader"; + bool wasSuccessful = false; + try{ + GIDMXLightTextureShader = (Shader)AssetDatabase.LoadAssetAtPath(path, typeof(Shader)); + wasSuccessful = true; + } + catch(Exception e) + { + wasSuccessful = false; + } + return wasSuccessful; + } + // static VRSL_ManagerWindow() // { @@ -1273,6 +1318,8 @@ void OnEnable() EditorApplication.hierarchyChanged += HierarchyChanged; // EditorApplication.playModeStateChanged += LogPlayModeState; SceneView.duringSceneGui += this.OnSceneGUI; + LoadMaterials(); + hasDMXGI = CheckIfDMXGIAvailable(); } void OnDisable( ) { @@ -1283,6 +1330,11 @@ void OnDisable( ) { if(panel.fixtureGizmos == 0) SceneView.duringSceneGui -= this.OnSceneGUI; + } + if (_materialEditor != null) + { + // Free the memory used by default MaterialEditor + DestroyImmediate (_materialEditor); } } private void HierarchyChanged() @@ -1889,6 +1941,101 @@ private void CopyPasteFunction(DMXListItem copyTofixture, DMXListItem copyFromfi Repaint(); } + private void LoadMaterials() + { + string dmx_H_CRT_Color_Mat_path = AssetDatabase.GUIDToAssetPath("c23ee34d1d3977548829651c8cceea33"); + string dmx_V_CRT_Color_Mat_path = AssetDatabase.GUIDToAssetPath("d2a0ea204b6092d49971eacf996dcec3"); + string dmx_L_CRT_Color_Mat_path = AssetDatabase.GUIDToAssetPath("9a42fdd188c84e542be2a455485423a8"); + + string dmx_H_CRT_Mvmt_Mat_path = AssetDatabase.GUIDToAssetPath("144ac9f77364a7d4ea6e607f40c31505"); + string dmx_V_CRT_Mvmt_Mat_path = AssetDatabase.GUIDToAssetPath("a949afd894bf9384bb57422931f130fc"); + string dmx_L_CRT_Mvmt_Mat_path = AssetDatabase.GUIDToAssetPath("e79b2b00c4751b74ea6dacd87a9f41dd"); + + string dmx_H_CRT_Spin_Mat_path = AssetDatabase.GUIDToAssetPath("0de093d844c8ac146b98341787214c64"); + string dmx_V_CRT_Spin_Mat_path = AssetDatabase.GUIDToAssetPath("1e05cea1a32288a47b1612ca4725ae2e"); + string dmx_L_CRT_Spin_Mat_path = AssetDatabase.GUIDToAssetPath("d80a528643bc1c2418a6986cd3cf0141"); + + string dmx_H_CRT_StrobeTime_Mat_path = AssetDatabase.GUIDToAssetPath("742ce52797fea8948a8f4c438b0c3b69"); + string dmx_V_CRT_StrobeTime_Mat_path = AssetDatabase.GUIDToAssetPath("05d3c32dd6873684283c962951dc067a"); + string dmx_L_CRT_StrobeTime_Mat_path = AssetDatabase.GUIDToAssetPath("0f235f1aadc897344a6c8b3301b6f79e"); + + string dmx_H_CRT_StrobeOut_Mat_path = AssetDatabase.GUIDToAssetPath("038cddd0ea70e1d41ad37272c1e7c31c"); + string dmx_V_CRT_StrobeOut_Mat_path = AssetDatabase.GUIDToAssetPath("fafb9a56ddc548e4dafd9cb0befa0e2e"); + string dmx_L_CRT_StrobeOut_Mat_path = AssetDatabase.GUIDToAssetPath("8af3b80e2a7dd3e458aacc6701d4c657"); + + string audiolink_CRT_InterpolationMat_path = AssetDatabase.GUIDToAssetPath("91f76b2e00433a141b2ad6ada0c59a80"); + + // switch(a) + // { + //horizontal + // case 0: + try{ + + dmx_H_CRT_Color_Mat = (Material)AssetDatabase.LoadAssetAtPath(dmx_H_CRT_Color_Mat_path, typeof(Material)); + dmx_H_CRT_Mvmt_Mat = (Material)AssetDatabase.LoadAssetAtPath(dmx_H_CRT_Mvmt_Mat_path, typeof(Material)); + dmx_H_CRT_Spin_Mat = (Material)AssetDatabase.LoadAssetAtPath(dmx_H_CRT_Spin_Mat_path, typeof(Material)); + dmx_H_CRT_StrobeTime_Mat = (Material)AssetDatabase.LoadAssetAtPath(dmx_H_CRT_StrobeTime_Mat_path, typeof(Material)); + dmx_H_CRT_StrobeOut_Mat = (Material)AssetDatabase.LoadAssetAtPath(dmx_H_CRT_StrobeOut_Mat_path, typeof(Material)); + } + catch(Exception e) + { + // loadSuccessful = false; + Debug.Log("Could not load fixture prefab!"); + e.ToString(); + } + // break; + //vertical + // case 1: + try{ + + dmx_V_CRT_Color_Mat = (Material)AssetDatabase.LoadAssetAtPath(dmx_V_CRT_Color_Mat_path, typeof(Material)); + dmx_V_CRT_Mvmt_Mat = (Material)AssetDatabase.LoadAssetAtPath(dmx_V_CRT_Mvmt_Mat_path, typeof(Material)); + dmx_V_CRT_Spin_Mat = (Material)AssetDatabase.LoadAssetAtPath(dmx_V_CRT_Spin_Mat_path, typeof(Material)); + dmx_V_CRT_StrobeTime_Mat = (Material)AssetDatabase.LoadAssetAtPath(dmx_V_CRT_StrobeTime_Mat_path, typeof(Material)); + dmx_V_CRT_StrobeOut_Mat = (Material)AssetDatabase.LoadAssetAtPath(dmx_V_CRT_StrobeOut_Mat_path, typeof(Material)); + } + catch(Exception e) + { + // loadSuccessful = false; + Debug.Log("Could not load fixture prefab!"); + e.ToString(); + } + // break; + //legacy + // case 2: + try{ + + dmx_L_CRT_Color_Mat = (Material)AssetDatabase.LoadAssetAtPath(dmx_L_CRT_Color_Mat_path, typeof(Material)); + dmx_L_CRT_Mvmt_Mat = (Material)AssetDatabase.LoadAssetAtPath(dmx_L_CRT_Mvmt_Mat_path, typeof(Material)); + dmx_L_CRT_Spin_Mat = (Material)AssetDatabase.LoadAssetAtPath(dmx_L_CRT_Spin_Mat_path, typeof(Material)); + dmx_L_CRT_StrobeTime_Mat = (Material)AssetDatabase.LoadAssetAtPath(dmx_L_CRT_StrobeTime_Mat_path, typeof(Material)); + dmx_L_CRT_StrobeOut_Mat = (Material)AssetDatabase.LoadAssetAtPath(dmx_L_CRT_StrobeOut_Mat_path, typeof(Material)); + } + catch(Exception e) + { + // loadSuccessful = false; + Debug.Log("Could not load fixture prefab!"); + e.ToString(); + } + // break; + //audiolink + // case 3: + try{ + + audiolink_CRT_InterpolationMat = (Material)AssetDatabase.LoadAssetAtPath(audiolink_CRT_InterpolationMat_path, typeof(Material)); + } + catch(Exception e) + { + // loadSuccessful = false; + Debug.Log("Could not load fixture prefab!"); + e.ToString(); + } + // break; + // default: + // break; + // } + } + private bool LoadFixturePrefabs(int a) { bool loadSuccessful = true; @@ -2078,7 +2225,10 @@ private bool LoadFixturePrefabs(int a) string laser_v_path = AssetDatabase.GUIDToAssetPath("55058c5ef8c22d04991b48a99a10acfe"); string laser_l_path = AssetDatabase.GUIDToAssetPath("55ac9bf95dc63bb4fb6ba2095d73cde2"); string laser_a_path = AssetDatabase.GUIDToAssetPath("75c269de381facb4cae616c67f83f519"); - + + + + switch(a) { @@ -2170,6 +2320,68 @@ private bool LoadFixturePrefabs(int a) return loadSuccessful; } + + public void CreateMaterialGUI(Material _material) + { + //_material = AssetDatabase.LoadAssetAtPath("Assets/Material.mat"); + // if(_material == null) + // { + // Debug.Log("Material is empty!"); + // } + // else + // { + // Debug.Log("Material found!"); + // } + if (_materialEditor != null) + { + DestroyImmediate(_materialEditor); + } + _materialEditor = (MaterialEditor)Editor.CreateEditor(_material); + // if(_materialEditor != e) + // { + // // DestroyImmediate (_materialEditor); + // _materialEditor = e; + // } + // else + // { + // DestroyImmediate (e); + // } + if (_materialEditor != null) + { + // _container = new IMGUIContainer(() => + // { + _materialEditor.DrawHeader(); + + // bool isDefaultMaterial = false; + + // if(_material != null) + // { + // isDefaultMaterial = !AssetDatabase.GetAssetPath (_material).StartsWith ("Assets"); + // } + + + EditorGUILayout.BeginVertical(); + // using (new EditorGUI.DisabledGroupScope(isDefaultMaterial)) + // { + _materialEditor.OnInspectorGUI(); + // } + EditorGUILayout.EndVertical(); + // }); + // rootVisualElement.Add(_container); + } + } + GUIStyle LongLabel(int m) + { + GUIStyle output = new GUIStyle("Label"); + // output.margin.left += m; + // output.margin.right += m; + // output.padding.left += m; + // output.padding.right += m; + output.clipping = TextClipping.Overflow; + return output; + + } + void OnGUI() { DrawLogo(); ShurikenHeaderCentered(ver); @@ -2261,9 +2473,11 @@ void OnGUI() { EditorGUI.BeginDisabledGroup(!panel.isUsingDMX); var so = new SerializedObject(panel); so.FindProperty("DMXMode").intValue = EditorGUILayout.Popup(Label("DMX Grid Mode", "Choose what grid type textures should be enabled for DMX mode. Unused textures will be disabled to save editor performance!"),panel.DMXMode, dmxModes); + so.FindProperty("fixtureGizmos").intValue = EditorGUILayout.Popup(Label("Show DMX Info In Scene", "Display DMX Channel and/or Universe information above each fixture in the scene view!"), panel.fixtureGizmos, dmxGizmoInfo); so.FindProperty("useExtendedUniverses").boolValue = EditorGUILayout.ToggleLeft(Label("Use RGB Extended Universes (9-Universe Mode)", "Enable Extended Universe Mode. This will convert all fixtures to read an RGB grid that contains 9 universes of information instead a grayscale grid with 3 universes." + "This only applies to the Vertical and Horizontal grid modes."),panel.useExtendedUniverses); + so.ApplyModifiedProperties(); EditorGUI.EndDisabledGroup(); EditorGUILayout.EndVertical(); @@ -2422,6 +2636,136 @@ void OnGUI() { EditorGUILayout.EndHorizontal(); } + + EditorGUILayout.Space(4); + string matEditorPrefix = showMaterialEditor ? "Hide " : "Show "; + showMaterialEditor = EditorGUILayout.BeginFoldoutHeaderGroup(showMaterialEditor,Label(matEditorPrefix + "CRT Material Editor", "Show/Hide VRSL CRT Material Editors. ")); + EditorGUILayout.EndFoldoutHeaderGroup(); + if(showMaterialEditor) + { + EditorGUILayout.Space(4); + EditorGUILayout.BeginVertical("box"); + EditorGUI.indentLevel++; + EditorGUILayout.PrefixLabel("Select A Custom Render Texture",followingStyle: "Popup", labelStyle: LongLabel(-10)); + materialChooser = EditorGUILayout.Popup(materialChooser,materialChooserList, GUILayout.MaxWidth(350f)); + switch(so.FindProperty("DMXMode").intValue) + { + default: + switch(materialChooser) + { + default: + break; + case 1: + EditorGUILayout.BeginVertical(); + CreateMaterialGUI(dmx_H_CRT_Color_Mat); + EditorGUILayout.EndVertical(); + break; + case 2: + EditorGUILayout.BeginVertical(); + CreateMaterialGUI(dmx_H_CRT_Mvmt_Mat); + EditorGUILayout.EndVertical(); + break; + case 3: + EditorGUILayout.BeginVertical(); + CreateMaterialGUI(dmx_H_CRT_Spin_Mat); + EditorGUILayout.EndVertical(); + break; + case 4: + EditorGUILayout.BeginVertical(); + CreateMaterialGUI(dmx_H_CRT_StrobeTime_Mat); + EditorGUILayout.EndVertical(); + break; + case 5: + EditorGUILayout.BeginVertical(); + CreateMaterialGUI(dmx_H_CRT_StrobeOut_Mat); + EditorGUILayout.EndVertical(); + break; + case 6: + EditorGUILayout.BeginVertical(); + CreateMaterialGUI(audiolink_CRT_InterpolationMat); + EditorGUILayout.EndVertical(); + break; + } + break; + case 1: + switch(materialChooser) + { + default: + break; + case 1: + EditorGUILayout.BeginVertical(); + CreateMaterialGUI(dmx_V_CRT_Color_Mat); + EditorGUILayout.EndVertical(); + break; + case 2: + EditorGUILayout.BeginVertical(); + CreateMaterialGUI(dmx_V_CRT_Mvmt_Mat); + EditorGUILayout.EndVertical(); + break; + case 3: + EditorGUILayout.BeginVertical(); + CreateMaterialGUI(dmx_V_CRT_Spin_Mat); + EditorGUILayout.EndVertical(); + break; + case 4: + EditorGUILayout.BeginVertical(); + CreateMaterialGUI(dmx_V_CRT_StrobeTime_Mat); + EditorGUILayout.EndVertical(); + break; + case 5: + EditorGUILayout.BeginVertical(); + CreateMaterialGUI(dmx_V_CRT_StrobeOut_Mat); + EditorGUILayout.EndVertical(); + break; + case 6: + EditorGUILayout.BeginVertical(); + CreateMaterialGUI(audiolink_CRT_InterpolationMat); + EditorGUILayout.EndVertical(); + break; + } + break; + case 2: + switch(materialChooser) + { + default: + break; + case 1: + EditorGUILayout.BeginVertical(); + CreateMaterialGUI(dmx_L_CRT_Color_Mat); + EditorGUILayout.EndVertical(); + break; + case 2: + EditorGUILayout.BeginVertical(); + CreateMaterialGUI(dmx_L_CRT_Mvmt_Mat); + EditorGUILayout.EndVertical(); + break; + case 3: + EditorGUILayout.BeginVertical(); + CreateMaterialGUI(dmx_L_CRT_Spin_Mat); + EditorGUILayout.EndVertical(); + break; + case 4: + EditorGUILayout.BeginVertical(); + CreateMaterialGUI(dmx_L_CRT_StrobeTime_Mat); + EditorGUILayout.EndVertical(); + break; + case 5: + EditorGUILayout.BeginVertical(); + CreateMaterialGUI(dmx_L_CRT_StrobeOut_Mat); + EditorGUILayout.EndVertical(); + break; + case 6: + EditorGUILayout.BeginVertical(); + CreateMaterialGUI(audiolink_CRT_InterpolationMat); + EditorGUILayout.EndVertical(); + break; + } + break; + } + EditorGUI.indentLevel--; + EditorGUILayout.EndVertical(); + } + EditorGUILayout.EndVertical(); //EditorGUILayout.Space(); @@ -2838,8 +3182,15 @@ void OnGUI() { EditorGUILayout.EndHorizontal(); // panel.useLegacyStaticLights = so.FindProperty("useLegacyStaticLights").boolValue; // panel.useLegacyStaticLights = EditorGUILayout.Toggle("Use Legacy Static Lights", panel.useLegacyStaticLights); + EditorGUILayout.BeginHorizontal(); soptr.FindProperty("useLegacyStaticLights").boolValue = EditorGUILayout.ToggleLeft("Use Old 13 Channel Static Lights (Not Recommended)", panel.useLegacyStaticLights); + // if(hasDMXGI) + // { + // soptr.FindProperty("useDMXGI").boolValue = EditorGUILayout.ToggleLeft("Enable DMX GI Prefabs", panel.useDMXGI); + // } + EditorGUILayout.EndHorizontal(); + } @@ -3281,7 +3632,10 @@ void OnGUI() { EditorGUILayout.EndFoldoutHeaderGroup(); //GUILayout.Space(2.0f); - + if(PrefabUtility.IsPartOfAnyPrefab(fixture.light)) + { + PrefabUtility.RecordPrefabInstancePropertyModifications(fixture.light); + } } // EditorGUILayout.EndVertical(); // EditorGUILayout.EndHorizontal(); @@ -3587,6 +3941,10 @@ void OnGUI() { EditorGUILayout.EndFoldoutHeaderGroup(); } } + if(PrefabUtility.IsPartOfAnyPrefab(fixture.light)) + { + PrefabUtility.RecordPrefabInstancePropertyModifications(fixture.light); + } } } diff --git a/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/CRT Materials/DMXRTMaterial-Interpolated-Color+Intensity-Horizontal.mat b/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/CRT Materials/DMXRTMaterial-Interpolated-Color+Intensity-Horizontal.mat index 516a48c..de9592c 100644 --- a/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/CRT Materials/DMXRTMaterial-Interpolated-Color+Intensity-Horizontal.mat +++ b/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/CRT Materials/DMXRTMaterial-Interpolated-Color+Intensity-Horizontal.mat @@ -94,7 +94,7 @@ Material: - _OcclusionStrength: 1 - _Parallax: 0.02 - _Sector: 0 - - _SmoothValue: 0.6 + - _SmoothValue: 0.755 - _SmoothnessTextureChannel: 0 - _SpecularHighlights: 1 - _SrcBlend: 1 diff --git a/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/CRT Materials/DMXRTMaterial-StrobeTimings-Horizontal.mat b/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/CRT Materials/DMXRTMaterial-StrobeTimings-Horizontal.mat index 32cba8d..5278884 100644 --- a/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/CRT Materials/DMXRTMaterial-StrobeTimings-Horizontal.mat +++ b/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/CRT Materials/DMXRTMaterial-StrobeTimings-Horizontal.mat @@ -9,7 +9,7 @@ Material: m_PrefabAsset: {fileID: 0} m_Name: DMXRTMaterial-StrobeTimings-Horizontal m_Shader: {fileID: 4800000, guid: 70d085252a756e54e96824cb28a38a48, type: 3} - m_ShaderKeywords: _NINEUNIVERSEMODE_ON + m_ShaderKeywords: _NINEUNIVERSEMODE_ON _VRSL_STATICFREQUENCIES m_LightmapFlags: 4 m_EnableInstancingVariants: 0 m_DoubleSidedGI: 0 @@ -32,7 +32,11 @@ Material: m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} m_Floats: - - _MaxStrobeFreq: 75 + - _HighFrequency: 75 + - _LowFrequency: 40 + - _MaxStrobeFreq: 185 + - _MedFrequency: 60 - _NineUniverseMode: 0 - _SmoothValue: 0.5 + - _StrobeType: 1 m_Colors: [] diff --git a/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/CRT Materials/VerticalMode/DMXRTMaterial-StrobeTimings-Vertical.mat b/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/CRT Materials/VerticalMode/DMXRTMaterial-StrobeTimings-Vertical.mat index a40d8a8..f255286 100644 --- a/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/CRT Materials/VerticalMode/DMXRTMaterial-StrobeTimings-Vertical.mat +++ b/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/CRT Materials/VerticalMode/DMXRTMaterial-StrobeTimings-Vertical.mat @@ -32,7 +32,11 @@ Material: m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} m_Floats: + - _HighFrequency: 75 + - _LowFrequency: 25 - _MaxStrobeFreq: 100 + - _MedFrequency: 50 - _NineUniverseMode: 0 - _SmoothValue: 0.5 + - _StrobeType: 0 m_Colors: [] diff --git a/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Lights/AudioLink/StandardMover/VRSL-AudioLink-StandardMover-VolumetricMat.mat b/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Lights/AudioLink/StandardMover/VRSL-AudioLink-StandardMover-VolumetricMat.mat index 8dc7b85..f709630 100644 --- a/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Lights/AudioLink/StandardMover/VRSL-AudioLink-StandardMover-VolumetricMat.mat +++ b/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Lights/AudioLink/StandardMover/VRSL-AudioLink-StandardMover-VolumetricMat.mat @@ -10,8 +10,8 @@ Material: m_Name: VRSL-AudioLink-StandardMover-VolumetricMat m_Shader: {fileID: 4800000, guid: a9ae9924e60e8b04293b700af7aba257, type: 3} m_ShaderKeywords: _2D_NOISE_ON _DNENABLER_NONE _ENABLEOSC_ON _ENABLESPIN_ON _GOBOBEAMSPLITENABLE_ON - _MAGIC_NOISE_ON _MAGIC_NOISE_ON_ON _TOGGLEMAGICNOISE_ON _USEDEPTHLIGHT_ON _USERAWGRID_ON - _USE_DEPTH_LIGHT + _MAGIC_NOISE_ON_HIGH _MAGIC_NOISE_ON_MED _MAGIC_NOISE_ON_ON _TOGGLEMAGICNOISE_ON + _USEDEPTHLIGHT_ON _USERAWGRID_ON _USE_DEPTH_LIGHT m_LightmapFlags: 4 m_EnableInstancingVariants: 1 m_DoubleSidedGI: 0 @@ -50,6 +50,10 @@ Material: m_Texture: {fileID: 2800000, guid: 95dae414ef2ffd7438602114879b8b41, type: 3} m_Scale: {x: 0.001, y: 5} m_Offset: {x: 0, y: 0} + - _NoiseTexHigh: + m_Texture: {fileID: 2800000, guid: 95dae414ef2ffd7438602114879b8b41, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} - _OSCGridRenderTexture: m_Texture: {fileID: 8600000, guid: 85ba02ef33f4e4c4a94d9085f48ec5c1, type: 2} m_Scale: {x: 1, y: 1} @@ -159,6 +163,8 @@ Material: - _LensMaxBrightness: 3.66 - _LightProbeMethod: 0 - _MAGIC_NOISE_ON: 1 + - _MAGIC_NOISE_ON_HIGH: 1 + - _MAGIC_NOISE_ON_MED: 1 - _MagicNoiseScale: 2.5 - _MaxConeLength: 1 - _MaxMinPanAngle: 0 diff --git a/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Lights/AudioLink/WashMover/VRSL-AudioLink-WashMover-VolumetricMat.mat b/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Lights/AudioLink/WashMover/VRSL-AudioLink-WashMover-VolumetricMat.mat index 8658de3..1f99da0 100644 --- a/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Lights/AudioLink/WashMover/VRSL-AudioLink-WashMover-VolumetricMat.mat +++ b/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Lights/AudioLink/WashMover/VRSL-AudioLink-WashMover-VolumetricMat.mat @@ -10,8 +10,8 @@ Material: m_Name: VRSL-AudioLink-WashMover-VolumetricMat m_Shader: {fileID: 4800000, guid: e94b1a2d8b9ef034da37a82c4fb64b60, type: 3} m_ShaderKeywords: _2D_NOISE_ON _DNENABLER_NONE _ENABLECOLORTEXTURESAMPLE_ON _ENABLEOSC_ON - _ENABLESPIN_ON _GOBOBEAMSPLITENABLE_ON _HQMODE_ON _MAGIC_NOISE_ON _TOGGLEMAGICNOISE_ON - _USEDEPTHLIGHT_ON _USERAWGRID_ON _USE_DEPTH_LIGHT + _ENABLESPIN_ON _GOBOBEAMSPLITENABLE_ON _HQMODE_ON _MAGIC_NOISE_ON_HIGH _MAGIC_NOISE_ON_MED + _TOGGLEMAGICNOISE_ON _USEDEPTHLIGHT_ON _USERAWGRID_ON _USE_DEPTH_LIGHT m_LightmapFlags: 4 m_EnableInstancingVariants: 1 m_DoubleSidedGI: 0 @@ -159,6 +159,8 @@ Material: - _LensMaxBrightness: 1 - _LightProbeMethod: 0 - _MAGIC_NOISE_ON: 1 + - _MAGIC_NOISE_ON_HIGH: 1 + - _MAGIC_NOISE_ON_MED: 1 - _MagicNoiseScale: 2.5 - _MaxConeLength: 1 - _MaxMinPanAngle: 0 diff --git a/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Lights/DMX/MoverLight - Spotlight/LegacyMode/VRSL-StandardMover-VolumetricMat-HQ-Legacy.mat b/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Lights/DMX/MoverLight - Spotlight/LegacyMode/VRSL-StandardMover-VolumetricMat-HQ-Legacy.mat index e794143..d88d24a 100644 --- a/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Lights/DMX/MoverLight - Spotlight/LegacyMode/VRSL-StandardMover-VolumetricMat-HQ-Legacy.mat +++ b/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Lights/DMX/MoverLight - Spotlight/LegacyMode/VRSL-StandardMover-VolumetricMat-HQ-Legacy.mat @@ -10,7 +10,8 @@ Material: m_Name: VRSL-StandardMover-VolumetricMat-HQ-Legacy m_Shader: {fileID: 4800000, guid: 67a0beb6b3a31dc4e8b2d2344df6a994, type: 3} m_ShaderKeywords: _2D_NOISE_ON _DNENABLER_NONE _ENABLECOMPATIBILITYMODE_ON _ENABLEOSC_ON - _GOBOBEAMSPLITENABLE_ON _MAGIC_NOISE_ON _TOGGLEMAGICNOISE_ON _USERAWGRID_ON _USE_DEPTH_LIGHT + _GOBOBEAMSPLITENABLE_ON _MAGIC_NOISE_ON_HIGH _MAGIC_NOISE_ON_MED _TOGGLEMAGICNOISE_ON + _USERAWGRID_ON _USE_DEPTH_LIGHT m_LightmapFlags: 4 m_EnableInstancingVariants: 1 m_DoubleSidedGI: 0 @@ -45,6 +46,10 @@ Material: m_Texture: {fileID: 2800000, guid: 95dae414ef2ffd7438602114879b8b41, type: 3} m_Scale: {x: 0.001, y: 5} m_Offset: {x: 0, y: 0} + - _NoiseTexHigh: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} - _OSCGridRenderTexture: m_Texture: {fileID: 8600000, guid: 85ba02ef33f4e4c4a94d9085f48ec5c1, type: 2} m_Scale: {x: 1, y: 1} @@ -153,11 +158,13 @@ Material: - _LensMaxBrightness: 60 - _LightProbeMethod: 0 - _MAGIC_NOISE_ON: 1 + - _MAGIC_NOISE_ON_HIGH: 1 + - _MAGIC_NOISE_ON_MED: 1 - _MaxConeLength: 1 - _MaxMinPanAngle: 90 - _MaxMinTiltAngle: -90 - _Metallic: 0.501 - - _MinimumBeamRadius: 1 + - _MinimumBeamRadius: 0.95 - _ModX: 0 - _ModY: 0 - _NineUniverseMode: 0 diff --git a/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Lights/DMX/MoverLight - Spotlight/VRSL-StandardMover-FixtureMat-HQ-Horizontal.mat b/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Lights/DMX/MoverLight - Spotlight/VRSL-StandardMover-FixtureMat-HQ-Horizontal.mat index f87f00d..4014752 100644 --- a/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Lights/DMX/MoverLight - Spotlight/VRSL-StandardMover-FixtureMat-HQ-Horizontal.mat +++ b/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Lights/DMX/MoverLight - Spotlight/VRSL-StandardMover-FixtureMat-HQ-Horizontal.mat @@ -14,7 +14,7 @@ Material: m_LightmapFlags: 4 m_EnableInstancingVariants: 1 m_DoubleSidedGI: 0 - m_CustomRenderQueue: -1 + m_CustomRenderQueue: 2451 stringTagMap: {} disabledShaderPasses: [] m_SavedProperties: diff --git a/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Lights/DMX/MoverLight - Spotlight/VRSL-StandardMover-ProjectionMat-HQ-Horizontal.mat b/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Lights/DMX/MoverLight - Spotlight/VRSL-StandardMover-ProjectionMat-HQ-Horizontal.mat index c6012e8..2a0ae0a 100644 --- a/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Lights/DMX/MoverLight - Spotlight/VRSL-StandardMover-ProjectionMat-HQ-Horizontal.mat +++ b/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Lights/DMX/MoverLight - Spotlight/VRSL-StandardMover-ProjectionMat-HQ-Horizontal.mat @@ -12,7 +12,7 @@ Material: m_ShaderKeywords: _DNENABLER_NONE _ENABLEDMX_ON _ENABLESPIN_ON _ENABLESTROBE_ON _LEGACYGOBORANGE_ON _NINEUNIVERSEMODE_ON _USERAWGRID_ON m_LightmapFlags: 4 - m_EnableInstancingVariants: 0 + m_EnableInstancingVariants: 1 m_DoubleSidedGI: 0 m_CustomRenderQueue: 3001 stringTagMap: @@ -170,14 +170,14 @@ Material: - _ProjectionRotation: -180 - _ProjectionSelection: 0 - _ProjectionShadowHarshness: 0.9 - - _ProjectionUVMod: 0.8 - - _ProjectionUVMod2: 0.8 - - _ProjectionUVMod3: 0.8 - - _ProjectionUVMod4: 0.8 - - _ProjectionUVMod5: 0.8 - - _ProjectionUVMod6: 0.8 - - _ProjectionUVMod7: 0.8 - - _ProjectionUVMod8: 0.8 + - _ProjectionUVMod: 0.75 + - _ProjectionUVMod2: 0.75 + - _ProjectionUVMod3: 0.75 + - _ProjectionUVMod4: 0.75 + - _ProjectionUVMod5: 0.75 + - _ProjectionUVMod6: 0.75 + - _ProjectionUVMod7: 0.75 + - _ProjectionUVMod8: 0.75 - _PulseSpeed: 0 - _RTLMStrength: 1 - _RedMultiplier: 1 diff --git a/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Lights/DMX/MoverLight - Spotlight/VRSL-StandardMover-VolumetricMat-HQ-Horizontal.mat b/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Lights/DMX/MoverLight - Spotlight/VRSL-StandardMover-VolumetricMat-HQ-Horizontal.mat index cf680ac..a3a239e 100644 --- a/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Lights/DMX/MoverLight - Spotlight/VRSL-StandardMover-VolumetricMat-HQ-Horizontal.mat +++ b/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Lights/DMX/MoverLight - Spotlight/VRSL-StandardMover-VolumetricMat-HQ-Horizontal.mat @@ -10,8 +10,8 @@ Material: m_Name: VRSL-StandardMover-VolumetricMat-HQ-Horizontal m_Shader: {fileID: 4800000, guid: 67a0beb6b3a31dc4e8b2d2344df6a994, type: 3} m_ShaderKeywords: _2D_NOISE_ON _2D_NOISE_ON_ON _DNENABLER_NONE _ENABLEOSC_ON _GOBOBEAMSPLITENABLE_ON - _MAGIC_NOISE_ON _MAGIC_NOISE_ON_ON _TOGGLEMAGICNOISE_ON _USEDEPTHLIGHT_ON _USERAWGRID_ON - _USE_DEPTH_LIGHT + _MAGIC_NOISE_ON_HIGH _MAGIC_NOISE_ON_MED _MAGIC_NOISE_ON_MED_ON _MAGIC_NOISE_ON_ON + _TOGGLEMAGICNOISE_ON _USEDEPTHLIGHT_ON _USERAWGRID_ON _USE_DEPTH_LIGHT m_LightmapFlags: 4 m_EnableInstancingVariants: 1 m_DoubleSidedGI: 0 @@ -46,6 +46,10 @@ Material: m_Texture: {fileID: 2800000, guid: 95dae414ef2ffd7438602114879b8b41, type: 3} m_Scale: {x: 0.001, y: 5} m_Offset: {x: 0, y: 0} + - _NoiseTexHigh: + m_Texture: {fileID: 2800000, guid: 95dae414ef2ffd7438602114879b8b41, type: 3} + m_Scale: {x: 0.001, y: 5} + m_Offset: {x: 0, y: 0} - _OSCGridRenderTexture: m_Texture: {fileID: 8600000, guid: 5225295a38260644c99eb0aebf544ec8, type: 2} m_Scale: {x: 1, y: 1} @@ -154,13 +158,15 @@ Material: - _LensMaxBrightness: 35 - _LightProbeMethod: 0 - _MAGIC_NOISE_ON: 1 + - _MAGIC_NOISE_ON_HIGH: 1 + - _MAGIC_NOISE_ON_MED: 1 - _MaxConeLength: 1 - _MaxMinPanAngle: 90 - _MaxMinPanAngleInstanced: 180 - _MaxMinTiltAngle: -90 - _MaxMinTiltAngleInstanced: 180 - _Metallic: 0.501 - - _MinimumBeamRadius: 0.95 + - _MinimumBeamRadius: 1 - _ModX: 0 - _ModY: 0 - _NineUniverseMode: 0 diff --git a/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Lights/DMX/MoverLight - Spotlight/VerticalMode/VRSL-StandardMover-VolumetricMat-HQ-Vertical.mat b/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Lights/DMX/MoverLight - Spotlight/VerticalMode/VRSL-StandardMover-VolumetricMat-HQ-Vertical.mat index f46301c..7f3944c 100644 --- a/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Lights/DMX/MoverLight - Spotlight/VerticalMode/VRSL-StandardMover-VolumetricMat-HQ-Vertical.mat +++ b/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Lights/DMX/MoverLight - Spotlight/VerticalMode/VRSL-StandardMover-VolumetricMat-HQ-Vertical.mat @@ -10,7 +10,8 @@ Material: m_Name: VRSL-StandardMover-VolumetricMat-HQ-Vertical m_Shader: {fileID: 4800000, guid: 67a0beb6b3a31dc4e8b2d2344df6a994, type: 3} m_ShaderKeywords: _2D_NOISE_ON _DNENABLER_NONE _ENABLEOSC_ON _ENABLESPIN_ON _ENABLEVERTICALMODE_ON - _GOBOBEAMSPLITENABLE_ON _MAGIC_NOISE_ON _TOGGLEMAGICNOISE_ON _USERAWGRID_ON _USE_DEPTH_LIGHT + _GOBOBEAMSPLITENABLE_ON _MAGIC_NOISE_ON_HIGH _MAGIC_NOISE_ON_MED _TOGGLEMAGICNOISE_ON + _USERAWGRID_ON _USE_DEPTH_LIGHT m_LightmapFlags: 4 m_EnableInstancingVariants: 1 m_DoubleSidedGI: 0 @@ -45,6 +46,10 @@ Material: m_Texture: {fileID: 2800000, guid: 95dae414ef2ffd7438602114879b8b41, type: 3} m_Scale: {x: 0.001, y: 5} m_Offset: {x: 0, y: 0} + - _NoiseTexHigh: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} - _OSCGridRenderTexture: m_Texture: {fileID: 8600000, guid: 3d0e5498d25faf34999f530603c36e4d, type: 2} m_Scale: {x: 1, y: 1} @@ -153,11 +158,13 @@ Material: - _LensMaxBrightness: 60 - _LightProbeMethod: 0 - _MAGIC_NOISE_ON: 1 + - _MAGIC_NOISE_ON_HIGH: 1 + - _MAGIC_NOISE_ON_MED: 1 - _MaxConeLength: 1 - _MaxMinPanAngle: 90 - _MaxMinTiltAngle: -90 - _Metallic: 0.501 - - _MinimumBeamRadius: 1 + - _MinimumBeamRadius: 0.95 - _ModX: 0 - _ModY: 0 - _NineUniverseMode: 0 diff --git a/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Lights/DMX/MoverLight - Washlight/LegacyMode/VRSL-WashMover-VolumetricMat-HQ-Legacy.mat b/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Lights/DMX/MoverLight - Washlight/LegacyMode/VRSL-WashMover-VolumetricMat-HQ-Legacy.mat index 4c1809a..81f5692 100644 --- a/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Lights/DMX/MoverLight - Washlight/LegacyMode/VRSL-WashMover-VolumetricMat-HQ-Legacy.mat +++ b/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Lights/DMX/MoverLight - Washlight/LegacyMode/VRSL-WashMover-VolumetricMat-HQ-Legacy.mat @@ -10,7 +10,8 @@ Material: m_Name: VRSL-WashMover-VolumetricMat-HQ-Legacy m_Shader: {fileID: 4800000, guid: da75de52174b0924f9a93e9a37146aed, type: 3} m_ShaderKeywords: _2D_NOISE_ON _DNENABLER_NONE _ENABLECOMPATIBILITYMODE_ON _ENABLEOSC_ON - _ENABLESPIN_ON _MAGIC_NOISE_ON _TOGGLEMAGICNOISE_ON _USERAWGRID_ON _USE_DEPTH_LIGHT + _ENABLESPIN_ON _MAGIC_NOISE_ON_HIGH _MAGIC_NOISE_ON_MED _TOGGLEMAGICNOISE_ON + _USERAWGRID_ON _USE_DEPTH_LIGHT m_LightmapFlags: 4 m_EnableInstancingVariants: 1 m_DoubleSidedGI: 0 @@ -153,6 +154,8 @@ Material: - _LensMaxBrightness: 1 - _LightProbeMethod: 0 - _MAGIC_NOISE_ON: 1 + - _MAGIC_NOISE_ON_HIGH: 1 + - _MAGIC_NOISE_ON_MED: 1 - _MaxConeLength: 1 - _MaxMinPanAngle: 90 - _MaxMinTiltAngle: -90 diff --git a/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Lights/DMX/MoverLight - Washlight/VRSL-WashMover-ProjectionMat-HQ-Horizontal.mat b/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Lights/DMX/MoverLight - Washlight/VRSL-WashMover-ProjectionMat-HQ-Horizontal.mat index e709d25..3045d50 100644 --- a/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Lights/DMX/MoverLight - Washlight/VRSL-WashMover-ProjectionMat-HQ-Horizontal.mat +++ b/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Lights/DMX/MoverLight - Washlight/VRSL-WashMover-ProjectionMat-HQ-Horizontal.mat @@ -159,7 +159,7 @@ Material: - _NoisePower: 0.333 - _NoiseSeed: 420 - _PanInvert: 0 - - _ProjectionCutoff: 0.12 + - _ProjectionCutoff: 0.13 - _ProjectionDistanceFallOff: 0.01 - _ProjectionFade: 2.35 - _ProjectionFadeCurve: 1.99 diff --git a/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Lights/DMX/MoverLight - Washlight/VRSL-WashMover-VolumetricMat-HQ-Horizontal.mat b/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Lights/DMX/MoverLight - Washlight/VRSL-WashMover-VolumetricMat-HQ-Horizontal.mat index eb4d68f..5ef26ba 100644 --- a/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Lights/DMX/MoverLight - Washlight/VRSL-WashMover-VolumetricMat-HQ-Horizontal.mat +++ b/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Lights/DMX/MoverLight - Washlight/VRSL-WashMover-VolumetricMat-HQ-Horizontal.mat @@ -9,8 +9,8 @@ Material: m_PrefabAsset: {fileID: 0} m_Name: VRSL-WashMover-VolumetricMat-HQ-Horizontal m_Shader: {fileID: 4800000, guid: da75de52174b0924f9a93e9a37146aed, type: 3} - m_ShaderKeywords: _DNENABLER_NONE _ENABLEOSC_ON _ENABLESPIN_ON _HQMODE_ON _MAGIC_NOISE_ON - _TOGGLEMAGICNOISE_ON _USEDEPTHLIGHT_ON _USERAWGRID_ON _USE_DEPTH_LIGHT + m_ShaderKeywords: _DNENABLER_NONE _ENABLEOSC_ON _ENABLESPIN_ON _HQMODE_ON _MAGIC_NOISE_ON_HIGH + _MAGIC_NOISE_ON_MED _TOGGLEMAGICNOISE_ON _USEDEPTHLIGHT_ON _USERAWGRID_ON _USE_DEPTH_LIGHT m_LightmapFlags: 4 m_EnableInstancingVariants: 1 m_DoubleSidedGI: 0 @@ -45,6 +45,10 @@ Material: m_Texture: {fileID: 2800000, guid: 95dae414ef2ffd7438602114879b8b41, type: 3} m_Scale: {x: 0.001, y: 5} m_Offset: {x: 0, y: 0} + - _NoiseTexHigh: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} - _OSCGridRenderTexture: m_Texture: {fileID: 8600000, guid: 5225295a38260644c99eb0aebf544ec8, type: 2} m_Scale: {x: 1, y: 1} @@ -153,6 +157,8 @@ Material: - _LensMaxBrightness: 1 - _LightProbeMethod: 0 - _MAGIC_NOISE_ON: 1 + - _MAGIC_NOISE_ON_HIGH: 1 + - _MAGIC_NOISE_ON_MED: 1 - _MaxConeLength: 4.97 - _MaxMinPanAngle: 90 - _MaxMinTiltAngle: -90 diff --git a/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Lights/DMX/MoverLight - Washlight/VerticalMode/VRSL-WashMover-VolumetricMat-HQ-Vertical.mat b/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Lights/DMX/MoverLight - Washlight/VerticalMode/VRSL-WashMover-VolumetricMat-HQ-Vertical.mat index d102167..8ddda13 100644 --- a/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Lights/DMX/MoverLight - Washlight/VerticalMode/VRSL-WashMover-VolumetricMat-HQ-Vertical.mat +++ b/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Lights/DMX/MoverLight - Washlight/VerticalMode/VRSL-WashMover-VolumetricMat-HQ-Vertical.mat @@ -10,7 +10,8 @@ Material: m_Name: VRSL-WashMover-VolumetricMat-HQ-Vertical m_Shader: {fileID: 4800000, guid: da75de52174b0924f9a93e9a37146aed, type: 3} m_ShaderKeywords: _2D_NOISE_ON _DNENABLER_NONE _ENABLEOSC_ON _ENABLESPIN_ON _ENABLEVERTICALMODE_ON - _MAGIC_NOISE_ON _TOGGLEMAGICNOISE_ON _USERAWGRID_ON _USE_DEPTH_LIGHT + _MAGIC_NOISE_ON_HIGH _MAGIC_NOISE_ON_MED _TOGGLEMAGICNOISE_ON _USERAWGRID_ON + _USE_DEPTH_LIGHT m_LightmapFlags: 4 m_EnableInstancingVariants: 1 m_DoubleSidedGI: 0 @@ -45,6 +46,10 @@ Material: m_Texture: {fileID: 2800000, guid: 95dae414ef2ffd7438602114879b8b41, type: 3} m_Scale: {x: 0.001, y: 5} m_Offset: {x: 0, y: 0} + - _NoiseTexHigh: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} - _OSCGridRenderTexture: m_Texture: {fileID: 8600000, guid: 3d0e5498d25faf34999f530603c36e4d, type: 2} m_Scale: {x: 1, y: 1} @@ -108,7 +113,7 @@ Material: - _BlendDst: 1 - _BlendOp: 0 - _BlendSrc: 2 - - _BlindingAngleMod: 1 + - _BlindingAngleMod: 0.2 - _BlueMultiplier: 1 - _BumpScale: 1 - _ConeLength: 1 @@ -117,7 +122,7 @@ Material: - _DMXChannel: 0 - _DNEnabler: 0 - _Desaturate: 1 - - _DistFade: 0.5 + - _DistFade: 1 - _Divide: 11.6 - _DividePower: 0.043 - _EnableCompatibilityMode: 0 @@ -130,12 +135,12 @@ Material: - _EnableVerticalMode: 1 - _Fade: 1.5 - _FadeAmt: 95 - - _FadeStrength: 12 + - _FadeStrength: 12.77 - _FeatherOffset: 0.5 - _FinalIntensity: 1 - _FinalStrobeFreq: 0 - _FixtureBaseRotationY: 0 - - _FixtureMaxIntensity: 0.5 + - _FixtureMaxIntensity: 0.35 - _FixtureRotationX: 0 - _GlobalIntensity: 1 - _Glossiness: 1 @@ -144,8 +149,8 @@ Material: - _GradientModGOBO: 2.25 - _GreenMultiplier: 1 - _HQMode: 0 - - _InnerFadeStrength: 12 - - _InnerIntensityCurve: 20 + - _InnerFadeStrength: 10 + - _InnerIntensityCurve: 10 - _IntensityCutoff: 0 - _IsEven: 0 - _LMStrength: 1 @@ -153,6 +158,8 @@ Material: - _LensMaxBrightness: 1 - _LightProbeMethod: 0 - _MAGIC_NOISE_ON: 1 + - _MAGIC_NOISE_ON_HIGH: 1 + - _MAGIC_NOISE_ON_MED: 1 - _MaxConeLength: 1 - _MaxMinPanAngle: 90 - _MaxMinTiltAngle: -90 @@ -162,19 +169,19 @@ Material: - _ModY: 0 - _NineUniverseMode: 0 - _Noise2Power: 0.75 - - _Noise2PowerDefault: 1 + - _Noise2PowerDefault: 0.887 - _Noise2PowerPotato: 1 - _Noise2Stretch: 1 - - _Noise2StretchDefault: 1 + - _Noise2StretchDefault: 1.5 - _Noise2StretchInside: 1 - - _Noise2StretchInsideDefault: 1 + - _Noise2StretchInsideDefault: 1.5 - _Noise2StretchInsidePotato: 1 - _Noise2StretchPotato: 1 - _Noise2X: 0 - - _Noise2XDefault: 1 + - _Noise2XDefault: 0 - _Noise2XPotato: 1 - _Noise2Y: 7.5 - - _Noise2YDefault: 1 + - _Noise2YDefault: 7.5 - _Noise2YPotato: 1 - _Noise2Z: 1 - _Noise2ZDefault: 1 diff --git a/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Lights/DMX/StaticLight-Blinder/VerticalMode/VRSL-Blinder-LensFlareMat-Vertical.mat b/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Lights/DMX/StaticLight-Blinder/VerticalMode/VRSL-Blinder-LensFlareMat-Vertical.mat index a1847a9..e4ec8a2 100644 --- a/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Lights/DMX/StaticLight-Blinder/VerticalMode/VRSL-Blinder-LensFlareMat-Vertical.mat +++ b/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Lights/DMX/StaticLight-Blinder/VerticalMode/VRSL-Blinder-LensFlareMat-Vertical.mat @@ -91,7 +91,7 @@ Material: - _EndFadeinDistanceWorldUnit: 0.5 - _FadeAmt: 0.216 - _FinalIntensity: 1 - - _FixtureMaxIntensity: 6 + - _FixtureMaxIntensity: 2 - _FixutreIntensityMultiplier: 1 - _FlickResultIntensityLowestPoint: 0.5 - _FlickerAnimSpeed: 5 diff --git a/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Lights/DMX/StaticLight-LightBarAndFlashers/5-Channel/VRSL-LightBar-FixtureMat-Horizontal-5CH-Standard.mat b/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Lights/DMX/StaticLight-LightBarAndFlashers/5-Channel/VRSL-LightBar-FixtureMat-Horizontal-5CH-Standard.mat deleted file mode 100644 index 3f3d806..0000000 --- a/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Lights/DMX/StaticLight-LightBarAndFlashers/5-Channel/VRSL-LightBar-FixtureMat-Horizontal-5CH-Standard.mat +++ /dev/null @@ -1,225 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!21 &2100000 -Material: - serializedVersion: 6 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: VRSL-LightBar-FixtureMat-Horizontal-5CH-Standard - m_Shader: {fileID: 4800000, guid: 323ff3e2b9a08514c99611b25f115f7e, type: 3} - m_ShaderKeywords: _5CH_MODE _FORWARD_Y _METALLICGLOSSMAP _NORMALMAP _STROBE_ON - _USERAWGRID_ON _USE_DEPTH_LIGHT _VRSL_GI _VRSL_MIX_MULT _VRSL_ON - m_LightmapFlags: 4 - m_EnableInstancingVariants: 1 - m_DoubleSidedGI: 0 - m_CustomRenderQueue: -1 - stringTagMap: {} - disabledShaderPasses: [] - m_SavedProperties: - serializedVersion: 3 - m_TexEnvs: - - _AudioSpectrum: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _BumpMap: - m_Texture: {fileID: 2800000, guid: 30883d403f58448469709a65b0f45736, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DMXEmissionMap: - m_Texture: {fileID: 2800000, guid: 4fed70ee86b71514aadfcd7054e2bcd7, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailAlbedoMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailMask: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailNormalMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _EmissionMap: - m_Texture: {fileID: 2800000, guid: b4cb310d700df3f4a8145cae79a55d6a, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _EmissionMask: - m_Texture: {fileID: 2800000, guid: 4fed70ee86b71514aadfcd7054e2bcd7, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _LightMainTex: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _MainTex: - m_Texture: {fileID: 2800000, guid: 4b156bec52a041744bce7376441a23fb, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _MetallicGlossMap: - m_Texture: {fileID: 2800000, guid: 1203e1ce9a1f8264ab985632f9e0ee0f, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _MetallicSmoothness: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _NormalMap: - m_Texture: {fileID: 2800000, guid: 30883d403f58448469709a65b0f45736, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _OSCGridRenderTexture: - m_Texture: {fileID: 8600000, guid: 5225295a38260644c99eb0aebf544ec8, type: 2} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _OSCGridRenderTextureRAW: - m_Texture: {fileID: 8600000, guid: 57481ad1fad57a247b2754e1469292a9, type: 2} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _OSCGridStrobeTimer: - m_Texture: {fileID: 8600000, guid: fbbd57abbf5ece54c9996e59beb3dac1, type: 2} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _OcclusionMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _ParallaxMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _ProjectionMainTex: - m_Texture: {fileID: 2800000, guid: 2e4e1fd2424262246bc882aa92947216, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _ProjectionTex2: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _ProjectionTex3: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _ProjectionTex4: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _ProjectionTex5: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _ProjectionTex6: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _SceneAlbedo: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _SceneNormals: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - m_Floats: - - FinalStrobeFreq: 0 - - _BlendDst: 1 - - _BlendOp: 0 - - _BlendSrc: 1 - - _BulbMaxIntensity: 1 - - _BumpScale: 1 - - _ChannelMode: 2 - - _ConeWidth: 0 - - _CurveMod: 5 - - _Cutoff: 0.5 - - _DMXChannel: 0 - - _DMXEmissionMapMix: 0 - - _DetailNormalMapScale: 1 - - _DistFade: 0.7 - - _DstBlend: 0 - - _EnableAudioReact: 0 - - _EnableCompatibilityMode: 0 - - _EnableDMX: 0 - - _EnableOSC: 0 - - _EnablePanMovement: 0 - - _EnableSpin: 0 - - _EnableStrobe: 1 - - _EnableTiltMovement: 0 - - _EnableVerticalMode: 0 - - _Fade: 0.83 - - _FadeAmt: 0.1 - - _FadeStrength: 1 - - _FeatherOffset: 0 - - _FinalIntensity: 1 - - _FinalStrobeFreq: 0 - - _FixtureBaseRotationY: 0 - - _FixtureMaxIntensity: 1000 - - _FixtureRotationX: 0 - - _FixutreIntensityMultiplier: 5 - - _GlobalIntensity: 1 - - _GlossMapScale: 1 - - _Glossiness: 0.673 - - _GlossyReflections: 1 - - _LMStrength: 1 - - _LightProbeMethod: 0 - - _MaxMinPanAngle: 180 - - _MaxMinTiltAngle: 180 - - _Metallic: 0.781 - - _ModX: -0.12 - - _ModY: -0.37 - - _Mode: 0 - - _NineUniverseMode: 0 - - _OcclusionStrength: 1 - - _PanInvert: 0 - - _Parallax: 0.02 - - _ProjectionDistanceFallOff: 0 - - _ProjectionFade: 1.73 - - _ProjectionFadeCurve: 0.96 - - _ProjectionIntensity: 0 - - _ProjectionMaxIntensity: 0 - - _ProjectionRange: 10 - - _ProjectionRotation: 125 - - _ProjectionSelection: 0 - - _ProjectionUVMod: 0.312 - - _ProjectionUVMod2: 0 - - _ProjectionUVMod3: 0 - - _ProjectionUVMod4: 0 - - _ProjectionUVMod5: 0 - - _ProjectionUVMod6: 0 - - _PulseSpeed: 0 - - _RTLMStrength: 1 - - _Saturation: 0.95 - - _Sector: 0 - - _SmoothnessTextureChannel: 0 - - _SpecLMOcclusionAdjust: 0.359 - - _SpecularHighlights: 1 - - _SpecularLMOcclusion: 0 - - _SpinSpeed: 0 - - _SrcBlend: 1 - - _StrobeFreq: 12.76 - - _TextureSampleMode: 0 - - _ThirteenChannelMode: 0 - - _TiltInvert: 0 - - _TriplanarFalloff: 1 - - _UVSec: 0 - - _UniversalIntensity: 1 - - _UseLegacyDMXTextures: 0 - - _UseRawGrid: 1 - - _UseWorldNorm: 0 - - _VRSLGlossiness: 10 - - _VRSLSpecularStrength: 0.5 - - _VRSLToggle: 1 - - _XOffset: -4.21 - - _YOffset: 2.14 - - _ZWrite: 1 - - useVRSLGI: 1 - m_Colors: - - _Color: {r: 1, g: 1, b: 1, a: 1} - - _Emission: {r: 11.984314, g: 11.984314, b: 11.984314, a: 3} - - _EmissionColor: {r: 11.984314, g: 11.984314, b: 11.984314, a: 3} - - _EmissionDMX: {r: 1, g: 1, b: 1, a: 1} - - _FixtureRotationOrigin: {r: 0, g: 0.014709, b: -1.02868, a: 0} - - _ProjectionRangeOrigin: {r: 0, g: 0, b: 0, a: 0} diff --git a/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Lights/DMX/StaticLight-LightBarAndFlashers/5-Channel/VRSL-LightBar-FixtureMat-Horizontal-5CH-Standard.mat.meta b/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Lights/DMX/StaticLight-LightBarAndFlashers/5-Channel/VRSL-LightBar-FixtureMat-Horizontal-5CH-Standard.mat.meta deleted file mode 100644 index f536e04..0000000 --- a/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Lights/DMX/StaticLight-LightBarAndFlashers/5-Channel/VRSL-LightBar-FixtureMat-Horizontal-5CH-Standard.mat.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 396b1e0270dcf49418b7eb47a2dce2b2 -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 2100000 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Lights/DMX/StaticLight-LightBarAndFlashers/VRSL-Flasher-FixtureMat-Horizontal.mat b/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Lights/DMX/StaticLight-LightBarAndFlashers/VRSL-Flasher-FixtureMat-Horizontal.mat index b384f94..98ab38c 100644 --- a/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Lights/DMX/StaticLight-LightBarAndFlashers/VRSL-Flasher-FixtureMat-Horizontal.mat +++ b/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Lights/DMX/StaticLight-LightBarAndFlashers/VRSL-Flasher-FixtureMat-Horizontal.mat @@ -160,7 +160,7 @@ Material: - _FinalIntensity: 1 - _FinalStrobeFreq: 0 - _FixtureBaseRotationY: 0 - - _FixtureMaxIntensity: 12.79 + - _FixtureMaxIntensity: 55 - _FixtureRotationX: 0 - _FixutreIntensityMultiplier: 15 - _GlobalIntensity: 0.84 diff --git a/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Lights/DMX/VRSL-6x4StrobeLightMat.mat b/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Lights/DMX/VRSL-6x4StrobeLightMat.mat index 985e61d..2ef9cb5 100644 --- a/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Lights/DMX/VRSL-6x4StrobeLightMat.mat +++ b/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Lights/DMX/VRSL-6x4StrobeLightMat.mat @@ -9,7 +9,7 @@ Material: m_PrefabAsset: {fileID: 0} m_Name: VRSL-6x4StrobeLightMat m_Shader: {fileID: 4800000, guid: f23016ddcd834d84c92028d893fd6558, type: 3} - m_ShaderKeywords: _EMISSION _METALLICGLOSSMAP _NORMALMAP _USERAWGRID_ON + m_ShaderKeywords: _5CH_MODE _EMISSION _METALLICGLOSSMAP _NORMALMAP _USERAWGRID_ON m_LightmapFlags: 1 m_EnableInstancingVariants: 1 m_DoubleSidedGI: 0 @@ -122,6 +122,7 @@ Material: - _BlendSrc: 1 - _BulbMaxIntensity: 1 - _BumpScale: 1 + - _ChannelMode: 2 - _ConeWidth: 0 - _CurveMod: 50 - _Cutoff: 0.5 @@ -130,6 +131,7 @@ Material: - _DistFade: 0.7 - _DstBlend: 0 - _EnableCompatibilityMode: 0 + - _EnableDMX: 0 - _EnableOSC: 0 - _EnableSpin: 0 - _EnableStrobe: 0 @@ -156,6 +158,7 @@ Material: - _ModX: -0.12 - _ModY: -0.37 - _Mode: 0 + - _NineUniverseMode: 0 - _OcclusionStrength: 1 - _PanInvert: 0 - _Parallax: 0.02 diff --git a/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Lights/DMX/VRSL-Horizontal-ExampleSurfaceShader-Cube.mat b/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Lights/DMX/VRSL-Horizontal-ExampleSurfaceShader-Cube.mat index d28dcc3..107d457 100644 --- a/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Lights/DMX/VRSL-Horizontal-ExampleSurfaceShader-Cube.mat +++ b/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Lights/DMX/VRSL-Horizontal-ExampleSurfaceShader-Cube.mat @@ -9,7 +9,7 @@ Material: m_PrefabAsset: {fileID: 0} m_Name: VRSL-Horizontal-ExampleSurfaceShader-Cube m_Shader: {fileID: 4800000, guid: f23016ddcd834d84c92028d893fd6558, type: 3} - m_ShaderKeywords: _ENABLEOSC_ON _ENABLESTROBE_ON + m_ShaderKeywords: _5CH_MODE _ENABLEOSC_ON _ENABLESTROBE_ON m_LightmapFlags: 4 m_EnableInstancingVariants: 1 m_DoubleSidedGI: 0 @@ -81,6 +81,7 @@ Material: m_Offset: {x: 0, y: 0} m_Floats: - _BumpScale: 1 + - _ChannelMode: 2 - _CurveMod: 1 - _Cutoff: 0.5 - _DMXChannel: 0 diff --git a/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Lights/DMX/VRSL-Legacy-ExampleSurfaceShader-Cube.mat b/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Lights/DMX/VRSL-Legacy-ExampleSurfaceShader-Cube.mat index 2ccbddb..6a6d84a 100644 --- a/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Lights/DMX/VRSL-Legacy-ExampleSurfaceShader-Cube.mat +++ b/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Lights/DMX/VRSL-Legacy-ExampleSurfaceShader-Cube.mat @@ -9,7 +9,7 @@ Material: m_PrefabAsset: {fileID: 0} m_Name: VRSL-Legacy-ExampleSurfaceShader-Cube m_Shader: {fileID: 4800000, guid: f23016ddcd834d84c92028d893fd6558, type: 3} - m_ShaderKeywords: _ENABLEOSC_ON _ENABLESTROBE_ON _ENABLEVERTICALMODE_ON + m_ShaderKeywords: _5CH_MODE _ENABLEOSC_ON _ENABLESTROBE_ON _ENABLEVERTICALMODE_ON m_LightmapFlags: 4 m_EnableInstancingVariants: 1 m_DoubleSidedGI: 0 @@ -81,12 +81,14 @@ Material: m_Offset: {x: 0, y: 0} m_Floats: - _BumpScale: 1 + - _ChannelMode: 2 - _CurveMod: 1 - _Cutoff: 0.5 - _DMXChannel: 0 - _DetailNormalMapScale: 1 - _DstBlend: 0 - _EnableCompatibilityMode: 0 + - _EnableDMX: 0 - _EnableOSC: 1 - _EnableSpin: 0 - _EnableStrobe: 1 @@ -99,6 +101,7 @@ Material: - _GlossyReflections: 1 - _Metallic: 0 - _Mode: 0 + - _NineUniverseMode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 - _Saturation: 0.95 diff --git a/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Other/VRSL-VideoScreen.mat b/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Other/VRSL-VideoScreen.mat index ae5fdb1..274b884 100644 --- a/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Other/VRSL-VideoScreen.mat +++ b/Packages/com.acchosen.vr-stage-lighting/Runtime/Materials/Other/VRSL-VideoScreen.mat @@ -36,7 +36,7 @@ Material: m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} - _EmissionMap: - m_Texture: {fileID: 2800000, guid: e5b174a8d905de44d938cdd3adf85546, type: 3} + m_Texture: {fileID: 0} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} - _MainTex: diff --git a/Packages/com.acchosen.vr-stage-lighting/Runtime/Meshes/HQ Meshes/MoverLight-WashLight-HQMesh.fbx b/Packages/com.acchosen.vr-stage-lighting/Runtime/Meshes/HQ Meshes/MoverLight-WashLight-HQMesh.fbx index b783b45a2aaacfb7ec227a63e6036315c7a15101..567f9ebe5a2eecc5dc68e1771c9951d61181fed6 100644 GIT binary patch delta 84321 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 X*}A_21#wK+*=Qd@VcZ}S_Wb_<3j5)* diff --git a/Packages/com.acchosen.vr-stage-lighting/Runtime/Scripts/VRSL_LocalUIControlPanel.asset b/Packages/com.acchosen.vr-stage-lighting/Runtime/Scripts/VRSL_LocalUIControlPanel.asset index a0a0416..4cdd923 100644 --- a/Packages/com.acchosen.vr-stage-lighting/Runtime/Scripts/VRSL_LocalUIControlPanel.asset +++ b/Packages/com.acchosen.vr-stage-lighting/Runtime/Scripts/VRSL_LocalUIControlPanel.asset @@ -44,7 +44,7 @@ MonoBehaviour: Data: - Name: Entry: 12 - Data: 89 + Data: 90 - Name: Entry: 7 Data: @@ -4350,13 +4350,13 @@ MonoBehaviour: Data: - Name: $k Entry: 1 - Data: _volumetricNoise + Data: useDMXGI - Name: $v Entry: 7 Data: 210|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 - Data: _volumetricNoise + Data: useDMXGI - Name: k__BackingField Entry: 9 Data: 24 @@ -4379,18 +4379,73 @@ MonoBehaviour: Entry: 7 Data: 211|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + - Name: + Entry: 12 + Data: 1 + - Name: + Entry: 7 + Data: 212|UnityEngine.HideInInspector, UnityEngine.CoreModule + - Name: + Entry: 8 + Data: + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 7 + Data: + - Name: $k + Entry: 1 + Data: _volumetricNoise + - Name: $v + Entry: 7 + Data: 213|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: _volumetricNoise + - Name: k__BackingField + Entry: 9 + Data: 24 + - Name: k__BackingField + Entry: 9 + Data: 24 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: + Entry: 6 + Data: + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 5 + Data: true + - Name: _fieldAttributes + Entry: 7 + Data: 214|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], + mscorlib - Name: Entry: 12 Data: 2 - Name: Entry: 7 - Data: 212|UdonSharp.FieldChangeCallbackAttribute, UdonSharp.Runtime + Data: 215|UdonSharp.FieldChangeCallbackAttribute, UdonSharp.Runtime - Name: Entry: 8 Data: - Name: Entry: 7 - Data: 213|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 216|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -4414,7 +4469,7 @@ MonoBehaviour: Data: _Udon_DMXGridRenderTexture - Name: $v Entry: 7 - Data: 214|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 217|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: _Udon_DMXGridRenderTexture @@ -4438,7 +4493,7 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 215|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], + Data: 218|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 @@ -4463,7 +4518,7 @@ MonoBehaviour: Data: _Udon_DMXGridRenderTextureMovement - Name: $v Entry: 7 - Data: 216|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 219|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: _Udon_DMXGridRenderTextureMovement @@ -4487,7 +4542,7 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 217|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], + Data: 220|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 @@ -4512,7 +4567,7 @@ MonoBehaviour: Data: _Udon_DMXGridSpinTimer - Name: $v Entry: 7 - Data: 218|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 221|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: _Udon_DMXGridSpinTimer @@ -4536,7 +4591,7 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 219|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], + Data: 222|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 @@ -4561,7 +4616,7 @@ MonoBehaviour: Data: _Udon_DMXGridStrobeTimer - Name: $v Entry: 7 - Data: 220|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 223|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: _Udon_DMXGridStrobeTimer @@ -4585,7 +4640,7 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 221|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], + Data: 224|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 @@ -4610,7 +4665,7 @@ MonoBehaviour: Data: _Udon_DMXGridStrobeOutput - Name: $v Entry: 7 - Data: 222|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 225|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: _Udon_DMXGridStrobeOutput @@ -4634,7 +4689,7 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 223|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], + Data: 226|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 @@ -4659,7 +4714,7 @@ MonoBehaviour: Data: _requireDepthLight - Name: $v Entry: 7 - Data: 224|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 227|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: _requireDepthLight @@ -4683,20 +4738,20 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 225|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], + Data: 228|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 2 - Name: Entry: 7 - Data: 226|UdonSharp.FieldChangeCallbackAttribute, UdonSharp.Runtime + Data: 229|UdonSharp.FieldChangeCallbackAttribute, UdonSharp.Runtime - Name: Entry: 8 Data: - Name: Entry: 7 - Data: 227|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 230|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: diff --git a/Packages/com.acchosen.vr-stage-lighting/Runtime/Scripts/VRSL_LocalUIControlPanel.cs b/Packages/com.acchosen.vr-stage-lighting/Runtime/Scripts/VRSL_LocalUIControlPanel.cs index b10a857..910d82b 100644 --- a/Packages/com.acchosen.vr-stage-lighting/Runtime/Scripts/VRSL_LocalUIControlPanel.cs +++ b/Packages/com.acchosen.vr-stage-lighting/Runtime/Scripts/VRSL_LocalUIControlPanel.cs @@ -133,6 +133,10 @@ public class VRSL_LocalUIControlPanel : UdonSharpBehaviour public bool useLegacyStaticLights = false; public bool useExtendedUniverses = false; + + [HideInInspector] + public bool useDMXGI = false; + [FieldChangeCallback(nameof(VolumetricNoise)), SerializeField] private bool _volumetricNoise = true; int _Udon_DMXGridRenderTexture, _Udon_DMXGridRenderTextureMovement, _Udon_DMXGridSpinTimer, _Udon_DMXGridStrobeTimer, _Udon_DMXGridStrobeOutput; @@ -496,7 +500,8 @@ public void _CheckDepthLightStatus() mat.SetInt("_PotatoMode", _volumetricNoise ? 0 : 1); mat.SetInt("_UseDepthLight", _requireDepthLight ? 1 : 0); SetKeyword(mat, "_USE_DEPTH_LIGHT", (Mathf.FloorToInt(mat.GetInt("_UseDepthLight"))) == 1 ? true : false); - SetKeyword(mat, "_MAGIC_NOISE_ON", (Mathf.FloorToInt(mat.GetInt("_MAGIC_NOISE_ON"))) == 1 ? true : false); + SetKeyword(mat, "_MAGIC_NOISE_ON_MED", (Mathf.FloorToInt(mat.GetInt("_MAGIC_NOISE_ON_MED"))) == 1 ? true : false); + SetKeyword(mat, "_MAGIC_NOISE_ON_HIGH", (Mathf.FloorToInt(mat.GetInt("_MAGIC_NOISE_ON_HIGH"))) == 1 ? true : false); SetKeyword(mat, "_POTATO_MODE_ON", (Mathf.FloorToInt(mat.GetInt("_PotatoMode"))) == 1 ? true : false); } foreach(Material mat in projectionMaterials) @@ -826,7 +831,8 @@ void SetVolumetricQuality() target.SetInt("_AlphaToCoverage", 0); target.SetInt("_HQMode", 1); target.SetInt("_RenderMode", 0); - SetKeyword(target, "_MAGIC_NOISE_ON", (Mathf.FloorToInt(target.GetInt("_MAGIC_NOISE_ON"))) == 1 ? true : false); + SetKeyword(target, "_MAGIC_NOISE_ON_MED", (Mathf.FloorToInt(target.GetInt("_MAGIC_NOISE_ON_MED"))) == 1 ? true : false); + SetKeyword(target, "_MAGIC_NOISE_ON_HIGH", (Mathf.FloorToInt(target.GetInt("_MAGIC_NOISE_ON_HIGH"))) == 1 ? true : false); SetKeyword(target, "_USE_DEPTH_LIGHT", (Mathf.FloorToInt(target.GetInt("_UseDepthLight"))) == 1 ? true : false); SetKeyword(target, "_POTATO_MODE_ON", (Mathf.FloorToInt(target.GetInt("_PotatoMode"))) == 1 ? true : false); SetKeyword(target, "_HQ_MODE", (Mathf.FloorToInt(target.GetInt("_HQMode"))) == 1 ? true : false); @@ -843,7 +849,8 @@ void SetVolumetricQuality() target.SetInt("_AlphaToCoverage", 0); target.SetInt("_HQMode", 0); target.SetInt("_RenderMode", 1); - SetKeyword(target, "_MAGIC_NOISE_ON", (Mathf.FloorToInt(target.GetInt("_MAGIC_NOISE_ON"))) == 1 ? true : false); + SetKeyword(target, "_MAGIC_NOISE_ON_MED", (Mathf.FloorToInt(target.GetInt("_MAGIC_NOISE_ON_MED"))) == 1 ? true : false); + SetKeyword(target, "_MAGIC_NOISE_ON_HIGH", (Mathf.FloorToInt(target.GetInt("_MAGIC_NOISE_ON_HIGH"))) == 1 ? true : false); SetKeyword(target, "_USE_DEPTH_LIGHT", (Mathf.FloorToInt(target.GetInt("_UseDepthLight"))) == 1 ? true : false); SetKeyword(target, "_POTATO_MODE_ON", (Mathf.FloorToInt(target.GetInt("_PotatoMode"))) == 1 ? true : false); SetKeyword(target, "_HQ_MODE", (Mathf.FloorToInt(target.GetInt("_HQMode"))) == 1 ? true : false); @@ -860,7 +867,8 @@ void SetVolumetricQuality() target.SetInt("_AlphaToCoverage", 1); target.SetInt("_HQMode", 0); target.SetInt("_RenderMode", 2); - SetKeyword(target, "_MAGIC_NOISE_ON", (Mathf.FloorToInt(target.GetInt("_MAGIC_NOISE_ON"))) == 1 ? true : false); + SetKeyword(target, "_MAGIC_NOISE_ON_MED", (Mathf.FloorToInt(target.GetInt("_MAGIC_NOISE_ON_MED"))) == 1 ? true : false); + SetKeyword(target, "_MAGIC_NOISE_ON_HIGH", (Mathf.FloorToInt(target.GetInt("_MAGIC_NOISE_ON_HIGH"))) == 1 ? true : false); SetKeyword(target, "_USE_DEPTH_LIGHT", (Mathf.FloorToInt(target.GetInt("_UseDepthLight"))) == 1 ? true : false); SetKeyword(target, "_POTATO_MODE_ON", (Mathf.FloorToInt(target.GetInt("_PotatoMode"))) == 1 ? true : false); SetKeyword(target, "_HQ_MODE", (Mathf.FloorToInt(target.GetInt("_HQMode"))) == 1 ? true : false); diff --git a/Packages/com.acchosen.vr-stage-lighting/Runtime/Scripts/VRStageLighting_DMX_Static.cs b/Packages/com.acchosen.vr-stage-lighting/Runtime/Scripts/VRStageLighting_DMX_Static.cs index c518bf1..99f6b18 100644 --- a/Packages/com.acchosen.vr-stage-lighting/Runtime/Scripts/VRStageLighting_DMX_Static.cs +++ b/Packages/com.acchosen.vr-stage-lighting/Runtime/Scripts/VRStageLighting_DMX_Static.cs @@ -268,6 +268,7 @@ public void _UpdateInstancedProperties() props.SetFloat("_FixtureRotationX", tiltOffsetBlue); props.SetFloat("_FixtureBaseRotationY", panOffsetBlueGreen); props.SetColor("_Emission", lightColorTint); + props.SetColor("_EmissionDMX", lightColorTint); props.SetFloat("_ConeWidth", coneWidth); props.SetFloat("_GlobalIntensity", globalIntensity); props.SetFloat("_FinalIntensity", finalIntensity); @@ -318,7 +319,7 @@ public void _UpdateInstancedProperties() objRenderers[4].SetPropertyBlock(props); break; default: - Debug.Log("Too many mesh renderers for this fixture!"); + Debug.Log("Too many mesh renderers for this fixture! " + objRenderers.Length); break; } } @@ -365,6 +366,7 @@ public void _UpdateInstancedPropertiesSansDMX() props.SetFloat("_FixtureRotationX", tiltOffsetBlue); props.SetFloat("_FixtureBaseRotationY", panOffsetBlueGreen); props.SetColor("_Emission", lightColorTint); + props.SetColor("_EmissionDMX", lightColorTint); props.SetFloat("_ConeWidth", coneWidth); props.SetFloat("_GlobalIntensity", globalIntensity); props.SetFloat("_FinalIntensity", finalIntensity); @@ -415,7 +417,7 @@ public void _UpdateInstancedPropertiesSansDMX() objRenderers[4].SetPropertyBlock(props); break; default: - Debug.Log("Too many mesh renderers for this fixture!"); + Debug.Log("Too many mesh renderers for this fixture! " + objRenderers.Length); break; } } diff --git a/Packages/com.acchosen.vr-stage-lighting/Runtime/Shaders/AudioLink/Discoball/VRSL-AudioLink-Discoball.shader b/Packages/com.acchosen.vr-stage-lighting/Runtime/Shaders/AudioLink/Discoball/VRSL-AudioLink-Discoball.shader index 64268f0..524e9fd 100644 --- a/Packages/com.acchosen.vr-stage-lighting/Runtime/Shaders/AudioLink/Discoball/VRSL-AudioLink-Discoball.shader +++ b/Packages/com.acchosen.vr-stage-lighting/Runtime/Shaders/AudioLink/Discoball/VRSL-AudioLink-Discoball.shader @@ -153,7 +153,7 @@ 4.0 / 17.0, 12.0 / 17.0, 2.0 / 17.0, 10.0 / 17.0, 16.0 / 17.0, 8.0 / 17.0, 14.0 / 17.0, 6.0 / 17.0 }; - int index = (int(pos.x) % 4) * 4 + int(pos.y) % 4; + int index = (int)((uint(pos.x) % 4) * 4 + uint(pos.y) % 4); #endif float4 depthdirect = i.worldDirection * (1.0f / i.vertex.w); float sceneZ = SAMPLE_DEPTH_TEXTURE(_CameraDepthTexture, i.screenPos.xy / i.screenPos.w); diff --git a/Packages/com.acchosen.vr-stage-lighting/Runtime/Shaders/AudioLink/MovingLights/VRSL-AudioLink-StandardMover-VolumetricMesh.shader b/Packages/com.acchosen.vr-stage-lighting/Runtime/Shaders/AudioLink/MovingLights/VRSL-AudioLink-StandardMover-VolumetricMesh.shader index c8962df..e5e9056 100644 --- a/Packages/com.acchosen.vr-stage-lighting/Runtime/Shaders/AudioLink/MovingLights/VRSL-AudioLink-StandardMover-VolumetricMesh.shader +++ b/Packages/com.acchosen.vr-stage-lighting/Runtime/Shaders/AudioLink/MovingLights/VRSL-AudioLink-StandardMover-VolumetricMesh.shader @@ -59,9 +59,11 @@ //[Header(VOLUMETRIC LIGHTING CONTROLS)] _LightMainTex ("Light Texture", 2D) = "white" {} _NoiseTex ("NoiseTex", 2D) = "white" {} + _NoiseTexHigh ("NoiseTexHigh", 2D) = "white" {} _NoisePower("Noise Strength", Range(0, 1)) = 1 _NoiseSeed ("Noise Seed", float) = 0 - [Toggle]_MAGIC_NOISE_ON ("Toggle Magic Noise", Int) = 1 + [Toggle]_MAGIC_NOISE_ON_HIGH ("Toggle Magic Noise", Int) = 1 + [Toggle]_MAGIC_NOISE_ON_MED ("Toggle Magic Noise", Int) = 1 [Toggle]_2D_NOISE_ON ("Toggle 2D Noise", Int) = 1 @@ -165,7 +167,8 @@ #pragma vertex vert #pragma fragment frag //#pragma multi_compile_fog - #pragma multi_compile_local _ _MAGIC_NOISE_ON + #pragma multi_compile_local _ _MAGIC_NOISE_ON_HIGH + #pragma multi_compile_local _ _MAGIC_NOISE_ON_MED #pragma multi_compile_local _ _USE_DEPTH_LIGHT #pragma multi_compile_local _ _POTATO_MODE_ON #pragma multi_compile_local _ _HQ_MODE diff --git a/Packages/com.acchosen.vr-stage-lighting/Runtime/Shaders/AudioLink/MovingLights/VRSL-AudioLink-WashMover-FixtureMesh.shader b/Packages/com.acchosen.vr-stage-lighting/Runtime/Shaders/AudioLink/MovingLights/VRSL-AudioLink-WashMover-FixtureMesh.shader index 486a2f5..defe958 100644 --- a/Packages/com.acchosen.vr-stage-lighting/Runtime/Shaders/AudioLink/MovingLights/VRSL-AudioLink-WashMover-FixtureMesh.shader +++ b/Packages/com.acchosen.vr-stage-lighting/Runtime/Shaders/AudioLink/MovingLights/VRSL-AudioLink-WashMover-FixtureMesh.shader @@ -177,11 +177,11 @@ #else float3 objPos : TEXCOORD7; float3 objNormal : TEXCOORD8; - //SHADOW_COORDS(11) + SHADOW_COORDS(11) #endif float4 color : COLOR; UNITY_VERTEX_INPUT_INSTANCE_ID - SHADOW_COORDS(11) + // SHADOW_COORDS(11) UNITY_VERTEX_OUTPUT_STEREO }; diff --git a/Packages/com.acchosen.vr-stage-lighting/Runtime/Shaders/AudioLink/MovingLights/VRSL-AudioLink-WashMover-VolumetricMesh.shader b/Packages/com.acchosen.vr-stage-lighting/Runtime/Shaders/AudioLink/MovingLights/VRSL-AudioLink-WashMover-VolumetricMesh.shader index a9c6f38..ea36901 100644 --- a/Packages/com.acchosen.vr-stage-lighting/Runtime/Shaders/AudioLink/MovingLights/VRSL-AudioLink-WashMover-VolumetricMesh.shader +++ b/Packages/com.acchosen.vr-stage-lighting/Runtime/Shaders/AudioLink/MovingLights/VRSL-AudioLink-WashMover-VolumetricMesh.shader @@ -59,9 +59,11 @@ //[Header(VOLUMETRIC LIGHTING CONTROLS)] _LightMainTex ("Light Texture", 2D) = "white" {} _NoiseTex ("NoiseTex", 2D) = "white" {} + _NoiseTexHigh ("NoiseTexHigh", 2D) = "white" {} _NoisePower("Noise Strength", Range(0, 1)) = 1 _NoiseSeed ("Noise Seed", float) = 0 - [Toggle]_MAGIC_NOISE_ON ("Toggle Magic Noise", Int) = 1 + [Toggle]_MAGIC_NOISE_ON_HIGH ("Toggle Magic Noise", Int) = 1 + [Toggle]_MAGIC_NOISE_ON_MED ("Toggle Magic Noise", Int) = 1 [Toggle]_2D_NOISE_ON ("Toggle 2D Noise", Int) = 1 @@ -165,7 +167,8 @@ #pragma vertex vert #pragma fragment frag //#pragma multi_compile_fog - #pragma multi_compile_local _ _MAGIC_NOISE_ON + #pragma multi_compile_local _ _MAGIC_NOISE_ON_HIGH + #pragma multi_compile_local _ _MAGIC_NOISE_ON_MED #pragma multi_compile_local _ _USE_DEPTH_LIGHT #pragma multi_compile_local _ _POTATO_MODE_ON #pragma multi_compile_local _ _HQ_MODE diff --git a/Packages/com.acchosen.vr-stage-lighting/Runtime/Shaders/CRTShaders/DMXRTShader-StrobeTimings.shader b/Packages/com.acchosen.vr-stage-lighting/Runtime/Shaders/CRTShaders/DMXRTShader-StrobeTimings.shader index bf46861..f6b8001 100644 --- a/Packages/com.acchosen.vr-stage-lighting/Runtime/Shaders/CRTShaders/DMXRTShader-StrobeTimings.shader +++ b/Packages/com.acchosen.vr-stage-lighting/Runtime/Shaders/CRTShaders/DMXRTShader-StrobeTimings.shader @@ -4,8 +4,12 @@ Properties { [NoScaleOffset]_DMXTexture("DMX Grid Render Texture (To Control Lights)", 2D) = "white" {} - _MaxStrobeFreq("Maximum Strobe Frequency", Range(1,100)) = 25 + _MaxStrobeFreq("Maximum Strobe Frequency", Range(1,1000)) = 25 [Toggle] _NineUniverseMode ("Extended Universe Mode", Int) = 0 + [Enum(Dyanmic Strobe Rate,0,Static Strobe Rate,1)] _StrobeType ("Strobe Type", Int) = 0 + _LowFrequency("Low Frequency", Range(1,100)) = 25 + _MedFrequency("Medium Frequency", Range(1,100)) = 50 + _HighFrequency("High Frequency", Range(1,100)) = 75 } SubShader @@ -30,6 +34,9 @@ SamplerState sampler_point_repeat; half _MaxStrobeFreq; uint _NineUniverseMode; + half _LowFrequency, _MedFrequency, _HighFrequency; + + #pragma shader_feature_local _VRSL_STATICFREQUENCIES @@ -76,37 +83,58 @@ //T = CURRENT PHASE if(_NineUniverseMode) { - float3 t = float3(previousFrame.r, previousFrame.g, previousFrame.b); - //INCREMENT CURRENT PHASE CLOSER TO 2PI - t = t + (float3(dt, dt, dt) * (GetDMXValueRGB(currentFrame) * float3(_MaxStrobeFreq, _MaxStrobeFreq, _MaxStrobeFreq))); - - //IF PHASE IS GREATER THAN OR EQUAL TO 2PI, RETURN TO 0, CAUSE SIN(2PI) == SIN(0) - // if (t >= 2*3.14159265) - // { - // t -= 2*3.14159265; - // } - t.r -= t.r >= 2*3.14159265 ? 2*3.14159265 : 0.0; - t.g -= t.g >= 2*3.14159265 ? 2*3.14159265 : 0.0; - t.b -= t.b >= 2*3.14159265 ? 2*3.14159265 : 0.0; - - t = float3(clamp(t.r, 0.0, 1000000.0), clamp(t.g, 0.0, 1000000.0), clamp(t.b, 0.0, 1000000.0)); - //EZ CLAP - return float4(t, currentFrame.a); + #if _VRSL_STATICFREQUENCIES + + float3 t = float3(currentFrame.r, currentFrame.g, currentFrame.b); + float sinTime = sin(_Time.y); + float speed = (sinTime) * _LowFrequency; + t *= (GetDMXValueRGB(currentFrame) * float3(speed, speed, speed)); + return float4(t, currentFrame.a); + #else + float3 t = float3(previousFrame.r, previousFrame.g, previousFrame.b); + //INCREMENT CURRENT PHASE CLOSER TO 2PI + t = t + (float3(dt, dt, dt) * (GetDMXValueRGB(currentFrame) * float3(_MaxStrobeFreq, _MaxStrobeFreq, _MaxStrobeFreq))); + + //IF PHASE IS GREATER THAN OR EQUAL TO 2PI, RETURN TO 0, CAUSE SIN(2PI) == SIN(0) + // if (t >= 2*3.14159265) + // { + // t -= 2*3.14159265; + // } + t.r -= t.r >= 2*3.14159265 ? 2*3.14159265 : 0.0; + t.g -= t.g >= 2*3.14159265 ? 2*3.14159265 : 0.0; + t.b -= t.b >= 2*3.14159265 ? 2*3.14159265 : 0.0; + + t = float3(clamp(t.r, 0.0, 1000000.0), clamp(t.g, 0.0, 1000000.0), clamp(t.b, 0.0, 1000000.0)); + //EZ CLAP + return float4(t, currentFrame.a); + #endif } else { - float t = previousFrame.r; - //INCREMENT CURRENT PHASE CLOSER TO 2PI - t = t + (dt * (GetDMXValue(currentFrame) * _MaxStrobeFreq)); - - //IF PHASE IS GREATER THAN OR EQUAL TO 2PI, RETURN TO 0, CAUSE SIN(2PI) == SIN(0) - // if (t >= 2*3.14159265) - // { - // t -= 2*3.14159265; - // } - t -= t >= 2*3.14159265 ? 2*3.14159265 : 0.0; - //EZ CLAP - return clamp(t, 0.0, 1000000.0); + #if _VRSL_STATICFREQUENCIES + float dmx = currentFrame.r; + float sinTime = _Time.y; + //sinTime -= sinTime >= 2*3.14159265 ? 2*3.14159265 : 0.0; + + float speed = dmx > 0.2 ? _MedFrequency : _LowFrequency; + speed = dmx > 0.5 ? _HighFrequency : speed; + float t =((sinTime) * speed); + + return clamp(t, 0.0, 1000000.0); + #else + float t = previousFrame.r; + //INCREMENT CURRENT PHASE CLOSER TO 2PI + t = t + (dt * (GetDMXValue(currentFrame) * _MaxStrobeFreq)); + + //IF PHASE IS GREATER THAN OR EQUAL TO 2PI, RETURN TO 0, CAUSE SIN(2PI) == SIN(0) + // if (t >= 2*3.14159265) + // { + // t -= 2*3.14159265; + // } + t -= t >= 2*3.14159265 ? 2*3.14159265 : 0.0; + //EZ CLAP + return clamp(t, 0.0, 1000000.0); + #endif } } diff --git a/Packages/com.acchosen.vr-stage-lighting/Runtime/Shaders/Discoball/VRSL-Discoball.shader b/Packages/com.acchosen.vr-stage-lighting/Runtime/Shaders/Discoball/VRSL-Discoball.shader index 0e2994a..9f95231 100644 --- a/Packages/com.acchosen.vr-stage-lighting/Runtime/Shaders/Discoball/VRSL-Discoball.shader +++ b/Packages/com.acchosen.vr-stage-lighting/Runtime/Shaders/Discoball/VRSL-Discoball.shader @@ -151,7 +151,7 @@ 4.0 / 17.0, 12.0 / 17.0, 2.0 / 17.0, 10.0 / 17.0, 16.0 / 17.0, 8.0 / 17.0, 14.0 / 17.0, 6.0 / 17.0 }; - int index = (int(pos.x) % 4) * 4 + int(pos.y) % 4; + int index = (int)((uint(pos.x) % 4) * 4 + uint(pos.y) % 4); #endif float4 depthdirect = i.worldDirection * (1.0f / i.vertex.w); float sceneZ = SAMPLE_DEPTH_TEXTURE(_CameraDepthTexture, i.screenPos.xy / i.screenPos.w); diff --git a/Packages/com.acchosen.vr-stage-lighting/Runtime/Shaders/MovingLights/VRSL-StandardMover-ProjectionFrag.cginc b/Packages/com.acchosen.vr-stage-lighting/Runtime/Shaders/MovingLights/VRSL-StandardMover-ProjectionFrag.cginc index 0fb04f6..44a42b2 100644 --- a/Packages/com.acchosen.vr-stage-lighting/Runtime/Shaders/MovingLights/VRSL-StandardMover-ProjectionFrag.cginc +++ b/Packages/com.acchosen.vr-stage-lighting/Runtime/Shaders/MovingLights/VRSL-StandardMover-ProjectionFrag.cginc @@ -202,7 +202,7 @@ inline float CorrectedLinearEyeDepth(float z, float B) 4.0 / 17.0, 12.0 / 17.0, 2.0 / 17.0, 10.0 / 17.0, 16.0 / 17.0, 8.0 / 17.0, 14.0 / 17.0, 6.0 / 17.0 }; - int index = (int(pos.x) % 4) * 4 + int(pos.y) % 4; + int index = (int)((uint(pos.x) % 4) * 4 + uint(pos.y) % 4); #endif diff --git a/Packages/com.acchosen.vr-stage-lighting/Runtime/Shaders/MovingLights/VRSL-StandardMover-Vertex.cginc b/Packages/com.acchosen.vr-stage-lighting/Runtime/Shaders/MovingLights/VRSL-StandardMover-Vertex.cginc index 0a242d4..3a98aaf 100644 --- a/Packages/com.acchosen.vr-stage-lighting/Runtime/Shaders/MovingLights/VRSL-StandardMover-Vertex.cginc +++ b/Packages/com.acchosen.vr-stage-lighting/Runtime/Shaders/MovingLights/VRSL-StandardMover-Vertex.cginc @@ -497,7 +497,11 @@ v2f vert (appdata v) // o.viewDir = ObjSpaceViewDir(v.vertex); o.screenPos = ComputeScreenPos (o.pos); //o.uvClone = v.uv2; - o.uv2 = TRANSFORM_TEX(v.uv2, _NoiseTex); + #ifdef _HQ_MODE + o.uv2 = TRANSFORM_TEX(v.uv2, _NoiseTexHigh); + #else + o.uv2 = TRANSFORM_TEX(v.uv2, _NoiseTex); + #endif o.uv = TRANSFORM_TEX(v.uv, _LightMainTex); //o.uv = UnityStereoScreenSpaceUVAdjust(uv, sb) COMPUTE_EYEDEPTH(o.screenPos.z); @@ -718,7 +722,11 @@ v2f vert (appdata v) o.screenPos = float4(0,0,0,0); #endif o.uvClone = v.uv2; - o.uv2 = TRANSFORM_TEX(v.uv2, _NoiseTex); + #ifdef _HQ_MODE + o.uv2 = TRANSFORM_TEX(v.uv2, _NoiseTexHigh); + #else + o.uv2 = TRANSFORM_TEX(v.uv2, _NoiseTex); + #endif o.uv = TRANSFORM_TEX(v.uv, _LightMainTex); //o.uv = UnityStereoScreenSpaceUVAdjust(uv, sb) #if _USE_DEPTH_LIGHT diff --git a/Packages/com.acchosen.vr-stage-lighting/Runtime/Shaders/MovingLights/VRSL-StandardMover-VolumetricFrag.cginc b/Packages/com.acchosen.vr-stage-lighting/Runtime/Shaders/MovingLights/VRSL-StandardMover-VolumetricFrag.cginc index 5aac978..b736570 100644 --- a/Packages/com.acchosen.vr-stage-lighting/Runtime/Shaders/MovingLights/VRSL-StandardMover-VolumetricFrag.cginc +++ b/Packages/com.acchosen.vr-stage-lighting/Runtime/Shaders/MovingLights/VRSL-StandardMover-VolumetricFrag.cginc @@ -85,7 +85,7 @@ float4 VolumetricLightingBRDF(v2f i, fixed facePos) 4.0 / 17.0, 12.0 / 17.0, 2.0 / 17.0, 10.0 / 17.0, 16.0 / 17.0, 8.0 / 17.0, 14.0 / 17.0, 6.0 / 17.0 }; - int index = (int(pos.x) % 4) * 4 + int(pos.y) % 4; + int index = (int)((uint(pos.x) % 4) * 4 + uint(pos.y) % 4); #endif @@ -262,7 +262,11 @@ float4 VolumetricLightingBRDF(v2f i, fixed facePos) texUV.x = (_Time.y*0.1) * 0.75f + texUV.x; texUV.y = (_Time.y*0.1) * 0.10f + texUV.y; - float4 tex = tex2D(_NoiseTex, texUV); + #ifdef _HQ_MODE + float4 tex = tex2D(_NoiseTexHigh, texUV); + #else + float4 tex = tex2D(_NoiseTex, texUV); + #endif #else float4 tex = float4(1,1,1,1); #endif @@ -272,7 +276,7 @@ float4 VolumetricLightingBRDF(v2f i, fixed facePos) half np = 0.0f; //If we are using 3D noise... - #ifdef _MAGIC_NOISE_ON + #if (defined(_MAGIC_NOISE_ON_HIGH) && defined(_HQ_MODE)) || (defined(_MAGIC_NOISE_ON_MED) && !defined(_HQ_MODE)) //if(_ToggleMagicNoise > 0) //{ //Get vertex/frag position in worldspace diff --git a/Packages/com.acchosen.vr-stage-lighting/Runtime/Shaders/MovingLights/VRSL-StandardMover-VolumetricMesh.shader b/Packages/com.acchosen.vr-stage-lighting/Runtime/Shaders/MovingLights/VRSL-StandardMover-VolumetricMesh.shader index 0a01c31..d938b7a 100644 --- a/Packages/com.acchosen.vr-stage-lighting/Runtime/Shaders/MovingLights/VRSL-StandardMover-VolumetricMesh.shader +++ b/Packages/com.acchosen.vr-stage-lighting/Runtime/Shaders/MovingLights/VRSL-StandardMover-VolumetricMesh.shader @@ -61,9 +61,11 @@ //[Header(VOLUMETRIC LIGHTING CONTROLS)] _LightMainTex ("Light Texture", 2D) = "white" {} _NoiseTex ("NoiseTex", 2D) = "white" {} + _NoiseTexHigh ("NoiseTexHigh", 2D) = "white" {} _NoisePower("Noise Strength", Range(0, 1)) = 1 _NoiseSeed ("Noise Seed", float) = 0 - [Toggle]_MAGIC_NOISE_ON ("Toggle Magic Noise", Int) = 1 + [Toggle]_MAGIC_NOISE_ON_HIGH ("Toggle Magic Noise", Int) = 1 + [Toggle]_MAGIC_NOISE_ON_MED ("Toggle Magic Noise", Int) = 1 [Toggle]_2D_NOISE_ON ("Toggle 2D Noise", Int) = 1 @@ -164,7 +166,8 @@ //#pragma multi_compile_fog #pragma multi_compile_instancing #pragma instancing_options assumeuniformscaling - #pragma multi_compile_local _ _MAGIC_NOISE_ON + #pragma multi_compile_local _ _MAGIC_NOISE_ON_HIGH + #pragma multi_compile_local _ _MAGIC_NOISE_ON_MED #pragma multi_compile_local _ _USE_DEPTH_LIGHT #pragma multi_compile_local _ _POTATO_MODE_ON #pragma multi_compile_local _ _HQ_MODE diff --git a/Packages/com.acchosen.vr-stage-lighting/Runtime/Shaders/MovingLights/VRSL-WashMover-VolumetricMesh.shader b/Packages/com.acchosen.vr-stage-lighting/Runtime/Shaders/MovingLights/VRSL-WashMover-VolumetricMesh.shader index fa3e92e..324638e 100644 --- a/Packages/com.acchosen.vr-stage-lighting/Runtime/Shaders/MovingLights/VRSL-WashMover-VolumetricMesh.shader +++ b/Packages/com.acchosen.vr-stage-lighting/Runtime/Shaders/MovingLights/VRSL-WashMover-VolumetricMesh.shader @@ -59,9 +59,11 @@ //[Header(VOLUMETRIC LIGHTING CONTROLS)] _LightMainTex ("Light Texture", 2D) = "white" {} _NoiseTex ("NoiseTex", 2D) = "white" {} + _NoiseTexHigh ("NoiseTexHigh", 2D) = "white" {} _NoisePower("Noise Strength", Range(0, 1)) = 1 _NoiseSeed ("Noise Seed", float) = 0 - [ToggleUI]_MAGIC_NOISE_ON ("Toggle Magic Noise", Int) = 1 + [Toggle]_MAGIC_NOISE_ON_HIGH ("Toggle Magic Noise", Int) = 1 + [Toggle]_MAGIC_NOISE_ON_MED ("Toggle Magic Noise", Int) = 1 [Toggle]_2D_NOISE_ON ("Toggle 2D Noise", Int) = 1 _Noise2Stretch ("Outside Magic Noise Scale", Range(-10, 10)) = 1 _Noise2StretchInside ("Inside Magic Noise Scale", Range(-10, 10)) = 1 @@ -162,7 +164,8 @@ //#pragma multi_compile_fog #pragma multi_compile_instancing #pragma instancing_options assumeuniformscaling - #pragma multi_compile_local _ _MAGIC_NOISE_ON + #pragma multi_compile_local _ _MAGIC_NOISE_ON_HIGH + #pragma multi_compile_local _ _MAGIC_NOISE_ON_MED #pragma multi_compile_local _ _USE_DEPTH_LIGHT #pragma multi_compile_local _ _POTATO_MODE_ON #pragma multi_compile_local _ _HQ_MODE diff --git a/Packages/com.acchosen.vr-stage-lighting/Runtime/Shaders/Shared/VRSL-DMXFunctions.cginc b/Packages/com.acchosen.vr-stage-lighting/Runtime/Shaders/Shared/VRSL-DMXFunctions.cginc index 2a6f5a1..6247fa3 100644 --- a/Packages/com.acchosen.vr-stage-lighting/Runtime/Shaders/Shared/VRSL-DMXFunctions.cginc +++ b/Packages/com.acchosen.vr-stage-lighting/Runtime/Shaders/Shared/VRSL-DMXFunctions.cginc @@ -292,6 +292,11 @@ float GetDMXIntensity(uint DMXChannel, float multiplier) return getValueAtCoords(DMXChannel + 5, _Udon_DMXGridRenderTexture) * multiplier; } +float GetDMXChannel(uint DMXChannel) +{ + return getValueAtCoords(DMXChannel, _Udon_DMXGridRenderTexture); +} + //function for getting the Pan Value (Channel 2) float GetFinePanValue(uint DMXChannel) { diff --git a/Packages/com.acchosen.vr-stage-lighting/Runtime/Shaders/Shared/VRSL-Defines.cginc b/Packages/com.acchosen.vr-stage-lighting/Runtime/Shaders/Shared/VRSL-Defines.cginc index 71f8f8b..1b579e9 100644 --- a/Packages/com.acchosen.vr-stage-lighting/Runtime/Shaders/Shared/VRSL-Defines.cginc +++ b/Packages/com.acchosen.vr-stage-lighting/Runtime/Shaders/Shared/VRSL-Defines.cginc @@ -64,7 +64,13 @@ float _MinimumBeamRadius; #if defined(VOLUMETRIC_YES) - sampler2D _NoiseTex; + + #ifdef _HQ_MODE + sampler2D _NoiseTexHigh; + #else + sampler2D _NoiseTex; + #endif + float _Noise2StretchInside; float _Noise2Stretch; float _Noise2X; @@ -88,7 +94,13 @@ float _MinimumBeamRadius; #endif -float4 _NoiseTex_ST; + + #ifdef _HQ_MODE + float4 _NoiseTexHigh_ST; + #else + float4 _NoiseTex_ST; + #endif + float _NoisePower, _NoiseSeed; uint _ToggleMagicNoise; diff --git a/Packages/com.acchosen.vr-stage-lighting/Runtime/Shaders/StaticLights/VRSL-StaticLight-LensFlare.shader b/Packages/com.acchosen.vr-stage-lighting/Runtime/Shaders/StaticLights/VRSL-StaticLight-LensFlare.shader index 99576d7..a3cbaa3 100644 --- a/Packages/com.acchosen.vr-stage-lighting/Runtime/Shaders/StaticLights/VRSL-StaticLight-LensFlare.shader +++ b/Packages/com.acchosen.vr-stage-lighting/Runtime/Shaders/StaticLights/VRSL-StaticLight-LensFlare.shader @@ -195,29 +195,33 @@ UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); //Insert uint dmx = getDMXChannel(); - + float intensity = 0.0f; #if _1CH_MODE half4 e =IF(isDMX() == 1, getValueAtCoords(dmx+1, _Udon_DMXGridRenderTexture) * getEmissionColor(), getEmissionColor()); + intensity = GetDMXChannel(dmx); #elif _4CH_MODE float4 DMXcol = getEmissionColor(); DMXcol *= float4(getValueAtCoords(dmx+1, _Udon_DMXGridRenderTexture), getValueAtCoords(dmx+2, _Udon_DMXGridRenderTexture), getValueAtCoords(dmx+3, _Udon_DMXGridRenderTexture), 1); float4 coll = IF(isDMX() == 1, DMXcol, getEmissionColor()); half4 e = coll; + intensity = GetDMXChannel(dmx); #elif _5CH_MODE float strobe = IF(isStrobe() == 1, GetStrobeOutputFiveCH(dmx), 1); float4 DMXcol = getEmissionColor(); DMXcol *= float4(getValueAtCoords(dmx+1, _Udon_DMXGridRenderTexture), getValueAtCoords(dmx+2, _Udon_DMXGridRenderTexture), getValueAtCoords(dmx+3, _Udon_DMXGridRenderTexture), 1); float4 coll = IF(isDMX() == 1, DMXcol, getEmissionColor()); half4 e = coll * strobe; + intensity = GetDMXChannel(dmx); #elif _13CH_MODE float strobe = IF(isStrobe() == 1, GetStrobeOutput(dmx), 1); float4 DMXcol = getEmissionColor(); DMXcol *= GetDMXColor(dmx); float4 coll = IF(isDMX() == 1, DMXcol, getEmissionColor()); half4 e = coll * strobe; + intensity = GetDMXIntensity(dmx, 1.0); #endif - e = IF(isDMX() == 1,lerp(half4(-_CurveMod,-_CurveMod,-_CurveMod,1), e, pow(GetDMXIntensity(dmx, 1.0), 1.0)), e); + e = IF(isDMX() == 1,lerp(half4(-_CurveMod,-_CurveMod,-_CurveMod,1), e, pow(intensity, 1.0)), e); e = clamp(e, half4(0,0,0,1), half4(_FixtureMaxIntensity*2,_FixtureMaxIntensity*2,_FixtureMaxIntensity*2,1)); #ifdef _ALPHATEST_ON @@ -371,7 +375,7 @@ 4.0 / 17.0, 12.0 / 17.0, 2.0 / 17.0, 10.0 / 17.0, 16.0 / 17.0, 8.0 / 17.0, 14.0 / 17.0, 6.0 / 17.0 }; - int index = (int(pos.x) % 4) * 4 + int(pos.y) % 4; + int index = (int)((uint(pos.x) % 4) * 4 + uint(pos.y) % 4); float4 col = saturate(tex2D(_MainTex, i.uv )); // col *= i.maskX; //clip((col.a) - DITHER_THRESHOLDS[index]); diff --git a/Packages/com.acchosen.vr-stage-lighting/Runtime/Shaders/StaticLights/VRSL-StaticLight-ProjectionFrag.cginc b/Packages/com.acchosen.vr-stage-lighting/Runtime/Shaders/StaticLights/VRSL-StaticLight-ProjectionFrag.cginc index 35bc4ec..df90d34 100644 --- a/Packages/com.acchosen.vr-stage-lighting/Runtime/Shaders/StaticLights/VRSL-StaticLight-ProjectionFrag.cginc +++ b/Packages/com.acchosen.vr-stage-lighting/Runtime/Shaders/StaticLights/VRSL-StaticLight-ProjectionFrag.cginc @@ -66,7 +66,7 @@ 4.0 / 17.0, 12.0 / 17.0, 2.0 / 17.0, 10.0 / 17.0, 16.0 / 17.0, 8.0 / 17.0, 14.0 / 17.0, 6.0 / 17.0 }; - int index = (int(pos.x) % 4) * 4 + int(pos.y) % 4; + int index = (int)((uint(pos.x) % 4) * 4 + uint(pos.y) % 4); #endif if(i.color.g != 0) diff --git a/Packages/com.acchosen.vr-stage-lighting/Runtime/Shaders/VRSLDMX.cginc b/Packages/com.acchosen.vr-stage-lighting/Runtime/Shaders/VRSLDMX.cginc index 828c618..279ce3d 100644 --- a/Packages/com.acchosen.vr-stage-lighting/Runtime/Shaders/VRSLDMX.cginc +++ b/Packages/com.acchosen.vr-stage-lighting/Runtime/Shaders/VRSLDMX.cginc @@ -1,18 +1,26 @@ #define IF(a, b, c) lerp(b, c, step((fixed) (a), 0)); UNITY_INSTANCING_BUFFER_START(Props) - UNITY_DEFINE_INSTANCED_PROP(uint, _DMXChannel) UNITY_DEFINE_INSTANCED_PROP(uint, _NineUniverseMode) - UNITY_DEFINE_INSTANCED_PROP(uint, _EnableDMX) UNITY_DEFINE_INSTANCED_PROP(uint, _PanInvert) + UNITY_DEFINE_INSTANCED_PROP(uint, _LegacyGoboRange) UNITY_DEFINE_INSTANCED_PROP(uint, _TiltInvert) + UNITY_DEFINE_INSTANCED_PROP(uint, _EnableStrobe) + UNITY_DEFINE_INSTANCED_PROP(uint, _EnableSpin) + UNITY_DEFINE_INSTANCED_PROP(uint, _EnableDMX) + UNITY_DEFINE_INSTANCED_PROP(uint, _DMXChannel) + UNITY_DEFINE_INSTANCED_PROP(uint, _ProjectionSelection) + UNITY_DEFINE_INSTANCED_PROP(uint, _FixtureRotationX) + UNITY_DEFINE_INSTANCED_PROP(uint, _FixtureBaseRotationY) UNITY_DEFINE_INSTANCED_PROP(float4, _Emission) UNITY_DEFINE_INSTANCED_PROP(float4, _EmissionDMX) + UNITY_DEFINE_INSTANCED_PROP(float, _ConeWidth) UNITY_DEFINE_INSTANCED_PROP(float, _GlobalIntensity) UNITY_DEFINE_INSTANCED_PROP(float, _FinalIntensity) - UNITY_DEFINE_INSTANCED_PROP(uint, _EnableStrobe) - UNITY_DEFINE_INSTANCED_PROP(uint, _FixtureRotationX) - UNITY_DEFINE_INSTANCED_PROP(uint, _FixtureBaseRotationY) - UNITY_DEFINE_INSTANCED_PROP(float, _ConeWidth) + UNITY_DEFINE_INSTANCED_PROP(float, _ConeLength) + UNITY_DEFINE_INSTANCED_PROP(float, _MaxConeLength) + UNITY_DEFINE_INSTANCED_PROP(float, _MaxMinPanAngle) + UNITY_DEFINE_INSTANCED_PROP(float, _MaxMinTiltAngle) + UNITY_INSTANCING_BUFFER_END(Props) #ifdef _VRSL_LEGACY_TEXTURES @@ -29,7 +37,7 @@ UNITY_INSTANCING_BUFFER_END(Props) uint _EnableCompatibilityMode, _EnableVerticalMode; -half _MaxMinTiltAngle, _MaxMinPanAngle; +//half _MaxMinTiltAngle, _MaxMinPanAngle; float VRSL_invLerp(float from, float to, float value) { @@ -61,6 +69,15 @@ float getFinalIntensity() return UNITY_ACCESS_INSTANCED_PROP(Props, _FinalIntensity); } +float getMaxMinPanAngle() +{ + return UNITY_ACCESS_INSTANCED_PROP(Props, _MaxMinPanAngle); +} +float getMaxMinTiltAngle() +{ + return UNITY_ACCESS_INSTANCED_PROP(Props, _MaxMinTiltAngle); +} + uint isStrobe() { return UNITY_ACCESS_INSTANCED_PROP(Props,_EnableStrobe); @@ -76,6 +93,7 @@ uint GetDMXChannel() return (uint) round(UNITY_ACCESS_INSTANCED_PROP(Props, _DMXChannel)); } + int ConvertToRawDMXChannel(int chan, int universe) { return abs(chan + ((universe-1) * 512) + ((universe-1) * 8)); @@ -401,7 +419,7 @@ float GetPanValue(uint DMXChannel) #else float inputValue = ReadDMX(DMXChannel, _Udon_DMXGridRenderTextureMovement); #endif - return ((_MaxMinPanAngle * 2) * (inputValue)) - _MaxMinPanAngle; + return ((getMaxMinPanAngle() * 2) * (inputValue)) - getMaxMinPanAngle(); } float GetTiltValue(uint DMXChannel) @@ -411,5 +429,5 @@ float GetTiltValue(uint DMXChannel) #else float inputValue = ReadDMX(DMXChannel + 2, _Udon_DMXGridRenderTextureMovement); #endif - return ((_MaxMinTiltAngle * 2) * (inputValue)) - _MaxMinTiltAngle; + return ((getMaxMinTiltAngle() * 2) * (inputValue)) - getMaxMinTiltAngle(); } \ No newline at end of file diff --git a/Packages/com.acchosen.vr-stage-lighting/Runtime/Textures/MoverLightTextures/Spotlight/Spotlight-HQMesh_SpotMover-HQ_MetallicSmoothness.png b/Packages/com.acchosen.vr-stage-lighting/Runtime/Textures/MoverLightTextures/Spotlight/Spotlight-HQMesh_SpotMover-HQ_MetallicSmoothness.png index 91596514f59a99df26aac4e9aea842279dc70a21..184fb55c2e278dc2f4b213cf9fbf70f36d8fd3ac 100644 GIT binary patch delta 14626 zcmciJOOKmI902gXAMTex&ZU)#0YBHsc9eS4W~I7aC0k{4WMRCEVuK58?A;589D3*} z>Z#wLQZGGJ>Y<08`)T?WI=ly%!7ww#65Zj?{Qtjs0C88^pMR5H|0@6SOUFOim=~Ac z|YyEit$OfM5w`FrL%+aEtyD!4=(Jvf+IUM?-T5~YQ=L$paVI9qk;0L`Wkr%EN3tqUMR}MOLAn-;z{kkYJS{0xSq1Hj)G>5*ZTrqv^A_e- zy9UzEx}Hg4Gz=nL(_2ej+8f(};{uDpOu~h+S!c`Txnr-*4OqBOzxhfyd%PSg)A3mB z`#lA%gLFg+h4-y`X1Shb>EP^i0RuhLG*m+y45ve2h$qH)Eh_8bP&^rq6!By*)&>wb zxmp|Heymn#I#Sw?YMb^sN^pg>M2?(}VZpLJyuV z0M|Gd&Bm2x#%X485B<8E7y(E=8QI?etLpiTN`<{TemcUm5f9b1*WO-pz@uw;U*KOJ z`FBTDHlJ1;Yhl!;hrMvLC##!d&!vG4};FH%&z^7gMv$A1u>b^kXdv`?eLvk+k4#9=&It!EYa6 z0Vh`s6?>nX2e7$3HQ^)d2DfEj9-hQm#Y=@$Uky9FAm<{N;@oJrkgo~hZbnh~Ed+i8 zlG3k0=|-owSH6L{|MDH`on^DC*FWvm$fs6PuGGNzEhr^cNDz!)?o1s?6mkI`{&9te z&!W`#+ffQWg78@XLiOYnQIb&kC$nEmDZ5Ferq8G(TKQ+rZ%sknJd*R#Zj9}`LN3PU z*HzejcBPKrrjq(4gl+xPy7@*)$zMj#82knbD(2fqeJ)DgM9*TsWhD}E$kF+ugRRxZ zDda?2znMbo^HQq)_7&(85Zd)8%!r^6dc!c4-&mpYIVu(YTT#de)%p{rLske0Fx=dy zQJVXF6@m|u=JO}iB8Mxd!p*N#$b)O>Qz{L8?h4M2kcRWe6{?IKn+hNQm_i<66Q5pb z;fm9)PbIvLYym-iq!(+mppeTk`Lz`$pMz4vZ&gYBGQza}N!h~BvQp@PoYMPE6a*|Z zkNJF*0*ahQe%ne2Vv%F>M}}IjiB-s{lzu~n(&wgB`fouY{`!UU|Nk|g3eEmES1Q+^ zaFM4%AmFyp%%50|bfID@9Q_J~G%$+aKTs)+ea;Hr4-k&)k4H$qc#V7W@@W^WnNO<_ zmWHtY{1uEJBhBWIsZ$*~Iu$PdQH4Cn20nw*z;8t<`Wez-{>36k&ohPGmEEtSu={LE zUB4|Q=jRai_0QGLPI5{XF18r`no3d4&TIM1O6C+bizg;EvF$l~06J~``2t8q#+Ha&#`<#>`e(Or$;}PohCrk;i5IVy!o!?ZU^Z6-N z{@YLpn@_#|g!xcR<(g2cB3!9-vcFjb7W_lSJ^YKro8SLbUcc%5^rrJJJl=!H`|$Vx a9v{NvBY1oak5Az7DLguVz3F^*|L^}a8s`K6 delta 58 zcmZpkY0$kwf5T+1W^U(pZf8ayW&&bnAZ7t#Rv=~rVs;?r0Afxc=GxBf%w2I30Pe>R ArvLx| diff --git a/Packages/com.acchosen.vr-stage-lighting/Runtime/Textures/MoverLightTextures/Washlight/WashLight-Mesh_WashMover-HQ_EmissionMask.png b/Packages/com.acchosen.vr-stage-lighting/Runtime/Textures/MoverLightTextures/Washlight/WashLight-Mesh_WashMover-HQ_EmissionMask.png new file mode 100644 index 0000000000000000000000000000000000000000..c5ac6d7a9bad4b3d71937551fcf27032c2da37ef GIT binary patch literal 43351 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 z zHkMogF=E)Wa{l<#skG7rVNODQJ^za%TY)PSfW)nxAii8pRW9vN@|(T{@gbH3ycd{- z%zX%VyIxOlJs!!jhk_OqHlliUvt}68ieoNe@CX)XA=)sI|F->o%wf(^5I2F3fKi&qieW+O&f)~yw z!;Ir?fHM_CdI)*K?%kWb0xF~Uvn6C@83GcNVjXO3GFnERot)}EegrxMg*xzizuWJL z+QpE7>=U8oB@kAU06G}>jlJpycHFl!?d2lDjr*6Uq+Tjcqc}mh%W0MmTAT&q)b1ox zHSWfPfBF>YTd7si;;H)FiC zVlH`lf-MdtuMvsUO3Va;u*BV{UDwz^g-EZAxe6<2@zT9o^rtZUXu4k(GBEmxB{gTM zfk7?`dajIf;E_Pv1Fr}fFcDI7PuoQbusKjVy=MkKF#Q~~0?|SJh>narBLa*l4wN-0 zv0XPVhv)=VlkBXN#KgoBP~;dFfzB}*6mP>n#lAST-hgup8ygxbSPUWrA^&5FB2>;& zmKwD#LH`fX2T0_j((Jsv81eq_;lnUVv)riYXfyN1n0FdZ8NcfIdisbd^`duAN=zG13(p2eph<3=42DBZOBzJWDPKy zwe^0Trt$!i(oEf9h|3R$aGhPUMqQgMEz14pW`~==20_>N%)+?Jo!i(CJOFw)+UXRs z#7VnJz_wHWoX`s%p*emSwP_eOO-P_>yba{~kbHr}Vrk1hy@lBx2kAL1EESrnQdQOW zFGYl12cSp}Iwo|zfKI@UgpI&|0t)X?34sP1sMLc@1XDv&8<0AuPJu%PO64%FVQ>ex z(d#<2Q)OjlLNyce5n!48WSEH<>TXgJqcx&Y8uBw1QG~zGbuR=&e)>F;-V2f-`-fZM0o$UChdEn?vPOJK72FR; z#nb2X=(Bq1#|{Lg9c!RG+XFEiiiXnC(sFWVlcJHFIM$aSiClrY8k7`(Q(dQmAA~}( zh6ba}3B=i3P|qZP&u7TsV7(xL#t3Zc_fHcF@AU1{%nJYr|l%Sm-)>MqUj6wF%>Th3U-M6=(8fR->82- z8#*!b0QX!1X&U^ z7c^?4KwtopQ%UvXR4S=CMWK)b?<<@_max>g1%gZX*#Hur28BqyZj8)*Abt4qAK##o z2K`07kXY=ST`we#8bTfw`F(A8==;%){iUGAFxWn1E7ho<1*jc#?@}-MWJ^j9SAzI? zs3cZD^3UKaY08xqdEGu^*&j|s1JpQ54XzA!us(!Hu{}^kWHgn54bdCWiyB07C#gqH zJSrZUbJwXhePQA1wTq%x12?Ha;)10v(rHBcF&<9lGxB;*Vajcx7Y0S|Cot@tN7=6P zzQ#0{v%}f7}@~l^5x6W?iyAZDxzG?j>D-ZH|`65cATdM zLPQ#+nmDkH(sK@YB#79mYl3@f+l(iM@!RgCI%F8`-nHxO*|WZb$v%(=l`n~#3Q|2p zH~Q^0py$4WmPuYJ+YL_@Q@Y`m2Q>S6t9;m8Sg~CGT7sDP!CJzEr~Jak>ff}J*Q+F_ zev)|5;WEhR8NosUgg_f5?4&XsOxHFJ`nc+K9%bnDsc}2G1~PhR|A4(Npt<;d{`x6p zo*IY%@UpkhhCbKQ4(I!8XD7IoU{^wE2(}&kGZQ*Z&PCA-rVJ{});qSVK{yBcM61Hh zv!(qc`Tj8*q_jZQb?t_xM39lg87i^Zd$3*OY$HZFE2kL>cAh?h!3?g@x-c_Hr%lkY zSS&Pa$we^=C(tyan|0buQlG+pZ~}!wS(bRhgr4B>mgWASPLD%cbK$~+;$XhON6ik& zx`QCF<47Gon9j1@CqTYnL{!|O9$j*yp7Ib;3^)~`WB|_*co>Za1>kJ1 zam|}Im4?AkopB(+@N-;1ZNOE-E(gyEnsinc>3b_j-a5an@N0P4K&Yb&AQC@Z&T0a^ zrUVoMu!*WGAb7Q2mDY(BcnP0`BC)>X?Jpq({B!|ylO(9u5vWCUNW;sQsH;Lu%mz8= z4uam!X($zJ<&k>^(M>-Q2U$Ke0)lgc%>~*t5ST-UsM84q3WRdV1oFk8y#V~4(F|@R zI}3tTtc_{sQNEH=DrWw6t71PG1ADTxNp&D48m$$tz z+c*c-lM#I8fJgP8Uy43m4Y3N7+Y%BIAUroM^=8UNsjle+4TsV01tjak2P$O{oeJWg z%zcJ}>u`fd8Q%gC7G|HEm7e_5nyiebUhxsN{tDQLSFdMKwvolp%Hb zcAVL&IH|)^6A=-?a28|;b$?^qdWeW20@(Kz}o;&JY z3PrDzo310Pr0H@|$C5vSCIt<`SxwMWv{@&pibDM)Jr9y26r32%YETrOrX07UaBtn? zzTRq1IoBBKQK0QH6exyC{CF29%HPWLB#7v;ce1XxfWIn$|6{l~C`0Fo0Xti3yqbu6C+qz?s64=32vE&{(#`~)&T(BzDe?rA%#B6jpxANbh!=GH zfIJ3?8wPs*N;_^NYV*Wcx0kHDeq^oRjt5Y+W0*L|Q=p+v-(s5hyrR)UNVG|=F@q69 z%Z)=|V4$7dBMUsx0UJ}E8UxN78?o#Tq(Kf!)q4JMWc;?iIh@Kg_$@ph4^o~5Xk1YB z%{6}C#Qc9_b&-tw&5t_p)Id=J9{VfwQ$y^dQOS_b-mOIT&_KpvG$}z~=Ag`&(Sb_a ziSei#wRI4eGRZ?zN>zMAGj!M_<#&<3Is{$`9-~2(!SEbelY(^enw5 ztXJ+eRdtvy_Fm-yNS3{@RFI26F<^kqG!$in{!(||IIUdc2u9%!bZG%iDIgW{@{mtJ z@vFS7tPG-ZVIhMByA+i|_v=0ytVGMGU-;6B|G)fm^4LNIVScmhl0)J>Qf@IJh+eo! z{%MPMKuIqtkw1EL*qHgrtMqh6dqO#hh$H4QKMB^*n21WHezzT8YNb}#=f4h5pp|eh z^{_-=y}0^-IA3AvjcdLewAHI69=6=g&VS z!w>N9-P^sy`Vd{EPf5+?)E{l*+|2I-v*xg(EUT7g<6{bWEOlpTM@3M8r|0Lfr4c7G z=b=yd(xpBWtq0Z4_($Lni20}y>Q?MxQ)v!wzEFl@$5RhLfrI81c`>f8SJ z+mD@CvUAarwq0TF&sNERRCg&I^r>B=i2&bjzqF7DB7gaYzGRFpG%(yV~o`Iu18|1!#MyG)c>PuM~xCl>rKpn+V@f~ND<`q9z zv7TuoOYH~5O#J>;5)h`q%sPKwl1ZBLC65(#m@i%NWwt^FQ$82p_VbD;Jc_Z157^n4 z?t0AMGRvpauVycE?!lPj6OKQi74Wsr&-dS2k{R{8KVg>5CCwcRT6{rXG793OPT3w? zH2I$S66GQ$b;|bV7InH8Ej=msbmRd9usUhxav*{+CnvaPf3#sryP0>N)ENrO=UlyH zYZzr%!Jyb0=$hl<;qfFcjo`QgS5?CeZF-jUQQXUkrOW0%ULZ&vNABx{k zEy_oj*CAfD@Y4#nQXo3(=<512PeV)=3