Features
Last updated
Last updated
As an extension of the Unity (or Lit in URP) shader, OmniShade PBR also takes as input a and parameter to compute the lighting. Metallic controls the "metalness" of a material, and Smoothness the "microsurface detail". The shader is built using the , supporting all of Unity's lighting features.
Used as a mask for the and values. The Metallic value is taken from the red channel, and Smoothness from the alpha channel.
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.
is a greyscale image providing information about which areas of the model should receive high or low indirect lighting.
is the light emanating from an object. The Emission Map is a mask for the 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.
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.
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.
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.
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.
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.
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
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.
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
Used for with tools such as . 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.
Similar to Photoshop layers, these are useful for decals or with tools like . 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.
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 on the PBR Master Node.
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 , so you can expect it to fully function with all of Unity's great lighting features, and have the widest compatibility going forwards. We also used a highly modular design, with 15+ subgraphs, so you can reuse any of the components in shader graphs you design yourself.