Features
Shader Features
Physically based lighting
As an extension of the Unity Standard (or Lit in URP) shader, OmniShade PBR also takes as input a Metallic and Smoothness parameter to compute the lighting. Metallic controls the "metalness" of a material, and Smoothness the surface roughness. The shader is built using the PBR Master Node, supporting all of Unity's lighting features.
Metallic map
Used as a mask for the Metallic and Smoothness values. The Metallic value is taken from the red channel, and Smoothness from the alpha channel.
Normal map
Normal maps are a special kind of texture that allow you to add surface detail such as bumps, grooves, and scratches to a model which catch the light as if they are represented by real geometry. Secondary Normal map supported as well.
Occlusion map
Occlusion map is a greyscale image providing information about which areas of the model should receive high or low indirect lighting.
Emission map
Emission is the light emanating from an object. The Emission Map is a mask for the light.
Rim light
Adds a light around the silhouette of the object, highly versatile for special effects, lighting detail, or emphasis. Tunable parameters include color, amount, and contrast. Also supports invert, and specifing a rim direction (in worldspace) as well.
Reflection
Applies a separate reflection on the object taken from a cube map. Parameters include color and reflection amount. If Mask With Rim is enabled, it works in pair with the rim's fresnel effect to strengthen the reflection at the edges. Can also mask it with the Metallic Map.
Vertex colors
Used for vertex painting colors with tools such as Polybrush. Supports all RGBA channels. Toggleable on or off, with an amount and contrast setting. The channels can be used as a mask on the three texture layers and the Detail Map for texture painting effects as well. Be aware that the color resolution depends on the number of vertices in the mesh.
Detail map
Detail maps, or secondary maps, blend in granular details to the base texture using either a multiplicative or alpha-based blend mode. The alpha is sampled from the alpha-channel of the texture and Detail Color. There is also an option to mask the detail map with the vertex color alpha channel, useful in vertex painting.
Layers
Similar to Photoshop layers, these are useful for decals or terrain splatting with tools like Polybrush. The layers are rendered in order from 1 to 3, so that layer 3 is on top. The masking is controlled via the layer's alpha channel, in addition to a Color parameter. Also supports masking with vertex color RGB channels for texture painting.
Height-based colors
Highly versatile effect, this is useful for height-based coloring such as rendering the water line, tree roots, or even indirect lighting. Height can be set in either local or world space. Color, thickness, and edge thickness can be adjusted. You can also apply a Height Texture as the background with this effect.
Shadow Overlay
This effect projects a texture over objects using world-space positions, useful for creating global effects like rolling cloud shadows or tree leaf overhangs. It is fully animatable through the shader, either as a scrolling or ping-pong movement. Speed and sway amount are adjustable.
Plant Sway
Useful on vegetation to simulate movement by wind. Uses a vertex-shader based animation dependent on object height. Animation is fully done in the shader, and plant type can be set for plant or leaves. The sway amount and speed are adjustable. The phase variation affects the synchronicity of the objects affected.
Camera Fade
Fades the transparency of the object as it approaches the camera. Use Fade Start Distance and Fade End Distance to adjust when the fading occurs.
Opaque and transparent versions
Included is an opaque and transparent version. If you need additional culling or blend modes, you can duplicate a new shader graph and adjust these from the Material Options on the PBR Master Node.
Other
Progressively adaptive performance
Despite offering a wide range of features, OmniShade PBR is blazingly fast through the use of shader variants, only doing the minimal calculations needed for any set of enabled features, which it is able to detect automatically. This allows precise and granular control over the quality and performance to achieve maximum value.
Animating Textures
Included is a OmniShadePBRAnimateTexture component which can be used for easily animating the movement of any texture in the shader. Animation type can be either slide or ping-pong.
Shader Graph
We in the field understand that continual support is paramount to a product's viability in production. That's why we chose to build OmniShade PBR with Unity Shader Graph, so you can expect it to fully function with all of Unity's great lighting features, and have the widest compatibility going forwards. It will get Built-In support in Unity 2021.2, and will only get more features and faster with Unity updates. We also used a highly modular design, with 15+ subgraphs, so you can reuse any of the components in shader graphs you design yourself.
Last updated