Skip to content

Releases: orels1/orels-Unity-Shaders

v7.3.0 Dev 1

10 Mar 09:54
3a5ab3b

Choose a tag to compare

v7.3.0 Dev 1 Pre-release
Pre-release

This is a pre-release

📖 Documentation 📖

Summary

Version 7.3.0 focuses on code cleanup, bugfixes and minor improvements

New Features

  • Specular and Occlusion Toon modules now have Channel selectors for their input maps
  • Added a way to mask the Emission in Toon shader by a UV tile
  • Added support for a %SkipAlwaysIncludedBlocks() directive within shaders
    • You can uses this, for example, within your Lighting Model to skip any base modules when generating your shader
    • This is useful when completely detaching from the built-in modules to build something of your own

Bugfixes

  • Fixed an issue where Metallic and Smoothness remaps didn't work on the Layered Material layer 3
  • Fixed Texture3Ds being rewritten to Texture2Ds during sampler macro stripping process
  • Fixed an issue with shader parsing when the %ShaderName() block contains parenthesis in the name
    • E.g. %ShaderName("Test (For Real)") no longer breaks

Changes

  • Improved the Audio Link module UI for the Toon shader
  • Removed extra sampler definitions which were adding extra complexity for no real benefit
  • Alpha Scale now goes between -2 and 2 in the Toon shader
    • Values below 0 invert the albedo map
  • Added a utility to compute World Space position from depth
  • Improved rendering of the Toon Cutout shader in VRChat Transparent personal mirrors
  • Shaders now default to using float2 UV channels
    • You can use NEED_FLOAT4_UV to pass them all as float4
  • Improved uv handling in the toon shader, reducing the interpolator counts
  • Updated Unity Shader Parser dependency
    • No major changes in the generator as a part of this

Full Diff: v7.2.0...v7.3.0-dev.1

v7.2.0

24 Jan 01:42
fc11233

Choose a tag to compare

📖 Documentation 📖

Summary

Version 7.2.0 adds a new Snow Coverage shader

Unity.Hakqrhagsh.mp4

New Shaders

  • Snow Coverage: A PBR shader with snow overlay support
    • Comes in 2 versions: Regular and Tessellated
      • Regular version allows you to define a direction the snow should appear from, controls for how covered the object is, and various masking options
      • Tessellated version extends the above to add support for 3D snow piles created by subdividing and deforming the mesh via shader
        • This version will be a noticeable performance hit on lower-end hardware, but is very viable on VR-capable Desktop GPUs

Bugfixes

  • The Shader Parser no longer fiales to parse a module if it includes tabs
  • Fixed an issue where combining particular modules could break functionality
    • E.g. combining VRCLV and Depth Fade would result in depth fade not working

Changes

  • Special - this is a new sub-section of the ORL Shaders list, along with VFX and Toon. Anything that is tailored to a super narrow scenario that wouldn't be considered a pure VFX will go here from now on
    • Technically things like Neon Light and Puddles would also fall into this category, but to avoid breaking changes - I will not be touching those
  • %Vector2() and %Vector3() drawers now show the property name
    • This addresses #109
  • Added a number of textures for the snow glitter as a part of the generator package
  • Updated Depth Fade module to work more reliably with every shader type
  • The "Toon" and "Empty Toon" shader templates (under Create -> Shader -> orels1 menu) now use Toon v2 lighting model
    • Also added "Toon Transparent" and "Toon Transparent PrePass" templates for faster development
  • Added a built-in SDF library with some simple SDF functions and smooth min operations
    • Shapes: Circle, Box, Rounded Box, Rhombus
      • Available as SDF<ShapeName>, e.g. SDFRoundedBox()
    • Smooth Mins: Exponential, Quad, Cube, and Quart
      • Available as SDFMin<Type>, e.g. SDFMinCube(dist1, dist2, smoothing)
  • Dramatically removed variant counts of all shaders by reducing fog keywords

Full Diff: v7.1.1...v7.2.0

v7.2.0 Dev 3

10 Jan 06:48
7453e3c

Choose a tag to compare

v7.2.0 Dev 3 Pre-release
Pre-release

This is a pre-release

📖 Documentation 📖

Changes since 7.2.0-dev.2

Bugfixes

  • Using a %Vector2() drawer no longer breaks layout for the following fields

Summary

Version 7.2.0 adds a new Snow Coverage shader

Unity.Hakqrhagsh.mp4

