Minimum Unity Version Required:
2017.1.3f1 | Asset Published Date:
20 Jul 2018 |
Publisher: Andrew C.
| Mac Demo
Use these Physically-Based
triplanar surface shaders in Unity 2017.x and Unity 2018.x
to easily texture objects beautifully without the need for skinning/UV-maps, and eliminate terrain texture stretching.FEATURE SUMMARY
— Quickly texture a mesh without having to skin/UV-map it.
— Eliminate stretching for textures on terrains and meshes.
This is especially useful for jagged terrain, rock/glacier striations, and bricks.
— Includes Physically Based Metallic and Physically Based Specular shaders, as well as legacy shaders.
— Supports Unity lighting features, such as Real-Time Global Illumination, skylight reflections, emissive lighting, reflection probes, light probes.
— Supports forward and deferred rendering paths (incl.
legacy deferred), shadows, HDR, lightmapping, gamma and linear color spaces.
— Supports GPU Instancing for better performance when rendering scenes with many identical meshes.
— Like the Unity Built-in Standard Shader, features are enabled or disabled by simply using or not using various texture slots and parameters in the customized material editor.
At runtime, the appropriate shader variant is pick based on which features are used.
Unused variants of the shaders will not be included into the game build.
— Shader variants for features such as vertex colors, normal mapping, height mapping (parallax), occlusion, emission, detail maps, and rim lighting (for legacy shaders).
— Shader variants to allow for separate top and bottom textures, with adjustable strength.
— Shader variants to allow for triplanar projection relative to world space and local space.
— Terrain shaders can support unlimited textures.
(4 textures per pass).REQUIREMENTS
Unity 2017.1.3f1 or later, Shader Model 3, Build for Windows, Mac OS X / macOS, Linux.TRIPLANAR SHADERS INCLUDED
(Click to see screenshot of Material Inspector Properties)
1.PBR Metallic (Single Texture)
2.PBR Metallic (Separate Main/Top/Bottom)
3.PBR Specular (Single Texture)
4.PBR Specular (Separate Main/Top/Bottom)
5.PBR Metallic Terrain
6.PBR Specular Terrain
7.Legacy Specular-Based (1-Texture)
8.Legacy Specular-Based (3-Texture)
9.Legacy Diffuse-Based (1-Texture)
10.Legacy Diffuse-Based (3-Texture)
11.Legacy Specular-Based Terrain
12.Legacy Diffuse-Based Terrain ADDITIONAL FEATURES
— Texture Power field:
This bonus field allows you to control the degree of overlap/sharpness when performing triplanar projection.
A low Texture Power helps create more believable surfaces from more organic-looking textures such as rock or grass.
A high Texture Power allows for sharper texture transitions between top, bottom, left, right, front, and back surfaces - good for repeating textures such as bricks, grids, and strong patterns where overlap is not desired.
— Vertex Colors:
Add color variation by applying vertex colors from the mesh.
Control the strength of the vertex colors with the Vertex Color Strength slider.
— Custom Material Editors and Shader Keywords:
These shaders come with custom material editors that are automatically displayed when using materials with the UV-Free shaders.
These custom editors automatically switch on/off features (shader keywords) used in the shaders so that only the variants of the shaders (from among hundreds of possible variants) will be included in the game build.
You can also programmatically enable or disable the shader keywords, but make sure there is a material included in the game build that already has that shader keyword combination.
— Normal Multiplier or Bump Scale
: Shaders which include a Bump/Normal Map have a Normal multiplier that allows you to control the bumpiness of the normal map to exaggerate it or tone it down.
— Terrain Texture Scale Percentage:
For terrain shaders, a Texture Scale percentage property provides a quick way to scale all the textures for that terrain simultaneously.
— GPU Instancing:
The mesh shaders in this shader pack have a GPU Instancing feature which will draw multiple copies of the same mesh at once, using a small number of draw calls.
Using GPU instancing can significantly improve the rendering performance of your project if there are many identical meshes.
Most of the non-texture fields of the UV-Free Shaders (such as colors or numeric sliders) can be set as per-instance properties.For more information on GPU Instanced shaders and how to use them, please see Unity's documentation on the topic.
— (Experimental) Flip Backwards Textures:
(Disabled by default) If enabled, the shaders will flip any textures that are backwards, allowing you to properly display text within the textures, no matter the orientation of the surface.
This helps textures to look more natural and not have a "mirroring" effect where the planes of the triplanar projection meet.
When this feature is disabled (default) the textures will be flipped or backwards when facing the -X, -Y or -Z planes.
— Sample materials and a simple sample scene
to demonstrate the shaders.SUPPORT
Please email me at andyman at idumpling.com
with the subject "UV-Free Shaders".
So that I may help you more efficiently, please specify your issue with as much useful detail and context as possible, such as platform, hardware, OS, rendering path (forward or deferred), color space (gamma or linear), build target, how you are trying to use the shaders, and the invoice number for your purchase.
Annotated screenshots are very useful and will save us all some time.NOTES
These shaders require Shader Model 3.0 GPU (most GPUs after 2004).
The Vertex Lit Rendering Path, the Lightweight Render Pipeline
, and the High-Definition Render Pipeline
are not supported for these shaders at this point.
These shaders are opaque and do not have any transparency / alpha testing features.
If you'd like to add transparency / alpha testing features to the shaders, it is only 2-3 lines of code to change.
See the "Transparency and alpha testing" section of Unity's Surface Shaders documentation (link
Download the source code for the built-in shaders (link
) and look at the "Tags" line and "#pragma surface" line of the Alpha and AlphaTest shaders for example of how it is done.
4.This is a shader pack, not a texture pack
! The sample textures included in the example scene have been watermarked so that they can be legally provided with this example scene, and are for example purposes only.
The original textures are licensed from http://gametextures.com
The marked textures are distributed in the sample scene with explicit written permission from GameTextures.com.
Due to the number of shader variants (hundreds) that must be compiled/imported, it could take a few minutes to initially import the asset into your project, depending on the speed of your machine.
When using the mesh shaders in local/self
triplanar space, you may run into an issue where Unity switches to display the textures as if it was in world
triplanar space, depending on the complexity, shadows, and level of detail of the mesh when Unity's Dynamic Batching
This happens because the object may be switching in and out of Unity's dynamic batching.
When an object is dynamically batched, Unity passes the shader the batched vertex data in world space instead of the object's ordinary local space data.
If you see this switch happening, you can either switch off dynamic batching globally (not recommended, for performance sake), or use the non-dynamic-batching version of the shader (suffixed by "NB") included in the shader pack.
Alternatively, you can make sure the problem meshes don't get dynamically batched by making sure they don't meet the threshold for dynamic batching
— Mac OS X
This shader pack was developed for and tested on the Desktop platforms above.
All other platforms are not supported; no testing has been performed on other platforms - use at your own risk on other platforms.
| Mac Demo