Website|YouTube| WebGL Demo|Discord Support |Email OmniShade is a highly performant shader designed for mobile devices. It is packed with a multitude of graphics techiques allowing it to achieve almost any look from realistic to toon to anime, yet also blazingly fast due to a progressive system of calculating only what it needs to for any setting.
It was designed to bridge the gap between Unity’s Standard Shader and mobile shaders, but can often look even better than desktop-class shaders due to its high level of stylization, combination, and customization.
All of the sample images above were rendered using only OmniShade. It can achieve almost any look, can be used for games with complex or simple lighting – regardless, the performance is always optimal. It is quite possibly the only shader you will need for your entire game.
Feature summary All of the below can be used in any combination with optimal performance!
It’s true, the Standard Shader is still too slow for mobile devices. And let’s face it, giving an artist Shader Graph is like giving a baby a gun. But it doesn’t mean you have to settle for Diffuse shader.
It means the shader will compile into different variants depending on what features you enable.
So, if you only use Diffuse and Rim Lighting, a minimal shader will be generated just for that to run on the GPU. If you were to add Normal Map, a little more code will be generated and another shader will be made for that variation. It detects what you use, and always creates the minimal GPU code necessary for optimal performance.
This Shader makes even the editor faster! I’m loving it but developing for the Quest 2 and having issues when I run it. Seems like it’s only running in one eye and having clipping issues, did I mess something up? I am STOKED to use this Shader almost exclusively if I can figure out what my silly issue is lol thanks in advance!
Unfortunately I’ve never tested this shader on a VR device, although I’ve heard of one other person use it successfully in VR…
There are some depth and culling settings at the bottom of the shader which control the visibility.
I would start with those, like try set Culling to Off, Z Write to Off, Z Test to Always, and see if it makes a difference.
After updating to lastest version I got this error :
Shader error in ‘OmniShade/Triplanar URP’: invalid subscript ‘viewReflectDir’ at Assets/Shaders/OmniShade/Shaders/OmniShadeCore.cginc(911) (on d3d11)
That’s a great suggestion, I’ll add support for using UV0 on the main tex in triplanar.
Also, thanks for the error report, will be fixed in the next patch, out later this week.
Hi, just updated and I now got 2 error on Standard URP :
Shader error in ‘OmniShade/Standard URP’: ‘reflect’: no matching 2 parameter intrinsic function; Possible intrinsic functions are: reflect(floatM|halfM|min10floatM|min16floatM, floatM|halfM|min10floatM|min16floatM) at Assets/Shaders/OmniShade/Shaders/OmniShadeCore.cginc(810) (on d3d11) Shader error in ‘OmniShade/Standard URP’: undeclared identifier ‘adjNor_world’ at Assets/Shaders/OmniShade/Shaders/OmniShadeCore.cginc(810) (on d3d11) Unity 2020.3.29 - URP 10.8.1
Thanks for the bug report, indeed you are correct!
I will have it fixed early next week.
In the meantime, you can workaround this by simply enabling the Diffuse, Rim Light, MatCap, or Specular feature, or remove the normal map and that should make the error go away.
Really cool assets!
Hope you are bringing more of the “mobile features” like triplanar mapping and vertex swaying for vegetation, to the PBR version too
Another cool feature would be tessellation… but I should stop dreaming now, haha.
I have updated my project from 2020.3 (which works fine) but when building the project I get the following error message. I have reimported the asset but still get the same message.