New Shaders

  • Snow Coverage: A PBR shader with snow overlay support
    • Comes in 2 versions: Regular and Tessellated
      • Regular version allows you to define a direction the snow should appear from, controls for how covered the object is, and various masking options
      • Tessellated version extends the above to add support for 3D snow piles created by subdividing and deforming the mesh via shader
        • This version will be a noticeable performance hit on lower-end hardware, but is very viable on VR-capable Desktop GPUs

Bugfixes

  • The Shader Parser no longer fiales to parse a module if it includes tabs

Changes

  • Special - this is a new sub-section of the ORL Shaders list, along with VFX and Toon. Anything that is tailored to a super narrow scenario that wouldn't be considered a pure VFX will go here from now on
    • Technically things like Neon Light and Puddles would also fall into this category, but to avoid breaking changes - I will not be touching those
  • %Vector2() and %Vector3() drawers now show the property name
    • This addresses #109
  • Added a number of textures for the snow glitter as a part of the generator package

Full Diff: v7.1.1...v7.2.0-dev.3

v7.2.0 Dev 2

10 Jan 02:15
df8f6cf

Choose a tag to compare

v7.2.0 Dev 2 Pre-release
Pre-release

This is a pre-release

📖 Documentation 📖

Changes since 7.2.0-dev.1

New Features

  • The snow coverage shader now has 2 glitter modes
    • The docs are not fully finished yet, but you can take a look here

Bugfixes

  • The Shader Parser no longer fiales to parse a module if it includes tabs

Changes

  • %Vector2() and %Vector3() drawers now show the property name
    • This addresses #109
  • Added a number of textures for the snow glitter as a part of the generator package

Summary

Version 7.2.0 adds a new Snow Coverage shader

Unity.Hakqrhagsh.mp4

New Shaders

  • Snow Coverage: A PBR shader with snow overlay support
    • Comes in 2 versions: Regular and Tessellated
      • Regular version allows you to define a direction the snow should appear from, controls for how covered the object is, and various masking options
      • Tessellated version extends the above to add support for 3D snow piles created by subdividing and deforming the mesh via shader
        • This version will be a noticeable performance hit on lower-end hardware, but is very viable on VR-capable Desktop GPUs

Bugfixes

  • The Shader Parser no longer fiales to parse a module if it includes tabs

Changes

  • Special - this is a new sub-section of the ORL Shaders list, along with VFX and Toon. Anything that is tailored to a super narrow scenario that wouldn't be considered a pure VFX will go here from now on
    • Technically things like Neon Light and Puddles would also fall into this category, but to avoid breaking changes - I will not be touching those
  • %Vector2() and %Vector3() drawers now show the property name
    • This addresses #109
  • Added a number of textures for the snow glitter as a part of the generator package

Full Diff: v7.1.1...v7.2.0-dev.2

v7.2.0 Dev 1

05 Jan 02:42
8bc9d86

Choose a tag to compare

v7.2.0 Dev 1 Pre-release
Pre-release

This is a pre-release

📖 Documentation 📖

Summary

Version 7.2.0 adds a new Snow Coverage shader

Unity.Hakqrhagsh.mp4

New Shaders

  • Snow Coverage: A PBR shader with snow overlay support
    • Comes in 2 versions: Regular and Tessellated
      • Regular version allows you to define a direction the snow should appear from, controls for how covered the object is, and various masking options
      • Tessellated version extends the above to add support for 3D snow piles created by subdividing and deforming the mesh via shader
        • This version will be a noticeable performance hit on lower-end hardware, but is very viable on VR-capable Desktop GPUs

Changes

  • Special - this is a new sub-section of the ORL Shaders list, along with VFX and Toon. Anything that is tailored to a super narrow scenario that wouldn't be considered a pure VFX will go here from now on
    • Technically things like Neon Light and Puddles would also fall into this category, but to avoid breaking changes - I will not be touching those

Full Diff: v7.1.1...v7.2.0-dev.1

v7.1.1

03 Jan 03:08
4bc1b03

Choose a tag to compare

📖 Documentation 📖

Bugfixes

  • Fixed an Exception when a new texture property is added to the shader while inspecting a connected material

Full Diff: v7.1.0...v7.1.1

v7.1.0

02 Jan 06:14
61100af

Choose a tag to compare

📖 Documentation 📖

Summary

Version 7.1.0 fixes issues with the "Sampling Macro Stripping" generation mode, this is required for the shaders to be supported by d4rkpl4y3r's avatar optimizer.

