Skip to content

Releases: REDSIM/VRCLightVolumes

VRC Light Volumes v.3.0.0-dev.4

Pre-release

Choose a tag to compare

@REDSIM REDSIM released this 01 Jul 23:49

Finally, in a year after Light Volumes v.2.0.0 release, a next major Light Volumes update!

It's a dev beta version, so a lot of stuff might be changed before the final release!

New LV v.3.0.0 Documentation Is Here (Work In Progress)

Changes in version v.3.0.0-dev.4:

  • Far Clip Plane for shadows added.
  • Debug Clip Planes toggle added.
  • Always dirty scene bug fix.
  • Material cookie replaced _MainTex with an empty texture - fixed.
  • Lots of LightVolumes.cginc improvements including faster compilation times.
  • Shadow min variance fixed. Separate shadow min variance for Quest and PC builds.
  • Wrong volume sorting bug fixed.
  • Lots of different bugs fixed.
  • SetWeight() method added.
  • Docs updated.

Changes in version v.3.0.0-dev.3:

  • Individual size-aware physically-correct speculars (Old cheaper speculars are also supported)
  • All the example shaders updated (they use new speculars by default)
  • Additive volumes initialization fix
  • Cookies dedupe bug fixed (probably, need more tests)
  • Undo console errors fix
  • Docs updated (still not final, will be much better after full release)
  • Shader code restructured and should be more optimized now
  • Example scenes updated

NOTE: Use new LightVolumeSHSpecular() function to get both SH and Speculars when sampling Light Volumes. Especially recommended for PBR shaders! Note that it's heavier and might not be the best solution for Quest/Mobile shaders.

Changes in version v.3.0.0-dev.2:

  • LightVolumes.cginc restructured for easier custom workflow. You can now use LV_LightVolumeRegularSH(), LV_LightVolumeAdditiveSH(), LV_LightVolumePointSH() as separate features.
  • Normal magnitude in LightVolumesSH() now controls shading hardness for point lights.
  • LightVolumeDebugger now supports LightVolumes v.1.x.x
  • Cookie textures assign correctly supports Undo now
  • Packing strategy fix - Requested by @PiMaker
  • Editor performance improved
  • Baking multiselected lights is now possible
  • Documentation updated

