Better Shaders for 2019/2020 is now free for personal use. Experience the joy of being able to write modular shaders in text, cross compiled to all 3 render pipelines, on 2019 and 2020.
Better Shaders 2021 is now available
Better Shaders allows you to:
• Write shader in a style similar to Unity's old Surface Shader system
• Shaders are automatically compiled into URP, HDRP, or Standard
• Shaders can stack allowing you to layer and add functionality to existing shaders
• Full shader source can be exported from the system for distribution on the Asset Store
• No special exporting or tooling, these act like native shaders in Unity
The Asset Store version is for entities or companies with revenue or funding less than $200k in the last 12 months. Enterprise licensing is available by contacting us directly.
If you've ever looked at the source to an HDRP shader graph shader and thought "12,000 lines of shader code, for a shader that just has a simple texture? What is all this?" then this is the asset for you. You can easily port Surface Shaders to Better shaders in minutes, and then use those shaders in any render pipeline.
Code is written in standard HLSL, with a unified API across all 3 render pipelines, so you can write code and not worry about compatibility anymore.
Have you ever wanted to add snow to an existing shader? Or make it compatible with another assets compute based drawing? Shaders written with Better Shaders can stack, allowing you to add different effects on top of existing shaders without writing any code.
Includes a collection production ready shader stacks, which can be combined any way you like:
• Lit, Tessellation, and Triplanar
• Height/Slope based moss
• Wetness (with Enviro/Weather Maker support)
• Puddles
• Snow (with Enviro/Weather Maker support)
* Wind Particulate
* Vegetation Studio Instancing support
* UV warping
* Texture Layering (with vertex or splat masks)
Also included are a number of examples of common techniques, like screen space UVs, grab pass, depth output modification, multi-pass examples, alternative lighting models, all working across all render pipelines.
Included are stackables for instant integration with
- Vegetation Studio Instancing Support
- Bakery Lightmapping
Better Shaders supports the Build In/Standard Pipeline, URP in 2019LTS and 2020.3LTS, and HDRP in 2019LTS and 2020.3LTS.
Future version compatibility may require an upgrade fee due to the extensive work of maintaining compatibility with Unity's ever changing SRP platforms.
Join us on our Discord Group or read the Documentation
Note that Better Shaders installs itself as a Package, and appears under your Packages folder, not under Assets.
Some popular assets using Better Shaders:
Better Shaders 1.9.19
- Add abstraction for getting correct world potision for vertex/tessellation stages
Better Shaders 1.9.18
- Fix to unlit shader in VR in HDRP
Better Shaders 1.9.17
- Fix issue in DepthNormal's pass in URP2020
Better Shaders 1.9.16
- Fixing issue in shadow caster template on standard.
Better Shaders 1.9.15
- Removing 2021 export option which does nothing.
Better Shaders 1.9.14
- Fix to multi compile flag in LOD dithering stackable
Better Shaders 1.9.13
- Fix to texcoord2 issue on standard pipeline
- _ENABLE_FOG_ON_TRANSPARENT defined by default in HDRP
BetterShaders 1.9.12
- Fix to Motion Vectors in HDRP2020
- FIx to alpha lighting vector in HDRP2020, 2019
Better Shaders 1.9.11
- Support for Geometric Specular AA in Surface structure for HDRP
Better Shaders 1.9.10
- Fixes to bakery's fresnel calculations and support for SpecularGI in URP
Better Shaders 1.9.9
- Always compute proper viewdir in HDRP adapter
Better Shaders 1.9.8
- Fix to calculation of screen space UVs in shadow pass on BIRP
- Fix to instance properties not getting written correctly
Better Shaders 1.9.7
- Ability to override shadow masks in HDRP
Better Shaders 1.9.6
- More robust handling of normals for Bakery
Better Shaders 1.9.5
- Fix to debug display modes in HDRP2020
Better Shaders 1.9.4
- Fix to bakery compile error
- Fix to tessellation when using extraV2f4-7
Better Shaders 1.9.3
- Stackable for Bakery Support; add bakery support to any shader easily
- Template fixes to URP
- More features to optimize interpolator usage
Better Shaders 1.9.2
- Fix to single pass stereo instance rendering on BIRP
Better Shaders 1.9.1
- Fix to stackable mutation when shader_feature_local_fragment is used
Better Shaders 1.9.0
- Centroid Sampling now supported, along with other markings on interpolators
- It's now possible to mark interpolators with #if blocks, so that even though they are detected in the shader, they are only present in certain variants of the code
Better Shaders 1.86
- Fix to function stacking when stack function name is subset of upper stack name
Better Shaders 1.85
- IMPORTANT: DELETE THE EXISTING INSTALL BEFORE DOWNLOADING
Better shaders now installs itself as a package instead of as an asset. This means it's found in your packages directory, not under assets
Better Shaders 1.84
- Fix to depth map under HDRP
Better Shaders 1.83
- Fix to tessellation when using distance mode in HDRP
- TransparentDepthPrePass must be explicitly added via options block for HDRP
Better Shaders 1.82
- Fix to specular occlusion under HDRP
- Make assembly search more robus
Better Shaders 1.81
- Fix to compile error under HDRP2020
Better Shaders 1.8
- You can now override templates on a per-SRP basis from within the shader. This allows you to write your own templates, changing the SRP specific parts of the shader for things like new lighting models, and create a stackable shader to apply this new template to existing shaders. See documentation for details.
Better Shaders 1.76
- Fix to Unlit shader on Standard
- Fix to texcoord3 issue on Standard
Better Shaders 1.75
- Blackboard system available to pass data between stackables without global variables, as these will not be compatible with the new DXC compiler Unity is moving to
- SV_IsFrontFace is used instead of VFace (DXC compile compatiblity fix)
- Fix to fogcoord on Standard pipeline
- Added ForwardDepthOnly pass ot unlit shaders on HDRP 2020
- Bug fixes and parser improvements
Better Shaders 1.74
- Fix to HDRP2020 and 2019 templates causing a compile error
Better Shaders 1.73
- Added GetSun function, which returns the main light direction and color in URP/Standard, and the first directional light in the light list in HDRP.
- Fix to multi stacking variable mutation when stacking more than 2 of the same shader
- Added ability to strip GBuffer pass
- GBuffer Pass removed from URP, since Unity didn't ship the rest of it yet.
Better Shaders 1.72
- Added support for World Space Normals
- Added support for vface semantic
- Added DoubleSided stackable example, with backface normal options
- Fix to specular workflow mode in URP
- Fix to HDRP 2020.3 single pass VR
- Tangent basis calculation more correctly aligned with each pipelines code
Better Shaders 1.71
- Fix to compile error in URP2020 when lightmapping
Better Shaders 1.7
- The TBNMatrix wasn't taking tangent.w into account, causing normal mapping issues with flipped UVs. This is fixed, but a matrix without the tangent.w involved is used for computing tangentSpaceViewDir.
- Added normal sampler in Lit shader to prevent the windows compiler from stripping sampler_albedoMap.
- Motion vector pass disabled by default in HDRP2020
Better Shaders 1.68
- Fix to motion vector pass not compiling in some cases
- Removed normal flip in chain function, as it was only needed for MicroSplat, which uses a flipped normal packing
- Changes to shader packager (see git depot)
Better Shaders 1.67
- Pass defines added for each pass
- Fix to tangentViewDir being wrong in some cases
- Many small fixes to template issues
- Several fixes to block parser, making it more robust
Better Shaders 1.66
- Fix to decals drawing over objects in HDRP2020
- Fix to potential compile error in 2019URP template
- New demo scene
Better Shaders 1.65
- Fix to normals when no normal map is assigned in Lit shader
- Proper Unlit pass added for HDRP2020.2 templates
- You can now mark shaders as non stackable, so they will only be included once
- Several fixes to templates in various multi-compile configurations caught by the unit test system
Better Shaders 1.6
- Fix to motion vector pass in HDRP 10.x
- Removed debug features from Forward pass, as they were causing compile errors on some shaders
- Many fixes and improvements to the shader packager and Better Shaders integration
Better Shaders 1.5
- Support for additional passes for things like outline shaders, etc. (Outline shader included to demo)
- Templates added for HDRP 10.x, and URP 10.x.
Better Shaders 1.4
- Added support for Pass Blocks, allowing you to override pass settings on individual or all passes.
- Removed Cull/Offset options, as these can now be better done with Pass Blocks.
Better Shaders 1.3
- Added blocks for custom CBuffers and Instanced property blocks. These will get correctly merged/mutated across subshaders and stacked shaders.
Better Shaders 1.2
- Added support for sampling depth buffers and normal buffers across pipelines. Also, an API for getting world position from the depth buffer.
Better Shaders 1.1
- Grab Pass Support. Uses Grab Pass in Standard, and Opaque Texture sampling in URP/HDRP.
- Support for the Shader Packer importing shaders directly from Better Shaders
- Fixed screenUVs not being correct in URP
- Small template fixes