Bugfixes

  • Fixed broken shaders being generated when exporting with "Strip Sampling Macros" option
    • This shoudl allow the shaders to support texture combining via d4rkpl4y3r's avatar optimizer
  • Layered Material Mask Sliders (Smoothness/AO) now work correctly
  • Most included Inspector Drawers now correctly pass down the [Tooltip] property attribute, improving documentation

Changes

  • Layered Material now supports UV selection for the Mask texture
  • Layered Material's Base Layer now supports UV selection
  • Added Tooltips to the Layered Material shader
  • Added a new way to add tooltips to a shader, using a *.orlloc file, this is still in development on a separate feature/localization branch

Full Diff: v7.0.0...v7.1.0

v7.0.0

24 Dec 05:20
94e46c7

Choose a tag to compare

📖 Documentation 📖

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

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 %PostPasses and %PrePasses)
    • Read more about it here
  • 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: %CustomProbesSetupFunctions and %CustomProbesFunctions. The latter requires creating a half3 indirectDiffuse variable 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.
  • 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
  • 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 %PostVertex function blocks in all Templates. This allows you to modify the final output of the Vertex shader, after the VertexBase function 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_UV7 in 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 .cginc or .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.
  • %ShaderModifiers as well as all of the %PassModifiers variants (like %MetaPassModifiers) now support overriding. This means that values you set in your .orlshader file will override the values in the FragmentBase or 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_RenderType which 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_RenderType tag to enable it without having to set any %ShaderModifiers or %PassModifiers yourself. However, you can ...
Read more

v7.0.0 Dev 26

22 Dec 03:56
e2bbd74

Choose a tag to compare

v7.0.0 Dev 26 Pre-release
Pre-release

This is a pre-release. To access it you will need to enable "Show Pre-Release Packages" in VCC Settings

📖 Dev Branch Documentation 📖

Changes since 7.0.0 Dev 25

Bugfixes

  • Fixed Smoothness controls in the Layered Material shader
  • Fixed an issue with VRSL GI applying in the Add Pass, creating a white square outline around the VRSL Light
  • Fixed precision issues with the Neon Light shader
  • Fixed transparency blending issues in the UI Shader
  • Merged #103 which addresses issues with Main View settings in the VRCFeatures module

Changes

  • Upgraded VRCLV to latest and made them compatible with the UI shaders
  • Adjusted UI Layered Parallax for better performance and tiling/offset behaviour
  • Adjusted max matcap blur level in the Toon shader

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

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 %PostPasses and %PrePasses)
    • Read more about it here
  • 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: %CustomProbesSetupFunctions and %CustomProbesFunctions. The latter requires creating a half3 indirectDiffuse variable 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.
  • 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
  • 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 %PostVertex function blocks in all Templates. This allows you to modify the final output of the Vertex shader, after the VertexBase function 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_UV7 in 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 .cginc or .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.
  • %ShaderModifiers as well as all of the %PassModifiers variants (like %MetaPassModifiers) now support overriding. This means that values you set in your .orlshader file will override the values in the FragmentBase or 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_RenderType which 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 ...
Read more

v7.0.0 Dev 25

31 Aug 01:15
31c1a59

Choose a tag to compare

v7.0.0 Dev 25 Pre-release
Pre-release

This is a pre-release. To access it you will need to enable "Show Pre-Release Packages" in VCC Settings

📖 Dev Branch Documentation 📖

Changes since 7.0.0 Dev 24

New Features

  • %ExtraPass block now supports a new parameter ExtraPassInheritType
    • You can use ExtraPassInheritType.SkipParentBlocks as 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 %PrePasses and %PostPasses
  • Toon shaders now have a FOG_DISABLED define 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_ARGS and TEXTURE2D_PARAM instead of separate Texture2D + 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

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 %PostPasses and %PrePasses)
    • Read more about it here
  • 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: %CustomProbesSetupFunctions and %CustomProbesFunctions. The latter requires creating a half3 indirectDiffuse variable 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.
  • 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
  • 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 %PostVertex function blocks in all Templates. This allows you to modify the final output of the Vertex shader, after the VertexBase function 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_UV7 in 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 .cginc or .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.
  • %ShaderModifiers as well as all of the %PassModifiers variants (like %MetaPassModifiers) now support overriding. This means that values you set in your .orlshader file will override the values in the FragmentBase or 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...
Read more