Releases: orels1/orels-Unity-Shaders
v7.0.0 Dev 25
This is a pre-release. To access it you will need to enable "Show Pre-Release Packages" in VCC Settings
Changes since 7.0.0 Dev 24
New Features
%ExtraPassblock now supports a new parameterExtraPassInheritType- You can use
ExtraPassInheritType.SkipParentBlocksas the third positional argument to skip inheriting any shader blocks of the shader ExtraPass is included in (usually you inherit properties, variables, DataStructs and things like FragmentBase/VertexBase/etc). - This can be useful for crafting bespoke effects that utilize completely separate vert/frag/geometry functions without the overhead of the base shader setup. While still getting a higher level of abstraction than raw
%PrePassesand%PostPasses
- You can use
- Toon shaders now have a
FOG_DISABLEDdefine you can use to skip the fog calculations- Can be useful for extra passes that don't need fog
Bugfixes
- Adjusted sampling macros to be consistent across the whole codebase, utilizing
TEXTURE2D_ARGSandTEXTURE2D_PARAMinstead of separateTexture2D+SamplerState.- This should address #98
Changes
- Upgraded VRC Light Volumes to 2.0.1
- This improves compilation times and reduces "shader stutter" when a material with VRCLV enabled is shown for the first time
Full Changelog
Summary
Version 7.0.0 adds lots of new features, improvements, and bugfixes. This release was heavily driven by community requests in my Discord, so if you have any suggestions or feedback - please let me know!
New Shaders
- PBR
- Hotspotting: An auto-hotspotting shader that can be used to quickly set up reusable hotspot materials
- AreaLit: A special variant of the main shader with included AreaLit support.
- Decals: A simple Decalery-compatible decals shader.
- VRSL GI: A special variant of the main shader with included VRSL GI support.
- Toon
- Version 2 of the toon shader is now available! Here are the highlights:
- You can now have up to 4 matcaps, detail normal layers and decals
- Most things can be masked by a mask texture with channel and UV selection
- This allows you to make use of highly tiled detail textures that can preserve high quality detail at low resolutions
- UV Discard is now included by default
- PBR Reflections have been redone and are now based on the ORL Standard shader
- You can find the full docs here
- Version 2 of the toon shader is now available! Here are the highlights:
New Features
- Extra Passes are now supported by the shader generator!
- This allows you to add extra passes to your shaders without losing all the features of the shader generator (compared to using
%PostPassesand%PrePasses) - Read more about it here
- This allows you to add extra passes to your shaders without losing all the features of the shader generator (compared to using
- Cloth Shading mode added to all PBR shaders.
- This is still experimental, so please report any issues you encounter
- You can learn more about it here
- ClearCoat Option added to all PBR shaders in default shading mode
- This is still experimental and might not support all sources of lighting, please report any issues you encounter
- You can learn more about it here
- Screen Space Reflections module
- This module allows you to add screen space reflections to any PBR shader.
- Due to its cost - it is not included in any shaders by default, but you can use it via Configurable Shaders
- You can learn more about it here
- The implementation is based on Mochie's shaders
- VRC Light Volumes module
- This module adds support for RED_SIM's VRC Light Volumes
- The module is included and enabled by default in Toon shaders. It is included and disabled by default in PBR (Standard) shaders.
- There is currently no support for this in VFX shaders as they do not sample lightprobes, however - you can implement it in a custom VFX shader by providing a spot for relevant hooks:
%CustomProbesSetupFunctionsand%CustomProbesFunctions. The latter requires creating ahalf3 indirectDiffusevariable prior to the hook, which will then get populated by the light volume color data.
- LTCGI support for Toon shaders both v1 and v2. Thanks @fundale for the contribution!
- Custom GI Diffuse Ramp module for Toon v2 shaders. This allows you to add a toon-style ramp to the diffuse lighting from custom GI sources, e.g. LTCGI.
- Thanks @fundale for the contribution!
- Masked Tweaks module
- This module allows you to tweak your material's parameters based on a mask texture
- You can learn more about it here
- Layered Material shader got a major update
- A new "base layer" everything stacks on top of was added
- This makes it easier to use with terrain-style setups
- Mask debugging for each individual layer was added
- Normal "leaking" between layers is fixed
- Every layer now has a bespoke strength slider to simplify setup
- Every layer can now use triplanar UV mapping
- A new "base layer" everything stacks on top of was added
- Standard-Based shaders can now adjust Stencil parameters
- You can now occlude baked specular via Realtime Shadows. This effect is not physically accurate but can be helpful when used on dynamic objects
- Vertex Lights now properly light up objects using Standard shaders. This requires enabling vertex lighting in Advanced Settings
- You can now apply in-shader tonemapping on mobile platforms. This can drastically improve the look of your environments on Quest/Android. See the full docs here
- Toon shader now fully sports baking. Recommended to be used with a directional lightmap for best results
- Toon shader now has support for vertex-color masking of outline thickness
- Toon shader can now use outlines without stencil. This can be useful for adding extra detail
- LTCGI effect brightness can now be clamped to a 0-1 range and has a Maximum Brightness setting
- You can now use BIRP Standard shader-style Detail Albedo mixing. This can be toggled via "Legacy Albedo Mixing" when using the Separated Detail Map mode.
- "Baked Specular Occlusion" slider has been added to the Lightmapping section of all the Standard shaders. This can be used to control how much occlusion is applied to baked specular, e.g. from directional lightmaps or lightprobes.
- Added a "Force Discard" toggle to the UI Sheen shader. This can be used to force-discard transparent pixels of the sprite to avoid white line artifacts on the edges of the sprite.
- Shader Generator now supports
%PostVertexfunction blocks in all Templates. This allows you to modify the final output of the Vertex shader, after theVertexBasefunction runs. - The VFX Clouds shader got a major update.
- Now supports Directional Light-based shading, using a color ramp (similar to toon shaders).
- Now supports normal recalculation. This provides more accurate shading that follows the extruded shape of the clouds. This effect can be a little noisy, so you can use the Precision slider to adjust it until it looks good.
- You can now use all 8 UV channels by defining
NEED_UV4/NEED_UV5/NEED_UV6/NEED_UV7in your shader defines. - Configurable shaders can now accept arbitrary modules from anywhere in your project. Using the new "Custom Module" checkbox. This allows you to add modules that are not included in the shader generator.
- Bakery Volumes are now supported in all PBR Shaders. Check out the Lightmapping section for more information.
- The Shader Inspector can now show a Vector2 field for Vector properties. The most basic usage looks like this
%Vector2(Min, Max). Check out the relevant Shader Inspector section for more information. - You can now draw a Bakery Volume Assigner field in the Shader Inspector by using
%BakeryVolumeAssigner(). Check out the relevant Shader Inspector section for more information. - All of the keywords has been limited to their respective shader stages. This should improve shader complication and mesh channel resolving times.
- You can now use a new block type
%CheckedInclude()to only include a shader include file (e.g. a.cgincor.hlsl) if that file actually exists on disk. This is useful when working around conitional includes via keywords that sometimes produce errors in console. Check out the relevant Shader Generator Section for more information. - You can now define a hook point similar to the Template files inside your function blocks. Check out the Template docs for more information.
%ShaderModifiersas well as all of the%PassModifiersvariants (like%MetaPassModifiers) now support overriding. This means that values you set in your.orlshaderfile will override the values in theFragmentBaseor other files of your lighting model and other dependencies. Check out Shader Modifiers for more information.- Render Type selector. All PBR and VFX shaders now have a render type selector. This allows you to switch between Opaque, Cutout, Transparent, and Fade blending modes...
v7.0.0 Dev 24
This is a pre-release. To access it you will need to enable "Show Pre-Release Packages" in VCC Settings
Changes since 7.0.0 Dev 23
New Features
- Layered Material shaders have gotten a major overhaul
- New mask debugging options for each layer
- Base layer added for easier configuration
- Each layer now has mask remapping and strength sliders, to simplify setup and improve per-layer control
- Normal blending is now done via Replace instead of Blend.
- This prevents normal bleed between layers
- Layers now have a triplanar mapping option
- This is pretty expensive, so only turn it on for layers that need it
- Improved layer culling for better performance
Bugfixes
- Fixed Glass shaders not switching to transparent mode correctly
- Fixed shadow issues when using LOD Crossfade
Full Changelog
Summary
Version 7.0.0 adds lots of new features, improvements, and bugfixes. This release was heavily driven by community requests in my Discord, so if you have any suggestions or feedback - please let me know!
New Shaders
- PBR
- Hotspotting: An auto-hotspotting shader that can be used to quickly set up reusable hotspot materials
- AreaLit: A special variant of the main shader with included AreaLit support.
- Decals: A simple Decalery-compatible decals shader.
- VRSL GI: A special variant of the main shader with included VRSL GI support.
- Toon
- Version 2 of the toon shader is now available! Here are the highlights:
- You can now have up to 4 matcaps, detail normal layers and decals
- Most things can be masked by a mask texture with channel and UV selection
- This allows you to make use of highly tiled detail textures that can preserve high quality detail at low resolutions
- UV Discard is now included by default
- PBR Reflections have been redone and are now based on the ORL Standard shader
- You can find the full docs here
- Version 2 of the toon shader is now available! Here are the highlights:
New Features
- Extra Passes are now supported by the shader generator!
- This allows you to add extra passes to your shaders without losing all the features of the shader generator (compared to using
%PostPassesand%PrePasses) - Read more about it here
- This allows you to add extra passes to your shaders without losing all the features of the shader generator (compared to using
- Cloth Shading mode added to all PBR shaders.
- This is still experimental, so please report any issues you encounter
- You can learn more about it here
- ClearCoat Option added to all PBR shaders in default shading mode
- This is still experimental and might not support all sources of lighting, please report any issues you encounter
- You can learn more about it here
- Screen Space Reflections module
- This module allows you to add screen space reflections to any PBR shader.
- Due to its cost - it is not included in any shaders by default, but you can use it via Configurable Shaders
- You can learn more about it here
- The implementation is based on Mochie's shaders
- VRC Light Volumes module
- This module adds support for RED_SIM's VRC Light Volumes
- The module is included and enabled by default in Toon shaders. It is included and disabled by default in PBR (Standard) shaders.
- There is currently no support for this in VFX shaders as they do not sample lightprobes, however - you can implement it in a custom VFX shader by providing a spot for relevant hooks:
%CustomProbesSetupFunctionsand%CustomProbesFunctions. The latter requires creating ahalf3 indirectDiffusevariable prior to the hook, which will then get populated by the light volume color data.
- LTCGI support for Toon shaders both v1 and v2. Thanks @fundale for the contribution!
- Custom GI Diffuse Ramp module for Toon v2 shaders. This allows you to add a toon-style ramp to the diffuse lighting from custom GI sources, e.g. LTCGI.
- Thanks @fundale for the contribution!
- Masked Tweaks module
- This module allows you to tweak your material's parameters based on a mask texture
- You can learn more about it here
- Standard-Based shaders can now adjust Stencil parameters
- You can now occlude baked specular via Realtime Shadows. This effect is not physically accurate but can be helpful when used on dynamic objects
- Vertex Lights now properly light up objects using Standard shaders. This requires enabling vertex lighting in Advanced Settings
- You can now apply in-shader tonemapping on mobile platforms. This can drastically improve the look of your environments on Quest/Android. See the full docs here
- Toon shader now fully sports baking. Recommended to be used with a directional lightmap for best results
- Toon shader now has support for vertex-color masking of outline thickness
- Toon shader can now use outlines without stencil. This can be useful for adding extra detail
- LTCGI effect brightness can now be clamped to a 0-1 range and has a Maximum Brightness setting
- You can now use BIRP Standard shader-style Detail Albedo mixing. This can be toggled via "Legacy Albedo Mixing" when using the Separated Detail Map mode.
- "Baked Specular Occlusion" slider has been added to the Lightmapping section of all the Standard shaders. This can be used to control how much occlusion is applied to baked specular, e.g. from directional lightmaps or lightprobes.
- Added a "Force Discard" toggle to the UI Sheen shader. This can be used to force-discard transparent pixels of the sprite to avoid white line artifacts on the edges of the sprite.
- Shader Generator now supports
%PostVertexfunction blocks in all Templates. This allows you to modify the final output of the Vertex shader, after theVertexBasefunction runs. - The VFX Clouds shader got a major update.
- Now supports Directional Light-based shading, using a color ramp (similar to toon shaders).
- Now supports normal recalculation. This provides more accurate shading that follows the extruded shape of the clouds. This effect can be a little noisy, so you can use the Precision slider to adjust it until it looks good.
- You can now use all 8 UV channels by defining
NEED_UV4/NEED_UV5/NEED_UV6/NEED_UV7in your shader defines. - Configurable shaders can now accept arbitrary modules from anywhere in your project. Using the new "Custom Module" checkbox. This allows you to add modules that are not included in the shader generator.
- Bakery Volumes are now supported in all PBR Shaders. Check out the Lightmapping section for more information.
- The Shader Inspector can now show a Vector2 field for Vector properties. The most basic usage looks like this
%Vector2(Min, Max). Check out the relevant Shader Inspector section for more information. - You can now draw a Bakery Volume Assigner field in the Shader Inspector by using
%BakeryVolumeAssigner(). Check out the relevant Shader Inspector section for more information. - All of the keywords has been limited to their respective shader stages. This should improve shader complication and mesh channel resolving times.
- You can now use a new block type
%CheckedInclude()to only include a shader include file (e.g. a.cgincor.hlsl) if that file actually exists on disk. This is useful when working around conitional includes via keywords that sometimes produce errors in console. Check out the relevant Shader Generator Section for more information. - You can now define a hook point similar to the Template files inside your function blocks. Check out the Template docs for more information.
%ShaderModifiersas well as all of the%PassModifiersvariants (like%MetaPassModifiers) now support overriding. This means that values you set in your.orlshaderfile will override the values in theFragmentBaseor other files of your lighting model and other dependencies. Check out Shader Modifiers for more information.- Render Type selector. All PBR and VFX shaders now have a render type selector. This allows you to switch between Opaque, Cutout, Transparent, and Fade blending modes. There is also a "Custom" option which allows you to specify your own blending parameters.
- This also introduces a new shader tag
ORL_RenderTypewhich allows you to enforce a particular value of the render type, prevent the user from changing it. See the Special Tags section for more information. - The dropdown itself uses a new
%RenderType()drawer function to display the available options and set the relevant properties on the material. See the Render Type section for more information. - This change means that if your render type is one of the preset options - you can use the
ORL_RenderTypetag to enable it without having to set any%ShaderModifiersor%PassModifiersyourself. However, you can still use those blocks to override the b...
- This also introduces a new shader tag
v7.0.0 Dev 23
This is a pre-release. To access it you will need to enable "Show Pre-Release Packages" in VCC Settings
Changes since 7.0.0 Dev 22
Changes
- Updated VRCLightVolumes to version 2.0.0-dev.12 to catch up to the release candidate
Bugfixes
- Fixed clouds shader not working in Single Pass Stereo Instanced rendering
- Fixed Toon Shader v2 PBR reflection rendering
Full Changelog
Summary
Version 7.0.0 adds lots of new features, improvements, and bugfixes. This release was heavily driven by community requests in my Discord, so if you have any suggestions or feedback - please let me know!
New Shaders
- PBR
- Hotspotting: An auto-hotspotting shader that can be used to quickly set up reusable hotspot materials
- AreaLit: A special variant of the main shader with included AreaLit support.
- Decals: A simple Decalery-compatible decals shader.
- VRSL GI: A special variant of the main shader with included VRSL GI support.
- Toon
- Version 2 of the toon shader is now available! Here are the highlights:
- You can now have up to 4 matcaps, detail normal layers and decals
- Most things can be masked by a mask texture with channel and UV selection
- This allows you to make use of highly tiled detail textures that can preserve high quality detail at low resolutions
- UV Discard is now included by default
- PBR Reflections have been redone and are now based on the ORL Standard shader
- You can find the full docs here
- Version 2 of the toon shader is now available! Here are the highlights:
New Features
- Extra Passes are now supported by the shader generator!
- This allows you to add extra passes to your shaders without losing all the features of the shader generator (compared to using
%PostPassesand%PrePasses) - Read more about it here
- This allows you to add extra passes to your shaders without losing all the features of the shader generator (compared to using
- Cloth Shading mode added to all PBR shaders.
- This is still experimental, so please report any issues you encounter
- You can learn more about it here
- ClearCoat Option added to all PBR shaders in default shading mode
- This is still experimental and might not support all sources of lighting, please report any issues you encounter
- You can learn more about it here
- Screen Space Reflections module
- This module allows you to add screen space reflections to any PBR shader.
- Due to its cost - it is not included in any shaders by default, but you can use it via Configurable Shaders
- You can learn more about it here
- The implementation is based on Mochie's shaders
- VRC Light Volumes module
- This module adds support for RED_SIM's VRC Light Volumes
- The module is included and enabled by default in Toon shaders. It is included and disabled by default in PBR (Standard) shaders.
- There is currently no support for this in VFX shaders as they do not sample lightprobes, however - you can implement it in a custom VFX shader by providing a spot for relevant hooks:
%CustomProbesSetupFunctionsand%CustomProbesFunctions. The latter requires creating ahalf3 indirectDiffusevariable prior to the hook, which will then get populated by the light volume color data.
- LTCGI support for Toon shaders both v1 and v2. Thanks @fundale for the contribution!
- Custom GI Diffuse Ramp module for Toon v2 shaders. This allows you to add a toon-style ramp to the diffuse lighting from custom GI sources, e.g. LTCGI.
- Thanks @fundale for the contribution!
- Masked Tweaks module
- This module allows you to tweak your material's parameters based on a mask texture
- You can learn more about it here
- Standard-Based shaders can now adjust Stencil parameters
- You can now occlude baked specular via Realtime Shadows. This effect is not physically accurate but can be helpful when used on dynamic objects
- Vertex Lights now properly light up objects using Standard shaders. This requires enabling vertex lighting in Advanced Settings
- You can now apply in-shader tonemapping on mobile platforms. This can drastically improve the look of your environments on Quest/Android. See the full docs here
- Toon shader now fully sports baking. Recommended to be used with a directional lightmap for best results
- Toon shader now has support for vertex-color masking of outline thickness
- Toon shader can now use outlines without stencil. This can be useful for adding extra detail
- LTCGI effect brightness can now be clamped to a 0-1 range and has a Maximum Brightness setting
- You can now use BIRP Standard shader-style Detail Albedo mixing. This can be toggled via "Legacy Albedo Mixing" when using the Separated Detail Map mode.
- "Baked Specular Occlusion" slider has been added to the Lightmapping section of all the Standard shaders. This can be used to control how much occlusion is applied to baked specular, e.g. from directional lightmaps or lightprobes.
- Added a "Force Discard" toggle to the UI Sheen shader. This can be used to force-discard transparent pixels of the sprite to avoid white line artifacts on the edges of the sprite.
- Shader Generator now supports
%PostVertexfunction blocks in all Templates. This allows you to modify the final output of the Vertex shader, after theVertexBasefunction runs. - The VFX Clouds shader got a major update.
- Now supports Directional Light-based shading, using a color ramp (similar to toon shaders).
- Now supports normal recalculation. This provides more accurate shading that follows the extruded shape of the clouds. This effect can be a little noisy, so you can use the Precision slider to adjust it until it looks good.
- You can now use all 8 UV channels by defining
NEED_UV4/NEED_UV5/NEED_UV6/NEED_UV7in your shader defines. - Configurable shaders can now accept arbitrary modules from anywhere in your project. Using the new "Custom Module" checkbox. This allows you to add modules that are not included in the shader generator.
- Bakery Volumes are now supported in all PBR Shaders. Check out the Lightmapping section for more information.
- The Shader Inspector can now show a Vector2 field for Vector properties. The most basic usage looks like this
%Vector2(Min, Max). Check out the relevant Shader Inspector section for more information. - You can now draw a Bakery Volume Assigner field in the Shader Inspector by using
%BakeryVolumeAssigner(). Check out the relevant Shader Inspector section for more information. - All of the keywords has been limited to their respective shader stages. This should improve shader complication and mesh channel resolving times.
- You can now use a new block type
%CheckedInclude()to only include a shader include file (e.g. a.cgincor.hlsl) if that file actually exists on disk. This is useful when working around conitional includes via keywords that sometimes produce errors in console. Check out the relevant Shader Generator Section for more information. - You can now define a hook point similar to the Template files inside your function blocks. Check out the Template docs for more information.
%ShaderModifiersas well as all of the%PassModifiersvariants (like%MetaPassModifiers) now support overriding. This means that values you set in your.orlshaderfile will override the values in theFragmentBaseor other files of your lighting model and other dependencies. Check out Shader Modifiers for more information.- Render Type selector. All PBR and VFX shaders now have a render type selector. This allows you to switch between Opaque, Cutout, Transparent, and Fade blending modes. There is also a "Custom" option which allows you to specify your own blending parameters.
- This also introduces a new shader tag
ORL_RenderTypewhich allows you to enforce a particular value of the render type, prevent the user from changing it. See the Special Tags section for more information. - The dropdown itself uses a new
%RenderType()drawer function to display the available options and set the relevant properties on the material. See the Render Type section for more information. - This change means that if your render type is one of the preset options - you can use the
ORL_RenderTypetag to enable it without having to set any%ShaderModifiersor%PassModifiersyourself. However, you can still use those blocks to override the blending behaviour thanks to the new sorting and overriding mechanisms mentioned above.
- This also introduces a new shader tag
- You can now bake down procedural materials using something like a Hotspotting shader into static textures and PBR materials. Check out the Map Baker section for more information.
- You can now explicitly turn on passing normal maps to the GSAA calculation. Leaving it off can help avoid a "pixelation" effect ...
v7.0.0 Dev 22
This is a pre-release. To access it you will need to enable "Show Pre-Release Packages" in VCC Settings
Changes since 7.0.0 Dev 21
Changes
- Updated VRCLightVolumes to version 2.0.0-dev.7 to include some of the latest breaking changes
Full Changelog
Summary
Version 7.0.0 adds lots of new features, improvements, and bugfixes. This release was heavily driven by community requests in my Discord, so if you have any suggestions or feedback - please let me know!
New Shaders
- PBR
- Hotspotting: An auto-hotspotting shader that can be used to quickly set up reusable hotspot materials
- AreaLit: A special variant of the main shader with included AreaLit support.
- Decals: A simple Decalery-compatible decals shader.
- VRSL GI: A special variant of the main shader with included VRSL GI support.
- Toon
- Version 2 of the toon shader is now available! Here are the highlights:
- You can now have up to 4 matcaps, detail normal layers and decals
- Most things can be masked by a mask texture with channel and UV selection
- This allows you to make use of highly tiled detail textures that can preserve high quality detail at low resolutions
- UV Discard is now included by default
- PBR Reflections have been redone and are now based on the ORL Standard shader
- You can find the full docs here
- Version 2 of the toon shader is now available! Here are the highlights:
New Features
- Extra Passes are now supported by the shader generator!
- This allows you to add extra passes to your shaders without losing all the features of the shader generator (compared to using
%PostPassesand%PrePasses) - Read more about it here
- This allows you to add extra passes to your shaders without losing all the features of the shader generator (compared to using
- Cloth Shading mode added to all PBR shaders.
- This is still experimental, so please report any issues you encounter
- You can learn more about it here
- ClearCoat Option added to all PBR shaders in default shading mode
- This is still experimental and might not support all sources of lighting, please report any issues you encounter
- You can learn more about it here
- Screen Space Reflections module
- This module allows you to add screen space reflections to any PBR shader.
- Due to its cost - it is not included in any shaders by default, but you can use it via Configurable Shaders
- You can learn more about it here
- The implementation is based on Mochie's shaders
- VRC Light Volumes module
- This module adds support for RED_SIM's VRC Light Volumes
- The module is included and enabled by default in Toon shaders. It is included and disabled by default in PBR (Standard) shaders.
- There is currently no support for this in VFX shaders as they do not sample lightprobes, however - you can implement it in a custom VFX shader by providing a spot for relevant hooks:
%CustomProbesSetupFunctionsand%CustomProbesFunctions. The latter requires creating ahalf3 indirectDiffusevariable prior to the hook, which will then get populated by the light volume color data.
- LTCGI support for Toon shaders both v1 and v2. Thanks @fundale for the contribution!
- Custom GI Diffuse Ramp module for Toon v2 shaders. This allows you to add a toon-style ramp to the diffuse lighting from custom GI sources, e.g. LTCGI.
- Thanks @fundale for the contribution!
- Masked Tweaks module
- This module allows you to tweak your material's parameters based on a mask texture
- You can learn more about it here
- Standard-Based shaders can now adjust Stencil parameters
- You can now occlude baked specular via Realtime Shadows. This effect is not physically accurate but can be helpful when used on dynamic objects
- Vertex Lights now properly light up objects using Standard shaders. This requires enabling vertex lighting in Advanced Settings
- You can now apply in-shader tonemapping on mobile platforms. This can drastically improve the look of your environments on Quest/Android. See the full docs here
- Toon shader now fully sports baking. Recommended to be used with a directional lightmap for best results
- Toon shader now has support for vertex-color masking of outline thickness
- Toon shader can now use outlines without stencil. This can be useful for adding extra detail
- LTCGI effect brightness can now be clamped to a 0-1 range and has a Maximum Brightness setting
- You can now use BIRP Standard shader-style Detail Albedo mixing. This can be toggled via "Legacy Albedo Mixing" when using the Separated Detail Map mode.
- "Baked Specular Occlusion" slider has been added to the Lightmapping section of all the Standard shaders. This can be used to control how much occlusion is applied to baked specular, e.g. from directional lightmaps or lightprobes.
- Added a "Force Discard" toggle to the UI Sheen shader. This can be used to force-discard transparent pixels of the sprite to avoid white line artifacts on the edges of the sprite.
- Shader Generator now supports
%PostVertexfunction blocks in all Templates. This allows you to modify the final output of the Vertex shader, after theVertexBasefunction runs. - The VFX Clouds shader got a major update.
- Now supports Directional Light-based shading, using a color ramp (similar to toon shaders).
- Now supports normal recalculation. This provides more accurate shading that follows the extruded shape of the clouds. This effect can be a little noisy, so you can use the Precision slider to adjust it until it looks good.
- You can now use all 8 UV channels by defining
NEED_UV4/NEED_UV5/NEED_UV6/NEED_UV7in your shader defines. - Configurable shaders can now accept arbitrary modules from anywhere in your project. Using the new "Custom Module" checkbox. This allows you to add modules that are not included in the shader generator.
- Bakery Volumes are now supported in all PBR Shaders. Check out the Lightmapping section for more information.
- The Shader Inspector can now show a Vector2 field for Vector properties. The most basic usage looks like this
%Vector2(Min, Max). Check out the relevant Shader Inspector section for more information. - You can now draw a Bakery Volume Assigner field in the Shader Inspector by using
%BakeryVolumeAssigner(). Check out the relevant Shader Inspector section for more information. - All of the keywords has been limited to their respective shader stages. This should improve shader complication and mesh channel resolving times.
- You can now use a new block type
%CheckedInclude()to only include a shader include file (e.g. a.cgincor.hlsl) if that file actually exists on disk. This is useful when working around conitional includes via keywords that sometimes produce errors in console. Check out the relevant Shader Generator Section for more information. - You can now define a hook point similar to the Template files inside your function blocks. Check out the Template docs for more information.
%ShaderModifiersas well as all of the%PassModifiersvariants (like%MetaPassModifiers) now support overriding. This means that values you set in your.orlshaderfile will override the values in theFragmentBaseor other files of your lighting model and other dependencies. Check out Shader Modifiers for more information.- Render Type selector. All PBR and VFX shaders now have a render type selector. This allows you to switch between Opaque, Cutout, Transparent, and Fade blending modes. There is also a "Custom" option which allows you to specify your own blending parameters.
- This also introduces a new shader tag
ORL_RenderTypewhich allows you to enforce a particular value of the render type, prevent the user from changing it. See the Special Tags section for more information. - The dropdown itself uses a new
%RenderType()drawer function to display the available options and set the relevant properties on the material. See the Render Type section for more information. - This change means that if your render type is one of the preset options - you can use the
ORL_RenderTypetag to enable it without having to set any%ShaderModifiersor%PassModifiersyourself. However, you can still use those blocks to override the blending behaviour thanks to the new sorting and overriding mechanisms mentioned above.
- This also introduces a new shader tag
- You can now bake down procedural materials using something like a Hotspotting shader into static textures and PBR materials. Check out the Map Baker section for more information.
- You can now explicitly turn on passing normal maps to the GSAA calculation. Leaving it off can help avoid a "pixelation" effect on high frequency normal maps.
- This is turned off by default on all materials. You can turn it on for your existing materials via...
v7.0.0 Dev 21
This is a pre-release. To access it you will need to enable "Show Pre-Release Packages" in VCC Settings
Changes since 7.0.0 Dev 20
Bugfixes
- Fixed materials not compiling when VRCLightVolumes are enabled
Full Changelog
Summary
Version 7.0.0 adds lots of new features, improvements, and bugfixes. This release was heavily driven by community requests in my Discord, so if you have any suggestions or feedback - please let me know!
New Shaders
- PBR
- Hotspotting: An auto-hotspotting shader that can be used to quickly set up reusable hotspot materials
- AreaLit: A special variant of the main shader with included AreaLit support.
- Decals: A simple Decalery-compatible decals shader.
- VRSL GI: A special variant of the main shader with included VRSL GI support.
- Toon
- Version 2 of the toon shader is now available! Here are the highlights:
- You can now have up to 4 matcaps, detail normal layers and decals
- Most things can be masked by a mask texture with channel and UV selection
- This allows you to make use of highly tiled detail textures that can preserve high quality detail at low resolutions
- UV Discard is now included by default
- PBR Reflections have been redone and are now based on the ORL Standard shader
- You can find the full docs here
- Version 2 of the toon shader is now available! Here are the highlights:
New Features
- Extra Passes are now supported by the shader generator!
- This allows you to add extra passes to your shaders without losing all the features of the shader generator (compared to using
%PostPassesand%PrePasses) - Read more about it here
- This allows you to add extra passes to your shaders without losing all the features of the shader generator (compared to using
- Cloth Shading mode added to all PBR shaders.
- This is still experimental, so please report any issues you encounter
- You can learn more about it here
- ClearCoat Option added to all PBR shaders in default shading mode
- This is still experimental and might not support all sources of lighting, please report any issues you encounter
- You can learn more about it here
- Screen Space Reflections module
- This module allows you to add screen space reflections to any PBR shader.
- Due to its cost - it is not included in any shaders by default, but you can use it via Configurable Shaders
- You can learn more about it here
- The implementation is based on Mochie's shaders
- VRC Light Volumes module
- This module adds support for RED_SIM's VRC Light Volumes
- The module is included and enabled by default in Toon shaders. It is included and disabled by default in PBR (Standard) shaders.
- There is currently no support for this in VFX shaders as they do not sample lightprobes, however - you can implement it in a custom VFX shader by providing a spot for relevant hooks:
%CustomProbesSetupFunctionsand%CustomProbesFunctions. The latter requires creating ahalf3 indirectDiffusevariable prior to the hook, which will then get populated by the light volume color data.
- LTCGI support for Toon shaders both v1 and v2. Thanks @fundale for the contribution!
- Custom GI Diffuse Ramp module for Toon v2 shaders. This allows you to add a toon-style ramp to the diffuse lighting from custom GI sources, e.g. LTCGI.
- Thanks @fundale for the contribution!
- Masked Tweaks module
- This module allows you to tweak your material's parameters based on a mask texture
- You can learn more about it here
- Standard-Based shaders can now adjust Stencil parameters
- You can now occlude baked specular via Realtime Shadows. This effect is not physically accurate but can be helpful when used on dynamic objects
- Vertex Lights now properly light up objects using Standard shaders. This requires enabling vertex lighting in Advanced Settings
- You can now apply in-shader tonemapping on mobile platforms. This can drastically improve the look of your environments on Quest/Android. See the full docs here
- Toon shader now fully sports baking. Recommended to be used with a directional lightmap for best results
- Toon shader now has support for vertex-color masking of outline thickness
- Toon shader can now use outlines without stencil. This can be useful for adding extra detail
- LTCGI effect brightness can now be clamped to a 0-1 range and has a Maximum Brightness setting
- You can now use BIRP Standard shader-style Detail Albedo mixing. This can be toggled via "Legacy Albedo Mixing" when using the Separated Detail Map mode.
- "Baked Specular Occlusion" slider has been added to the Lightmapping section of all the Standard shaders. This can be used to control how much occlusion is applied to baked specular, e.g. from directional lightmaps or lightprobes.
- Added a "Force Discard" toggle to the UI Sheen shader. This can be used to force-discard transparent pixels of the sprite to avoid white line artifacts on the edges of the sprite.
- Shader Generator now supports
%PostVertexfunction blocks in all Templates. This allows you to modify the final output of the Vertex shader, after theVertexBasefunction runs. - The VFX Clouds shader got a major update.
- Now supports Directional Light-based shading, using a color ramp (similar to toon shaders).
- Now supports normal recalculation. This provides more accurate shading that follows the extruded shape of the clouds. This effect can be a little noisy, so you can use the Precision slider to adjust it until it looks good.
- You can now use all 8 UV channels by defining
NEED_UV4/NEED_UV5/NEED_UV6/NEED_UV7in your shader defines. - Configurable shaders can now accept arbitrary modules from anywhere in your project. Using the new "Custom Module" checkbox. This allows you to add modules that are not included in the shader generator.
- Bakery Volumes are now supported in all PBR Shaders. Check out the Lightmapping section for more information.
- The Shader Inspector can now show a Vector2 field for Vector properties. The most basic usage looks like this
%Vector2(Min, Max). Check out the relevant Shader Inspector section for more information. - You can now draw a Bakery Volume Assigner field in the Shader Inspector by using
%BakeryVolumeAssigner(). Check out the relevant Shader Inspector section for more information. - All of the keywords has been limited to their respective shader stages. This should improve shader complication and mesh channel resolving times.
- You can now use a new block type
%CheckedInclude()to only include a shader include file (e.g. a.cgincor.hlsl) if that file actually exists on disk. This is useful when working around conitional includes via keywords that sometimes produce errors in console. Check out the relevant Shader Generator Section for more information. - You can now define a hook point similar to the Template files inside your function blocks. Check out the Template docs for more information.
%ShaderModifiersas well as all of the%PassModifiersvariants (like%MetaPassModifiers) now support overriding. This means that values you set in your.orlshaderfile will override the values in theFragmentBaseor other files of your lighting model and other dependencies. Check out Shader Modifiers for more information.- Render Type selector. All PBR and VFX shaders now have a render type selector. This allows you to switch between Opaque, Cutout, Transparent, and Fade blending modes. There is also a "Custom" option which allows you to specify your own blending parameters.
- This also introduces a new shader tag
ORL_RenderTypewhich allows you to enforce a particular value of the render type, prevent the user from changing it. See the Special Tags section for more information. - The dropdown itself uses a new
%RenderType()drawer function to display the available options and set the relevant properties on the material. See the Render Type section for more information. - This change means that if your render type is one of the preset options - you can use the
ORL_RenderTypetag to enable it without having to set any%ShaderModifiersor%PassModifiersyourself. However, you can still use those blocks to override the blending behaviour thanks to the new sorting and overriding mechanisms mentioned above.
- This also introduces a new shader tag
- You can now bake down procedural materials using something like a Hotspotting shader into static textures and PBR materials. Check out the Map Baker section for more information.
- You can now explicitly turn on passing normal maps to the GSAA calculation. Leaving it off can help avoid a "pixelation" effect on high frequency normal maps.
- This is turned off by default on all materials. You can turn it on for your existing materials via Tools > orels1 > Upgrade Mater...
v7.0.0 Dev 20
This is a pre-release. To access it you will need to enable "Show Pre-Release Packages" in VCC Settings
Changes since 7.0.0 Dev 19
New Features
- Clearcoat shader now has masking support. Thanks @CheesecakeCG !
- Clouds shader got a bunch of improvements, including triplanar detail texture, better blending and shadowcasting support and bugfixes.
- Layered Material now supports masking via Alpha channel
Bugfixes
- Fixed commented out
{and}breaking the parser - Fixed cbuffer definitions spamming warnings during shader generation
Other Changes
- Updated VRCLightVolumes to
2.0.0-dev.3, there should be no major changes from that to final 2.0.0 so I think its ok to ship in this dev release - More blocks support
Orderparameters- You can now supply an
Orderparameter to the following blocks:%LibraryFunctions()%DataStructs()%PassModifiers()
- You can now supply an
Full Changelog
Summary
Version 7.0.0 adds lots of new features, improvements, and bugfixes. This release was heavily driven by community requests in my Discord, so if you have any suggestions or feedback - please let me know!
New Shaders
- PBR
- Hotspotting: An auto-hotspotting shader that can be used to quickly set up reusable hotspot materials
- AreaLit: A special variant of the main shader with included AreaLit support.
- Decals: A simple Decalery-compatible decals shader.
- VRSL GI: A special variant of the main shader with included VRSL GI support.
- Toon
- Version 2 of the toon shader is now available! Here are the highlights:
- You can now have up to 4 matcaps, detail normal layers and decals
- Most things can be masked by a mask texture with channel and UV selection
- This allows you to make use of highly tiled detail textures that can preserve high quality detail at low resolutions
- UV Discard is now included by default
- PBR Reflections have been redone and are now based on the ORL Standard shader
- You can find the full docs here
- Version 2 of the toon shader is now available! Here are the highlights:
New Features
- Extra Passes are now supported by the shader generator!
- This allows you to add extra passes to your shaders without losing all the features of the shader generator (compared to using
%PostPassesand%PrePasses) - Read more about it here
- This allows you to add extra passes to your shaders without losing all the features of the shader generator (compared to using
- Cloth Shading mode added to all PBR shaders.
- This is still experimental, so please report any issues you encounter
- You can learn more about it here
- ClearCoat Option added to all PBR shaders in default shading mode
- This is still experimental and might not support all sources of lighting, please report any issues you encounter
- You can learn more about it here
- Screen Space Reflections module
- This module allows you to add screen space reflections to any PBR shader.
- Due to its cost - it is not included in any shaders by default, but you can use it via Configurable Shaders
- You can learn more about it here
- The implementation is based on Mochie's shaders
- VRC Light Volumes module
- This module adds support for RED_SIM's VRC Light Volumes
- The module is included and enabled by default in Toon shaders. It is included and disabled by default in PBR (Standard) shaders.
- There is currently no support for this in VFX shaders as they do not sample lightprobes, however - you can implement it in a custom VFX shader by providing a spot for relevant hooks:
%CustomProbesSetupFunctionsand%CustomProbesFunctions. The latter requires creating ahalf3 indirectDiffusevariable prior to the hook, which will then get populated by the light volume color data.
- LTCGI support for Toon shaders both v1 and v2. Thanks @fundale for the contribution!
- Custom GI Diffuse Ramp module for Toon v2 shaders. This allows you to add a toon-style ramp to the diffuse lighting from custom GI sources, e.g. LTCGI.
- Thanks @fundale for the contribution!
- Masked Tweaks module
- This module allows you to tweak your material's parameters based on a mask texture
- You can learn more about it here
- Standard-Based shaders can now adjust Stencil parameters
- You can now occlude baked specular via Realtime Shadows. This effect is not physically accurate but can be helpful when used on dynamic objects
- Vertex Lights now properly light up objects using Standard shaders. This requires enabling vertex lighting in Advanced Settings
- You can now apply in-shader tonemapping on mobile platforms. This can drastically improve the look of your environments on Quest/Android. See the full docs here
- Toon shader now fully sports baking. Recommended to be used with a directional lightmap for best results
- Toon shader now has support for vertex-color masking of outline thickness
- Toon shader can now use outlines without stencil. This can be useful for adding extra detail
- LTCGI effect brightness can now be clamped to a 0-1 range and has a Maximum Brightness setting
- You can now use BIRP Standard shader-style Detail Albedo mixing. This can be toggled via "Legacy Albedo Mixing" when using the Separated Detail Map mode.
- "Baked Specular Occlusion" slider has been added to the Lightmapping section of all the Standard shaders. This can be used to control how much occlusion is applied to baked specular, e.g. from directional lightmaps or lightprobes.
- Added a "Force Discard" toggle to the UI Sheen shader. This can be used to force-discard transparent pixels of the sprite to avoid white line artifacts on the edges of the sprite.
- Shader Generator now supports
%PostVertexfunction blocks in all Templates. This allows you to modify the final output of the Vertex shader, after theVertexBasefunction runs. - The VFX Clouds shader got a major update.
- Now supports Directional Light-based shading, using a color ramp (similar to toon shaders).
- Now supports normal recalculation. This provides more accurate shading that follows the extruded shape of the clouds. This effect can be a little noisy, so you can use the Precision slider to adjust it until it looks good.
- You can now use all 8 UV channels by defining
NEED_UV4/NEED_UV5/NEED_UV6/NEED_UV7in your shader defines. - Configurable shaders can now accept arbitrary modules from anywhere in your project. Using the new "Custom Module" checkbox. This allows you to add modules that are not included in the shader generator.
- Bakery Volumes are now supported in all PBR Shaders. Check out the Lightmapping section for more information.
- The Shader Inspector can now show a Vector2 field for Vector properties. The most basic usage looks like this
%Vector2(Min, Max). Check out the relevant Shader Inspector section for more information. - You can now draw a Bakery Volume Assigner field in the Shader Inspector by using
%BakeryVolumeAssigner(). Check out the relevant Shader Inspector section for more information. - All of the keywords has been limited to their respective shader stages. This should improve shader complication and mesh channel resolving times.
- You can now use a new block type
%CheckedInclude()to only include a shader include file (e.g. a.cgincor.hlsl) if that file actually exists on disk. This is useful when working around conitional includes via keywords that sometimes produce errors in console. Check out the relevant Shader Generator Section for more information. - You can now define a hook point similar to the Template files inside your function blocks. Check out the Template docs for more information.
%ShaderModifiersas well as all of the%PassModifiersvariants (like%MetaPassModifiers) now support overriding. This means that values you set in your.orlshaderfile will override the values in theFragmentBaseor other files of your lighting model and other dependencies. Check out Shader Modifiers for more information.- Render Type selector. All PBR and VFX shaders now have a render type selector. This allows you to switch between Opaque, Cutout, Transparent, and Fade blending modes. There is also a "Custom" option which allows you to specify your own blending parameters.
- This also introduces a new shader tag
ORL_RenderTypewhich allows you to enforce a particular value of the render type, prevent the user from changing it. See the Special Tags section for more information. - The dropdown itself uses a new
%RenderType()drawer function to display the available options and set the relevant properties on the material. See the Render Type section for more information. - This change means that if your render type is one of the preset options - you can u...
- This also introduces a new shader tag
v7.0.0 Dev 19
This is a pre-release. To access it you will need to enable "Show Pre-Release Packages" in VCC Settings
Changes since 7.0.0 Dev 18
Bugfixes
- Fixed Shadowmasks not applying to main light specular
- Thanks @lackofbindings for the report
- Fixed SSR module misbehaving with MSAA and HDR off
- Fixed Vertical Fog incorrectly applying in the FORWARDADD pass
Other Changes
- Updated UnityShaderParser to latest, no visible changes are expected
Full Changelog
Summary
Version 7.0.0 adds lots of new features, improvements, and bugfixes. This release was heavily driven by community requests in my Discord, so if you have any suggestions or feedback - please let me know!
New Shaders
- PBR
- Hotspotting: An auto-hotspotting shader that can be used to quickly set up reusable hotspot materials
- AreaLit: A special variant of the main shader with included AreaLit support.
- Decals: A simple Decalery-compatible decals shader.
- VRSL GI: A special variant of the main shader with included VRSL GI support.
- Toon
- Version 2 of the toon shader is now available! Here are the highlights:
- You can now have up to 4 matcaps, detail normal layers and decals
- Most things can be masked by a mask texture with channel and UV selection
- This allows you to make use of highly tiled detail textures that can preserve high quality detail at low resolutions
- UV Discard is now included by default
- PBR Reflections have been redone and are now based on the ORL Standard shader
- You can find the full docs here
- Version 2 of the toon shader is now available! Here are the highlights:
New Features
- Extra Passes are now supported by the shader generator!
- This allows you to add extra passes to your shaders without losing all the features of the shader generator (compared to using
%PostPassesand%PrePasses) - Read more about it here
- This allows you to add extra passes to your shaders without losing all the features of the shader generator (compared to using
- Cloth Shading mode added to all PBR shaders.
- This is still experimental, so please report any issues you encounter
- You can learn more about it here
- ClearCoat Option added to all PBR shaders in default shading mode
- This is still experimental and might not support all sources of lighting, please report any issues you encounter
- You can learn more about it here
- Screen Space Reflections module
- This module allows you to add screen space reflections to any PBR shader.
- Due to its cost - it is not included in any shaders by default, but you can use it via Configurable Shaders
- You can learn more about it here
- The implementation is based on Mochie's shaders
- VRC Light Volumes module
- This module adds support for RED_SIM's VRC Light Volumes
- The module is included and enabled by default in Toon shaders. It is included and disabled by default in PBR (Standard) shaders.
- There is currently no support for this in VFX shaders as they do not sample lightprobes, however - you can implement it in a custom VFX shader by providing a spot for relevant hooks:
%CustomProbesSetupFunctionsand%CustomProbesFunctions. The latter requires creating ahalf3 indirectDiffusevariable prior to the hook, which will then get populated by the light volume color data.
- LTCGI support for Toon shaders both v1 and v2. Thanks @fundale for the contribution!
- Custom GI Diffuse Ramp module for Toon v2 shaders. This allows you to add a toon-style ramp to the diffuse lighting from custom GI sources, e.g. LTCGI.
- Thanks @fundale for the contribution!
- Masked Tweaks module
- This module allows you to tweak your material's parameters based on a mask texture
- You can learn more about it here
- Standard-Based shaders can now adjust Stencil parameters
- You can now occlude baked specular via Realtime Shadows. This effect is not physically accurate but can be helpful when used on dynamic objects
- Vertex Lights now properly light up objects using Standard shaders. This requires enabling vertex lighting in Advanced Settings
- You can now apply in-shader tonemapping on mobile platforms. This can drastically improve the look of your environments on Quest/Android. See the full docs here
- Toon shader now fully sports baking. Recommended to be used with a directional lightmap for best results
- Toon shader now has support for vertex-color masking of outline thickness
- Toon shader can now use outlines without stencil. This can be useful for adding extra detail
- LTCGI effect brightness can now be clamped to a 0-1 range and has a Maximum Brightness setting
- You can now use BIRP Standard shader-style Detail Albedo mixing. This can be toggled via "Legacy Albedo Mixing" when using the Separated Detail Map mode.
- "Baked Specular Occlusion" slider has been added to the Lightmapping section of all the Standard shaders. This can be used to control how much occlusion is applied to baked specular, e.g. from directional lightmaps or lightprobes.
- Added a "Force Discard" toggle to the UI Sheen shader. This can be used to force-discard transparent pixels of the sprite to avoid white line artifacts on the edges of the sprite.
- Shader Generator now supports
%PostVertexfunction blocks in all Templates. This allows you to modify the final output of the Vertex shader, after theVertexBasefunction runs. - The VFX Clouds shader got a major update.
- Now supports Directional Light-based shading, using a color ramp (similar to toon shaders).
- Now supports normal recalculation. This provides more accurate shading that follows the extruded shape of the clouds. This effect can be a little noisy, so you can use the Precision slider to adjust it until it looks good.
- You can now use all 8 UV channels by defining
NEED_UV4/NEED_UV5/NEED_UV6/NEED_UV7in your shader defines. - Configurable shaders can now accept arbitrary modules from anywhere in your project. Using the new "Custom Module" checkbox. This allows you to add modules that are not included in the shader generator.
- Bakery Volumes are now supported in all PBR Shaders. Check out the Lightmapping section for more information.
- The Shader Inspector can now show a Vector2 field for Vector properties. The most basic usage looks like this
%Vector2(Min, Max). Check out the relevant Shader Inspector section for more information. - You can now draw a Bakery Volume Assigner field in the Shader Inspector by using
%BakeryVolumeAssigner(). Check out the relevant Shader Inspector section for more information. - All of the keywords has been limited to their respective shader stages. This should improve shader complication and mesh channel resolving times.
- You can now use a new block type
%CheckedInclude()to only include a shader include file (e.g. a.cgincor.hlsl) if that file actually exists on disk. This is useful when working around conitional includes via keywords that sometimes produce errors in console. Check out the relevant Shader Generator Section for more information. - You can now define a hook point similar to the Template files inside your function blocks. Check out the Template docs for more information.
%ShaderModifiersas well as all of the%PassModifiersvariants (like%MetaPassModifiers) now support overriding. This means that values you set in your.orlshaderfile will override the values in theFragmentBaseor other files of your lighting model and other dependencies. Check out Shader Modifiers for more information.- Render Type selector. All PBR and VFX shaders now have a render type selector. This allows you to switch between Opaque, Cutout, Transparent, and Fade blending modes. There is also a "Custom" option which allows you to specify your own blending parameters.
- This also introduces a new shader tag
ORL_RenderTypewhich allows you to enforce a particular value of the render type, prevent the user from changing it. See the Special Tags section for more information. - The dropdown itself uses a new
%RenderType()drawer function to display the available options and set the relevant properties on the material. See the Render Type section for more information. - This change means that if your render type is one of the preset options - you can use the
ORL_RenderTypetag to enable it without having to set any%ShaderModifiersor%PassModifiersyourself. However, you can still use those blocks to override the blending behaviour thanks to the new sorting and overriding mechanisms mentioned above.
- This also introduces a new shader tag
- You can now bake down procedural materials using something like a Hotspotting shader into static textures and PBR materials. Check out the Map Baker section for more information.
- You can...
v7.0.0 Dev 18
This is a pre-release. To access it you will need to enable "Show Pre-Release Packages" in VCC Settings
Changes since 7.0.0 Dev 17
New Features
- Masked Tweaks module
- This module allows you to tweak your material's parameters based on a mask texture
- You can learn more about it here
- This module was technically included before but was pretty limited and not documented
- The Shader Inspector can now show a Vector3 field for Vector properties. The most basic usage looks like this %Vector3(Hue, Saturation, Value). Check out the relevant Shader Inspector section for more information.
Other Changes
- Updated UnityShaderParser to latest, no visible changes are expected
Full Changelog
Summary
Version 7.0.0 adds lots of new features, improvements, and bugfixes. This release was heavily driven by community requests in my Discord, so if you have any suggestions or feedback - please let me know!
New Shaders
- PBR
- Hotspotting: An auto-hotspotting shader that can be used to quickly set up reusable hotspot materials
- AreaLit: A special variant of the main shader with included AreaLit support.
- Decals: A simple Decalery-compatible decals shader.
- VRSL GI: A special variant of the main shader with included VRSL GI support.
- Toon
- Version 2 of the toon shader is now available! Here are the highlights:
- You can now have up to 4 matcaps, detail normal layers and decals
- Most things can be masked by a mask texture with channel and UV selection
- This allows you to make use of highly tiled detail textures that can preserve high quality detail at low resolutions
- UV Discard is now included by default
- PBR Reflections have been redone and are now based on the ORL Standard shader
- You can find the full docs here
- Version 2 of the toon shader is now available! Here are the highlights:
New Features
- Extra Passes are now supported by the shader generator!
- This allows you to add extra passes to your shaders without losing all the features of the shader generator (compared to using
%PostPassesand%PrePasses) - Read more about it here
- This allows you to add extra passes to your shaders without losing all the features of the shader generator (compared to using
- Cloth Shading mode added to all PBR shaders.
- This is still experimental, so please report any issues you encounter
- You can learn more about it here
- ClearCoat Option added to all PBR shaders in default shading mode
- This is still experimental and might not support all sources of lighting, please report any issues you encounter
- You can learn more about it here
- Screen Space Reflections module
- This module allows you to add screen space reflections to any PBR shader.
- Due to its cost - it is not included in any shaders by default, but you can use it via Configurable Shaders
- You can learn more about it here
- The implementation is based on Mochie's shaders
- VRC Light Volumes module
- This module adds support for RED_SIM's VRC Light Volumes
- The module is included and enabled by default in Toon shaders. It is included and disabled by default in PBR (Standard) shaders.
- There is currently no support for this in VFX shaders as they do not sample lightprobes, however - you can implement it in a custom VFX shader by providing a spot for relevant hooks:
%CustomProbesSetupFunctionsand%CustomProbesFunctions. The latter requires creating ahalf3 indirectDiffusevariable prior to the hook, which will then get populated by the light volume color data.
- LTCGI support for Toon shaders both v1 and v2. Thanks @fundale for the contribution!
- Custom GI Diffuse Ramp module for Toon v2 shaders. This allows you to add a toon-style ramp to the diffuse lighting from custom GI sources, e.g. LTCGI.
- Thanks @fundale for the contribution!
- Masked Tweaks module
- This module allows you to tweak your material's parameters based on a mask texture
- You can learn more about it here
- Standard-Based shaders can now adjust Stencil parameters
- You can now occlude baked specular via Realtime Shadows. This effect is not physically accurate but can be helpful when used on dynamic objects
- Vertex Lights now properly light up objects using Standard shaders. This requires enabling vertex lighting in Advanced Settings
- You can now apply in-shader tonemapping on mobile platforms. This can drastically improve the look of your environments on Quest/Android. See the full docs here
- Toon shader now fully sports baking. Recommended to be used with a directional lightmap for best results
- Toon shader now has support for vertex-color masking of outline thickness
- Toon shader can now use outlines without stencil. This can be useful for adding extra detail
- LTCGI effect brightness can now be clamped to a 0-1 range and has a Maximum Brightness setting
- You can now use BIRP Standard shader-style Detail Albedo mixing. This can be toggled via "Legacy Albedo Mixing" when using the Separated Detail Map mode.
- "Baked Specular Occlusion" slider has been added to the Lightmapping section of all the Standard shaders. This can be used to control how much occlusion is applied to baked specular, e.g. from directional lightmaps or lightprobes.
- Added a "Force Discard" toggle to the UI Sheen shader. This can be used to force-discard transparent pixels of the sprite to avoid white line artifacts on the edges of the sprite.
- Shader Generator now supports
%PostVertexfunction blocks in all Templates. This allows you to modify the final output of the Vertex shader, after theVertexBasefunction runs. - The VFX Clouds shader got a major update.
- Now supports Directional Light-based shading, using a color ramp (similar to toon shaders).
- Now supports normal recalculation. This provides more accurate shading that follows the extruded shape of the clouds. This effect can be a little noisy, so you can use the Precision slider to adjust it until it looks good.
- You can now use all 8 UV channels by defining
NEED_UV4/NEED_UV5/NEED_UV6/NEED_UV7in your shader defines. - Configurable shaders can now accept arbitrary modules from anywhere in your project. Using the new "Custom Module" checkbox. This allows you to add modules that are not included in the shader generator.
- Bakery Volumes are now supported in all PBR Shaders. Check out the Lightmapping section for more information.
- The Shader Inspector can now show a Vector2 field for Vector properties. The most basic usage looks like this
%Vector2(Min, Max). Check out the relevant Shader Inspector section for more information. - You can now draw a Bakery Volume Assigner field in the Shader Inspector by using
%BakeryVolumeAssigner(). Check out the relevant Shader Inspector section for more information. - All of the keywords has been limited to their respective shader stages. This should improve shader complication and mesh channel resolving times.
- You can now use a new block type
%CheckedInclude()to only include a shader include file (e.g. a.cgincor.hlsl) if that file actually exists on disk. This is useful when working around conitional includes via keywords that sometimes produce errors in console. Check out the relevant Shader Generator Section for more information. - You can now define a hook point similar to the Template files inside your function blocks. Check out the Template docs for more information.
%ShaderModifiersas well as all of the%PassModifiersvariants (like%MetaPassModifiers) now support overriding. This means that values you set in your.orlshaderfile will override the values in theFragmentBaseor other files of your lighting model and other dependencies. Check out Shader Modifiers for more information.- Render Type selector. All PBR and VFX shaders now have a render type selector. This allows you to switch between Opaque, Cutout, Transparent, and Fade blending modes. There is also a "Custom" option which allows you to specify your own blending parameters.
- This also introduces a new shader tag
ORL_RenderTypewhich allows you to enforce a particular value of the render type, prevent the user from changing it. See the Special Tags section for more information. - The dropdown itself uses a new
%RenderType()drawer function to display the available options and set the relevant properties on the material. See the Render Type section for more information. - This change means that if your render type is one of the preset options - you can use the
ORL_RenderTypetag to enable it without having to set any%ShaderModifiersor%PassModifiersyourself. However, you can still use those blocks to override the blending behaviour thanks to ...
- This also introduces a new shader tag
v7.0.0 Dev 17
This is a pre-release. To access it you will need to enable "Show Pre-Release Packages" in VCC Settings
Changes since 7.0.0 Dev 16
New Features
- LTCGI support for Toon shaders both v1 and v2. Thanks @fundale for the contribution!
- Custom GI Diffuse Ramp module for Toon v2 shaders. This allows you to add a toon-style ramp to the diffuse lighting from custom GI sources, e.g. LTCGI.
- Thansk @fundale for the contribution!
Bugfixes
- Commented out lines no longer trip the parser. This means you can now comment out ORL Shader Definition blocks and they will be correctly ignored
Other Changes
- Upgraded VRCLightVolumes to v1.0.0, no visible changes expected
Full Changelog
Summary
Version 7.0.0 adds lots of new features, improvements, and bugfixes. This release was heavily driven by community requests in my Discord, so if you have any suggestions or feedback - please let me know!
New Shaders
- PBR
- Hotspotting: An auto-hotspotting shader that can be used to quickly set up reusable hotspot materials
- AreaLit: A special variant of the main shader with included AreaLit support.
- Decals: A simple Decalery-compatible decals shader.
- VRSL GI: A special variant of the main shader with included VRSL GI support.
- Toon
- Version 2 of the toon shader is now available! Here are the highlights:
- You can now have up to 4 matcaps, detail normal layers and decals
- Most things can be masked by a mask texture with channel and UV selection
- This allows you to make use of highly tiled detail textures that can preserve high quality detail at low resolutions
- UV Discard is now included by default
- PBR Reflections have been redone and are now based on the ORL Standard shader
- You can find the full docs here
- Version 2 of the toon shader is now available! Here are the highlights:
New Features
- Extra Passes are now supported by the shader generator!
- This allows you to add extra passes to your shaders without losing all the features of the shader generator (compared to using
%PostPassesand%PrePasses) - Read more about it here
- This allows you to add extra passes to your shaders without losing all the features of the shader generator (compared to using
- Cloth Shading mode added to all PBR shaders.
- This is still experimental, so please report any issues you encounter
- You can learn more about it here
- ClearCoat Option added to all PBR shaders in default shading mode
- This is still experimental and might not support all sources of lighting, please report any issues you encounter
- You can learn more about it here
- Screen Space Reflections module
- This module allows you to add screen space reflections to any PBR shader.
- Due to its cost - it is not included in any shaders by default, but you can use it via Configurable Shaders
- You can learn more about it here
- The implementation is based on Mochie's shaders
- VRC Light Volumes module
- This module adds support for RED_SIM's VRC Light Volumes
- The module is included and enabled by default in Toon shaders. It is included and disabled by default in PBR (Standard) shaders.
- There is currently no support for this in VFX shaders as they do not sample lightprobes, however - you can implement it in a custom VFX shader by providing a spot for relevant hooks:
%CustomProbesSetupFunctionsand%CustomProbesFunctions. The latter requires creating ahalf3 indirectDiffusevariable prior to the hook, which will then get populated by the light volume color data.
- LTCGI support for Toon shaders both v1 and v2. Thanks @fundale for the contribution!
- Custom GI Diffuse Ramp module for Toon v2 shaders. This allows you to add a toon-style ramp to the diffuse lighting from custom GI sources, e.g. LTCGI.
- Thansk @fundale for the contribution!
- Standard-Based shaders can now adjust Stencil parameters
- You can now occlude baked specular via Realtime Shadows. This effect is not physically accurate but can be helpful when used on dynamic objects
- Vertex Lights now properly light up objects using Standard shaders. This requires enabling vertex lighting in Advanced Settings
- You can now apply in-shader tonemapping on mobile platforms. This can drastically improve the look of your environments on Quest/Android. See the full docs here
- Toon shader now fully sports baking. Recommended to be used with a directional lightmap for best results
- Toon shader now has support for vertex-color masking of outline thickness
- Toon shader can now use outlines without stencil. This can be useful for adding extra detail
- LTCGI effect brightness can now be clamped to a 0-1 range and has a Maximum Brightness setting
- You can now use BIRP Standard shader-style Detail Albedo mixing. This can be toggled via "Legacy Albedo Mixing" when using the Separated Detail Map mode.
- "Baked Specular Occlusion" slider has been added to the Lightmapping section of all the Standard shaders. This can be used to control how much occlusion is applied to baked specular, e.g. from directional lightmaps or lightprobes.
- Added a "Force Discard" toggle to the UI Sheen shader. This can be used to force-discard transparent pixels of the sprite to avoid white line artifacts on the edges of the sprite.
- Shader Generator now supports
%PostVertexfunction blocks in all Templates. This allows you to modify the final output of the Vertex shader, after theVertexBasefunction runs. - The VFX Clouds shader got a major update.
- Now supports Directional Light-based shading, using a color ramp (similar to toon shaders).
- Now supports normal recalculation. This provides more accurate shading that follows the extruded shape of the clouds. This effect can be a little noisy, so you can use the Precision slider to adjust it until it looks good.
- You can now use all 8 UV channels by defining
NEED_UV4/NEED_UV5/NEED_UV6/NEED_UV7in your shader defines. - Configurable shaders can now accept arbitrary modules from anywhere in your project. Using the new "Custom Module" checkbox. This allows you to add modules that are not included in the shader generator.
- Bakery Volumes are now supported in all PBR Shaders. Check out the Lightmapping section for more information.
- The Shader Inspector can now show a Vector2 field for Vector properties. The most basic usage looks like this
%Vector2(Min, Max). Check out the relevant Shader Inspector section for more information. - You can now draw a Bakery Volume Assigner field in the Shader Inspector by using
%BakeryVolumeAssigner(). Check out the relevant Shader Inspector section for more information. - All of the keywords has been limited to their respective shader stages. This should improve shader complication and mesh channel resolving times.
- You can now use a new block type
%CheckedInclude()to only include a shader include file (e.g. a.cgincor.hlsl) if that file actually exists on disk. This is useful when working around conitional includes via keywords that sometimes produce errors in console. Check out the relevant Shader Generator Section for more information. - You can now define a hook point similar to the Template files inside your function blocks. Check out the Template docs for more information.
%ShaderModifiersas well as all of the%PassModifiersvariants (like%MetaPassModifiers) now support overriding. This means that values you set in your.orlshaderfile will override the values in theFragmentBaseor other files of your lighting model and other dependencies. Check out Shader Modifiers for more information.- Render Type selector. All PBR and VFX shaders now have a render type selector. This allows you to switch between Opaque, Cutout, Transparent, and Fade blending modes. There is also a "Custom" option which allows you to specify your own blending parameters.
- This also introduces a new shader tag
ORL_RenderTypewhich allows you to enforce a particular value of the render type, prevent the user from changing it. See the Special Tags section for more information. - The dropdown itself uses a new
%RenderType()drawer function to display the available options and set the relevant properties on the material. See the Render Type section for more information. - This change means that if your render type is one of the preset options - you can use the
ORL_RenderTypetag to enable it without having to set any%ShaderModifiersor%PassModifiersyourself. However, you can still use those blocks to override the blending behaviour thanks to the new sorting and overriding mechanisms mentioned above.
- This also introduces a new shader tag
- You can now bake down procedural materials using something like a Hotspotting shader into static textures and PBR materials. Check out the [Map Baker](...
v7.0.0 Dev 16
This is a pre-release. To access it you will need to enable "Show Pre-Release Packages" in VCC Settings
Changes since 7.0.0 Dev 15
Bugfixes
- VRChat Features now hides the material from main view correctly
- Fixed an issue where VertexAnimation would misbehave on Mobile platforms
- Updated VRCLightVolumes implementation to the latest version (0.6.0)
- This improves performance, reduces memory footprint and makes them usable on mobile platforms
Full Changelog
Summary
Version 7.0.0 adds lots of new features, improvements, and bugfixes. This release was heavily driven by community requests in my Discord, so if you have any suggestions or feedback - please let me know!
New Shaders
- PBR
- Hotspotting: An auto-hotspotting shader that can be used to quickly set up reusable hotspot materials
- AreaLit: A special variant of the main shader with included AreaLit support.
- Decals: A simple Decalery-compatible decals shader.
- VRSL GI: A special variant of the main shader with included VRSL GI support.
- Toon
- Version 2 of the toon shader is now available! Here are the highlights:
- You can now have up to 4 matcaps, detail normal layers and decals
- Most things can be masked by a mask texture with channel and UV selection
- This allows you to make use of highly tiled detail textures that can preserve high quality detail at low resolutions
- UV Discard is now included by default
- PBR Reflections have been redone and are now based on the ORL Standard shader
- You can find the full docs here
- Version 2 of the toon shader is now available! Here are the highlights:
New Features
- Extra Passes are now supported by the shader generator!
- This allows you to add extra passes to your shaders without losing all the features of the shader generator (compared to using
%PostPassesand%PrePasses) - Read more about it here
- This allows you to add extra passes to your shaders without losing all the features of the shader generator (compared to using
- Cloth Shading mode added to all PBR shaders.
- This is still experimental, so please report any issues you encounter
- You can learn more about it here
- ClearCoat Option added to all PBR shaders in default shading mode
- This is still experimental and might not support all sources of lighting, please report any issues you encounter
- You can learn more about it here
- Screen Space Reflections module
- This module allows you to add screen space reflections to any PBR shader.
- Due to its cost - it is not included in any shaders by default, but you can use it via Configurable Shaders
- You can learn more about it here
- The implementation is based on Mochie's shaders
- VRC Light Volumes module
- This module adds support for RED_SIM's VRC Light Volumes
- The module is included and enabled by default in Toon shaders. It is included and disabled by default in PBR (Standard) shaders.
- There is currently no support for this in VFX shaders as they do not sample lightprobes, however - you can implement it in a custom VFX shader by providing a spot for relevant hooks:
%CustomProbesSetupFunctionsand%CustomProbesFunctions. The latter requires creating ahalf3 indirectDiffusevariable prior to the hook, which will then get populated by the light volume color data.
- Standard-Based shaders can now adjust Stencil parameters
- You can now occlude baked specular via Realtime Shadows. This effect is not physically accurate but can be helpful when used on dynamic objects
- Vertex Lights now properly light up objects using Standard shaders. This requires enabling vertex lighting in Advanced Settings
- You can now apply in-shader tonemapping on mobile platforms. This can drastically improve the look of your environments on Quest/Android. See the full docs here
- Toon shader now fully sports baking. Recommended to be used with a directional lightmap for best results
- Toon shader now has support for vertex-color masking of outline thickness
- Toon shader can now use outlines without stencil. This can be useful for adding extra detail
- LTCGI effect brightness can now be clamped to a 0-1 range and has a Maximum Brightness setting
- You can now use BIRP Standard shader-style Detail Albedo mixing. This can be toggled via "Legacy Albedo Mixing" when using the Separated Detail Map mode.
- "Baked Specular Occlusion" slider has been added to the Lightmapping section of all the Standard shaders. This can be used to control how much occlusion is applied to baked specular, e.g. from directional lightmaps or lightprobes.
- Added a "Force Discard" toggle to the UI Sheen shader. This can be used to force-discard transparent pixels of the sprite to avoid white line artifacts on the edges of the sprite.
- Shader Generator now supports
%PostVertexfunction blocks in all Templates. This allows you to modify the final output of the Vertex shader, after theVertexBasefunction runs. - The VFX Clouds shader got a major update.
- Now supports Directional Light-based shading, using a color ramp (similar to toon shaders).
- Now supports normal recalculation. This provides more accurate shading that follows the extruded shape of the clouds. This effect can be a little noisy, so you can use the Precision slider to adjust it until it looks good.
- You can now use all 8 UV channels by defining
NEED_UV4/NEED_UV5/NEED_UV6/NEED_UV7in your shader defines. - Configurable shaders can now accept arbitrary modules from anywhere in your project. Using the new "Custom Module" checkbox. This allows you to add modules that are not included in the shader generator.
- Bakery Volumes are now supported in all PBR Shaders. Check out the Lightmapping section for more information.
- The Shader Inspector can now show a Vector2 field for Vector properties. The most basic usage looks like this
%Vector2(Min, Max). Check out the relevant Shader Inspector section for more information. - You can now draw a Bakery Volume Assigner field in the Shader Inspector by using
%BakeryVolumeAssigner(). Check out the relevant Shader Inspector section for more information. - All of the keywords has been limited to their respective shader stages. This should improve shader complication and mesh channel resolving times.
- You can now use a new block type
%CheckedInclude()to only include a shader include file (e.g. a.cgincor.hlsl) if that file actually exists on disk. This is useful when working around conitional includes via keywords that sometimes produce errors in console. Check out the relevant Shader Generator Section for more information. - You can now define a hook point similar to the Template files inside your function blocks. Check out the Template docs for more information.
%ShaderModifiersas well as all of the%PassModifiersvariants (like%MetaPassModifiers) now support overriding. This means that values you set in your.orlshaderfile will override the values in theFragmentBaseor other files of your lighting model and other dependencies. Check out Shader Modifiers for more information.- Render Type selector. All PBR and VFX shaders now have a render type selector. This allows you to switch between Opaque, Cutout, Transparent, and Fade blending modes. There is also a "Custom" option which allows you to specify your own blending parameters.
- This also introduces a new shader tag
ORL_RenderTypewhich allows you to enforce a particular value of the render type, prevent the user from changing it. See the Special Tags section for more information. - The dropdown itself uses a new
%RenderType()drawer function to display the available options and set the relevant properties on the material. See the Render Type section for more information. - This change means that if your render type is one of the preset options - you can use the
ORL_RenderTypetag to enable it without having to set any%ShaderModifiersor%PassModifiersyourself. However, you can still use those blocks to override the blending behaviour thanks to the new sorting and overriding mechanisms mentioned above.
- This also introduces a new shader tag
- You can now bake down procedural materials using something like a Hotspotting shader into static textures and PBR materials. Check out the Map Baker section for more information.
- You can now explicitly turn on passing normal maps to the GSAA calculation. Leaving it off can help avoid a "pixelation" effect on high frequency normal maps.
- This is turned off by default on all materials. You can turn it on for your existing materials via Tools > orels1 > Upgrade Materials.
- Toon shaders now properly support Vertex Lights.
- Toon shaders now have a new Raise Minimum Light checkbox which allows you to bump the minimum brightness of your material in environments with no lighting data.
- Toon shaders can now sample ligh...