Changes in version v.3.0.0-dev.1:

  • "Baked-realtime" EVSM shadows. Blurred penumbra, contact hardening and low performance cost.
  • Fully realtime EVSM shadows support. Not that performant, but you can rebake shadows in runtime, even every frame if you need.
  • Old volumetric shadowmasks are no longer supported (both in editor and shader)
  • Dramatically optimized Area Light Volumes. Full back compatibility, but slightly different look.
  • Dynamic custom textures array - bakes in runtime when needed
  • Animated RenderTextures, CustomRenderTextures and Materials support for realtime cookie projections and more!
  • Area lights can now emit light based on texture cookies, almost like LTCGI or AreaLit does. Also very fast and performant.
  • Area lights automatically fallback average color for Light Volumes v.2.x.x shaders
  • Point Light Volumes normal masking and shading control
  • Bakery bitmasks support
  • Baking Point Light Volumes into Light Probes support
  • New optimized voxels preview in editor, you can now preview millions of voxels with no lag!
  • New Light Volume Debugger shader that can be integrated in your avatar, currently set up with VRCFury
  • More optimized and advanced Udon scripts
  • Light Volumes v.1.x.x are no more supported
  • LightVolumes.cginc refactored
  • All Udon scripts refactored
  • Example scenes updated
  • Added Force Scene Lighting Toggle by @vard88508 - Overrides brightness limits for shaders like @lilxyzw and @poiyomi for overall bertter avatar look in properly configured scenes
  • Volume post-processors update by @PiMaker (I hope I didn't break any of your work while working on v.3.0.0. Promise to fix it soon if I really did)

Important for shader people:
Now you should pass your World Normal into the LightVolumeSH() function. It will still work even if you'll not do that, but will not mask the lights and shadows properly based on the normals, so it's highly recommended unless you shade something transparent like fog or foliage.

Full usage:
void LightVolumeSH(float3 worldPos, out float3 L0, out float3 L1r, out float3 L1g, out float3 L1b, float3 worldPosOffset = 0, float3 worldNormal = 0)
LightVolumeAdditiveSH(float3 worldPos, out float3 L0, out float3 L1r, out float3 L1g, out float3 L1b, float3 worldPosOffset = 0, float3 worldNormal = 0)
float3 LightVolumeSH_L0(float3 worldPos, float3 worldPosOffset = 0, float3 worldNormal = 0)
loat3 LightVolumeAdditiveSH_L0(float3 worldPos, float3 worldPosOffset = 0, float3 worldNormal = 0)

VRC Light Volumes v.3.0.0-dev.3

Pre-release

Choose a tag to compare

@REDSIM REDSIM released this 30 Jun 02:37

Finally, in a year after Light Volumes v.2.0.0 release, a next major Light Volumes update!

It's a dev beta version, so a lot of stuff might be changed before the final release!

New LV v.3.0.0 Documentation Is Here (Work In Progress)

Changes in version v.3.0.0-dev.3:

  • Individual size-aware physically-correct speculars (Old cheaper speculars are also supported)
  • All the example shaders updated (they use new speculars by default)
  • Additive volumes initialization fix
  • Cookies dedupe bug fixed (probably, need more tests)
  • Undo console errors fix
  • Docs updated (still not final, will be much better after full release)
  • Shader code restructured and should be more optimized now
  • Example scenes updated

NOTE: Use new LightVolumeSHSpecular() function to get both SH and Speculars when sampling Light Volumes. Especially recommended for PBR shaders! Note that it's heavier and might not be the best solution for Quest/Mobile shaders.

Changes in version v.3.0.0-dev.2:

  • LightVolumes.cginc restructured for easier custom workflow. You can now use LV_LightVolumeRegularSH(), LV_LightVolumeAdditiveSH(), LV_LightVolumePointSH() as separate features.
  • Normal magnitude in LightVolumesSH() now controls shading hardness for point lights.
  • LightVolumeDebugger now supports LightVolumes v.1.x.x
  • Cookie textures assign correctly supports Undo now
  • Packing strategy fix - Requested by @PiMaker
  • Editor performance improved
  • Baking multiselected lights is now possible
  • Documentation updated

Changes in version v.3.0.0-dev.1:

  • "Baked-realtime" EVSM shadows. Blurred penumbra, contact hardening and low performance cost.
  • Fully realtime EVSM shadows support. Not that performant, but you can rebake shadows in runtime, even every frame if you need.
  • Old volumetric shadowmasks are no longer supported (both in editor and shader)
  • Dramatically optimized Area Light Volumes. Full back compatibility, but slightly different look.
  • Dynamic custom textures array - bakes in runtime when needed
  • Animated RenderTextures, CustomRenderTextures and Materials support for realtime cookie projections and more!
  • Area lights can now emit light based on texture cookies, almost like LTCGI or AreaLit does. Also very fast and performant.
  • Area lights automatically fallback average color for Light Volumes v.2.x.x shaders
  • Point Light Volumes normal masking and shading control
  • Bakery bitmasks support
  • Baking Point Light Volumes into Light Probes support
  • New optimized voxels preview in editor, you can now preview millions of voxels with no lag!
  • New Light Volume Debugger shader that can be integrated in your avatar, currently set up with VRCFury
  • More optimized and advanced Udon scripts
  • Light Volumes v.1.x.x are no more supported
  • LightVolumes.cginc refactored
  • All Udon scripts refactored
  • Example scenes updated
  • Added Force Scene Lighting Toggle by @vard88508 - Overrides brightness limits for shaders like @lilxyzw and @poiyomi for overall bertter avatar look in properly configured scenes
  • Volume post-processors update by @PiMaker (I hope I didn't break any of your work while working on v.3.0.0. Promise to fix it soon if I really did)

Important for shader people:
Now you should pass your World Normal into the LightVolumeSH() function. It will still work even if you'll not do that, but will not mask the lights and shadows properly based on the normals, so it's highly recommended unless you shade something transparent like fog or foliage.

Full usage:
void LightVolumeSH(float3 worldPos, out float3 L0, out float3 L1r, out float3 L1g, out float3 L1b, float3 worldPosOffset = 0, float3 worldNormal = 0)
LightVolumeAdditiveSH(float3 worldPos, out float3 L0, out float3 L1r, out float3 L1g, out float3 L1b, float3 worldPosOffset = 0, float3 worldNormal = 0)
float3 LightVolumeSH_L0(float3 worldPos, float3 worldPosOffset = 0, float3 worldNormal = 0)
loat3 LightVolumeAdditiveSH_L0(float3 worldPos, float3 worldPosOffset = 0, float3 worldNormal = 0)

VRC Light Volumes v.3.0.0-dev.2

Pre-release

Choose a tag to compare

@REDSIM REDSIM released this 25 Jun 19:05

Finally, in a year after Light Volumes v.2.0.0 release, a next major Light Volumes update!

It's a dev beta version, so a lot of stuff might be changed before the final release!

New LV v.3.0.0 Documentation Is Here (Work In Progress)

Changes in version v.3.0.0-dev.2:

  • LightVolumes.cginc restructured for easier custom workflow. You can now use LV_LightVolumeRegularSH(), LV_LightVolumeAdditiveSH(), LV_LightVolumePointSH() as separate features.
  • Normal magnitude in LightVolumesSH() now controls shading hardness for point lights.
  • LightVolumeDebugger now supports LightVolumes v.1.x.x
  • Cookie textures assign correctly supports Undo now
  • Packing strategy fix - Requested by @PiMaker
  • Editor performance improved
  • Baking multiselected lights is now possible
  • Documentation updated

Changes in version v.3.0.0-dev.1:

  • "Baked-realtime" EVSM shadows. Blurred penumbra, contact hardening and low performance cost.
  • Fully realtime EVSM shadows support. Not that performant, but you can rebake shadows in runtime, even every frame if you need.
  • Old volumetric shadowmasks are no longer supported (both in editor and shader)
  • Dramatically optimized Area Light Volumes. Full back compatibility, but slightly different look.
  • Dynamic custom textures array - bakes in runtime when needed
  • Animated RenderTextures, CustomRenderTextures and Materials support for realtime cookie projections and more!
  • Area lights can now emit light based on texture cookies, almost like LTCGI or AreaLit does. Also very fast and performant.
  • Area lights automatically fallback average color for Light Volumes v.2.x.x shaders
  • Point Light Volumes normal masking and shading control
  • Bakery bitmasks support
  • Baking Point Light Volumes into Light Probes support
  • New optimized voxels preview in editor, you can now preview millions of voxels with no lag!
  • New Light Volume Debugger shader that can be integrated in your avatar, currently set up with VRCFury
  • More optimized and advanced Udon scripts
  • Light Volumes v.1.x.x are no more supported
  • LightVolumes.cginc refactored
  • All Udon scripts refactored
  • Example scenes updated
  • Added Force Scene Lighting Toggle by @vard88508 - Overrides brightness limits for shaders like @lilxyzw and @poiyomi for overall bertter avatar look in properly configured scenes
  • Volume post-processors update by @PiMaker (I hope I didn't break any of your work while working on v.3.0.0. Promise to fix it soon if I really did)

Important for shader people:
Now you should pass your World Normal into the LightVolumeSH() function. It will still work even if you'll not do that, but will not mask the lights and shadows properly based on the normals, so it's highly recommended unless you shade something transparent like fog or foliage.

Full usage:
void LightVolumeSH(float3 worldPos, out float3 L0, out float3 L1r, out float3 L1g, out float3 L1b, float3 worldPosOffset = 0, float3 worldNormal = 0)
LightVolumeAdditiveSH(float3 worldPos, out float3 L0, out float3 L1r, out float3 L1g, out float3 L1b, float3 worldPosOffset = 0, float3 worldNormal = 0)
float3 LightVolumeSH_L0(float3 worldPos, float3 worldPosOffset = 0, float3 worldNormal = 0)
loat3 LightVolumeAdditiveSH_L0(float3 worldPos, float3 worldPosOffset = 0, float3 worldNormal = 0)

VRC Light Volumes v.3.0.0-dev.1

Pre-release

Choose a tag to compare

@REDSIM REDSIM released this 21 Jun 02:51

Finally, in a year after Light Volumes v.2.0.0 release, a next major Light Volumes update!

It's a dev beta version, so a lot of stuff might be changed before the final release!

New LV v.3.0.0 Documentation Is Here (Work In Progress)

Changes in version v.3.0.0-dev.1:

  • "Baked-realtime" EVSM shadows. Blurred penumbra, contact hardening and low performance cost.
  • Fully realtime EVSM shadows support. Not that performant, but you can rebake shadows in runtime, even every frame if you need.
  • Old volumetric shadowmasks are no longer supported (both in editor and shader)
  • Dramatically optimized Area Light Volumes. Full back compatibility, but slightly different look.
  • Dynamic custom textures array - bakes in runtime when needed
  • Animated RenderTextures, CustomRenderTextures and Materials support for realtime cookie projections and more!
  • Area lights can now emit light based on texture cookies, almost like LTCGI or AreaLit does. Also very fast and performant.
  • Area lights automatically fallback average color for Light Volumes v.2.x.x shaders
  • Point Light Volumes normal masking and shading control
  • Bakery bitmasks support
  • Baking Point Light Volumes into Light Probes support
  • New optimized voxels preview in editor, you can now preview millions of voxels with no lag!
  • New Light Volume Debugger shader that can be integrated in your avatar, currently set up with VRCFury
  • More optimized and advanced Udon scripts
  • Light Volumes v.1.x.x are no more supported
  • LightVolumes.cginc refactored
  • All Udon scripts refactored
  • Example scenes updated
  • Added Force Scene Lighting Toggle by @vard88508 - Overrides brightness limits for shaders like @lilxyzw and @poiyomi for overall bertter avatar look in properly configured scenes
  • Volume post-processors update by @PiMaker (I hope I didn't break any of your work while working on v.3.0.0. Promise to fix it soon if I really did)

Important for shader people:
Now you should pass your World Normal into the LightVolumeSH() function. It will still work even if you'll not do that, but will not mask the lights and shadows properly based on the normals, so it's highly recommended unless you shade something transparent like fog or foliage.

Full usage:
void LightVolumeSH(float3 worldPos, out float3 L0, out float3 L1r, out float3 L1g, out float3 L1b, float3 worldPosOffset = 0, float3 worldNormal = 0)
LightVolumeAdditiveSH(float3 worldPos, out float3 L0, out float3 L1r, out float3 L1g, out float3 L1b, float3 worldPosOffset = 0, float3 worldNormal = 0)
float3 LightVolumeSH_L0(float3 worldPos, float3 worldPosOffset = 0, float3 worldNormal = 0)
loat3 LightVolumeAdditiveSH_L0(float3 worldPos, float3 worldPosOffset = 0, float3 worldNormal = 0)

VRC Light Volumes v.2.1.3

Choose a tag to compare

@REDSIM REDSIM released this 17 Nov 19:51

Changes in version v.2.1.3 including the dev version:

  • Prefabbed Light Volumes and Point Light Volumes now work correctly. (Previously people unpacked prefabs to make everything work, now it's not needed) (Thanks to @Artic-3D)
  • 'LightVolumeAudioLink' now has a toggle for color normalization. (Turned on by default) The reason is that AudioLink applies it's dimming effect to the automatic color chord, which doubles the effect. I think it's an AudioLink issue and I might report it later.
  • Corrected TargetLightVolume variable name in LightVolumeAudiolink
  • Small progress bar fix
  • TechTest example scene duplicated light components removed
  • Udon scripts polished slightly
  • Project settings Bakery tag and some other tags removed
  • Now LightVolumeInstance and PointLightVolumeInstance with no LightVolumeManager reference, finds the LightVolumeManager in scene, but it's only for No Udon mode, because Udon can't to that. It helps to instantiate prefabs with LVs in runtime.

VRC Light Volumes v.2.1.3-dev.1

Pre-release

Choose a tag to compare

@REDSIM REDSIM released this 05 Oct 15:59

It's mostly a slight polishing update that brings better support for standalone Unity applications, without VRChat and Udon.
Changes in version v.2.1.3-dev.1:

  • Corrected TargetLightVolume variable name in LightVolumeAudiolink
  • Small progress bar fix
  • TechTest example scene duplicated light components removed
  • Udon scripts polished slightly
  • Project settings Bakery tag and some other tags removed
  • Now LightVolumeInstance and PointLightVolumeInstance with no LightVolumeManager reference, finds the LightVolumeManager in scene, but it's only for No Udon mode, because Udon can't to that. It helps to instantiate prefabs with LVs in runtime.

I decided to make it as a dev version, because I'm not sure is initialization is stable in all the cases, plus I might make some other changes that can unintentionally break something.

VRC Light Volumes v.2.1.2

Choose a tag to compare

@REDSIM REDSIM released this 20 Sep 18:34

Changes in version v.2.1.2:

  • Downscaling worked wrong with LV shadowmasks. Fixed.

Changes in version v.2.1.1:

  • Downscaling hot-fix! Previously it didn't work because of a very stupid "typo"

Changes in version v.2.1.0:

  • A feature to downscale volumes. Check Downscale Volumes in Light Volume Setup (Useful for making smaller builds for mobile platforms or to decrease aliasing)
  • Now there is a progress bar (on the bottom right of the Unity GUI) while packing light volume 3D atlas and texture arrays.
  • Attribution assets edited to be power of 2
  • Light Volumes Audio Link script improved (merged with @SophieBlueVR commit #61)
  • Light Volumes Audio Link inversion feature (request #57)
  • TVGI script optimized (request #67)
  • Dynamic flag clarified better in it's tooltip (request #69)
  • Small .cginc fix by @d4rkc0d3r
  • Some other minor changes

VRC Light Volumes v.2.1.1

Choose a tag to compare

@REDSIM REDSIM released this 20 Sep 17:14

Changes in version v.2.1.1:

  • Downscaling hot-fix! Previously it didn't work because of a very stupid "typo"

Changes in version v.2.1.0:

  • A feature to downscale volumes. Check Downscale Volumes in Light Volume Setup (Useful for making smaller builds for mobile platforms or to decrease aliasing)
  • Now there is a progress bar (on the bottom right of the Unity GUI) while packing light volume 3D atlas and texture arrays.
  • Attribution assets edited to be power of 2
  • Light Volumes Audio Link script improved (merged with @SophieBlueVR commit #61)
  • Light Volumes Audio Link inversion feature (request #57)
  • TVGI script optimized (request #67)
  • Dynamic flag clarified better in it's tooltip (request #69)
  • Small .cginc fix by @d4rkc0d3r
  • Some other minor changes

VRC Light Volumes v.2.1.0

Choose a tag to compare

@REDSIM REDSIM released this 20 Sep 16:38

Changes in version v.2.1.0:

  • A feature to downscale volumes. Check Downscale Volumes in Light Volume Setup (Useful for making smaller builds for mobile platforms or to decrease aliasing)
  • Now there is a progress bar (on the bottom right of the Unity GUI) while packing light volume 3D atlas and texture arrays.
  • Attribution assets edited to be power of 2
  • Light Volumes Audio Link script improved (merged with @SophieBlueVR commit #61)
  • Light Volumes Audio Link inversion feature (request #57)
  • TVGI script optimized (request #67)
  • Dynamic flag clarified better in it's tooltip (request #69)
  • Small cginc fix by @d4rkc0d3r
  • Some other minor changes

VRC Light Volumes v.2.0.1

Choose a tag to compare

@REDSIM REDSIM released this 13 Aug 20:27

Changes in version v.2.0.1:

  • LightVolumes.cginc shader code refactored by @lilxyzw

This small update should at least partially fix the lag while LightVolumes-ready avatars loading for the first time.
It doesn't fix it completely, but at least does something. I will work more on this problem later (don't have enough time right now), but this is basically a hot fix.

Basically an issue #63 fix attempt.