Version: Unity 6 (6000.0)
Language : English
Examples of GPU instancing shaders in the Built-In Render Pipeline
Example of a shader that supports GPU Instancing in the Built-In Render Pipeline

Example of a Surface Shader that supports GPU Instancing in the Built-In Render Pipeline

The following example demonstrates how to create an instanced Surface ShaderA program that runs on the GPU. More info
See in Glossary
with different color values for each instance.

Shader "Custom/InstancedColorSurfaceShader"
{
Properties
{
_Color ("Color", Color) = (1,1,1,1)
_MainTex ("Albedo (RGB)", 2D) = "white" {}
_Glossiness ("Smoothness", Range(0,1)) = 0.5
_Metallic ("Metallic", Range(0,1)) = 0.0
}

SubShader
{
Tags { "RenderType"="Opaque" }
LOD 200
CGPROGRAM
// Uses the physically based standard lighting model with shadows enabled for all light types.
#pragma surface surf Standard fullforwardshadows
// Use Shader model 3.0 target
#pragma target 3.0
sampler2D _MainTex;
struct Input
{
float2 uv_MainTex;
};
half _Glossiness;
half _Metallic;
UNITY_INSTANCING_BUFFER_START(Props)
 UNITY_DEFINE_INSTANCED_PROP(fixed4, _Color)
UNITY_INSTANCING_BUFFER_END(Props)
void surf (Input IN, inout SurfaceOutputStandard o) {
fixed4 c = tex2D (_MainTex, IN.uv_MainTex) * UNITY_ACCESS_INSTANCED_PROP(Props, _Color);
o.Albedo = c.rgb;
o.Metallic = _Metallic;
o.Smoothness = _Glossiness;
o.Alpha = c.a;
}
ENDCG
}
FallBack "Diffuse"
}
Examples of GPU instancing shaders in the Built-In Render Pipeline
Example of a shader that supports GPU Instancing in the Built-In Render Pipeline