FAQ
What is the difference between OmniShade and OmniShade PBR?
The main difference is that OmniShade PBR uses physically accurate lighting and was built using Shader Graph, while OmniShade offers more stylized lighting and was hand-coded from the ground up. They share some features, but differ greatly in the lighting quality, performance, and implementation.
The PBR version, as an extension of the Standard Shader, is fully integrated with all of Unity's lighting features and pipelines. With a physically based model, the material can be tuned once and look realistic in any lighting condition. And since it was built using Shader Graph, even non-coders will be able to understand and make modifications.
The non-PBR version on the other hand, is far faster in raw performance as it was written from the ground up to ensure performance on mobile platforms. As such, it is more limited in its integration with Unity lighting features, and the non-PBR results can end up looking cartoony rather than realistic. It is also able to offer more features, customization and performance through its code-based implementation.
In short, if you are developing for mobile or not creating a PBR-looking game, then the non-PBR version will likely suit you more. If you've already been using the Standard Lit shader, then the PBR version will be a straight-forward upgrade. Of course, you can also always use both in a URP project as well.
Is this compatible with X platform?
Yes. Because OmniShade PBR was built using Unity Shader Graph, it is fully integrated with all Unity lighting systems, and compatible with any platform Shader Graph is. If it works with the Standard Lit shader, it will work with this shader and with similar performance. Plus, it will only get better and faster over time with Shader Graph package updates.
Can I do vertex color and texture painting with a tool like Polybrush?
Yes, you can! We offer one of the most Unity-integrated shaders that support Polybrush color and texture painting. Learn how to paint textures using the layers (the video tutorial is with non-PBR OmniShade, but the technique is the same). Note, the latest version (1.1.6) of Polybrush may have bugs painting meshes (particularly on URP), so I recommend downgrading to 1.0.2 if you experience any issues.
How do I get two-sided rendering, or additive blending?
This will require you to duplicate the graph at this time, but is otherwise quite simple. Duplicate the graph, and open the new one. In the Graph Settings menu, there are settings to adjust two-sided rendering and blend modes.
What is physically based rendering?
PBR is the concept of applying physically accurate lighting, based on principles like energy conservation or reflections based on microfacets. Although a non-PBR shader can be made to look as good as a PBR shader, it would require considerable tuning -- and re-tuning were the lighting conditions to change. The Unity Standard shader is a PBR shader, and what OmniShade PBR is based on. The atmosphere of realism seen in recent AAA games can largely be attributed to PBR rendering.
Why is it so slow to compile the shader?
Updating to the latest Unity version may help with Shader Graph build times. Moreover, if you remove the Active Targets to only the ones you need (ie., remove HDRP if you only use URP), that will also significantly reduce compilation time.
Can I use this shader in my commercial game?
Absolutely! No attribution is required, although appreciated.
Last updated