123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- Shader "Nreal/Instanced-Colored"
- {
- Properties
- {
- _Color("Color", Color) = (1.0, 1.0, 1.0, 1.0)
- _ZWrite("ZWrite", Int) = 1.0 // On
- [Enum(UnityEngine.Rendering.CompareFunction)] _ZTest("ZTest", Int) = 4.0 // LEqual
- [Enum(UnityEngine.Rendering.CullMode)] _Cull("Cull", Int) = 0.0 // Off
- }
- SubShader
- {
- Pass
- {
- Name "Main"
- Tags{ "RenderType" = "Opaque" }
- ZWrite[_ZWrite]
- ZTest[_ZTest]
- Cull[_Cull]
- CGPROGRAM
- //#if defined(SHADER_API_D3D11)
- // #pragma target 5.0
- //#endif
- #pragma vertex vert
- #pragma fragment frag
- #pragma multi_compile_instancing
- #include "UnityCG.cginc"
- struct appdata_t
- {
- fixed4 vertex : POSITION;
- UNITY_VERTEX_INPUT_INSTANCE_ID
- };
- struct v2f
- {
- fixed4 vertex : SV_POSITION;
- fixed4 color : COLOR0;
- UNITY_VERTEX_OUTPUT_STEREO
- };
- float4x4 _ParentLocalToWorldMatrix;
- UNITY_INSTANCING_BUFFER_START(Props)
- UNITY_DEFINE_INSTANCED_PROP(float4, _Color)
- UNITY_INSTANCING_BUFFER_END(Props)
- v2f vert(appdata_t v)
- {
- v2f o;
- UNITY_SETUP_INSTANCE_ID(v);
- UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
- o.vertex = mul(UNITY_MATRIX_VP, mul(_ParentLocalToWorldMatrix, mul(unity_ObjectToWorld, float4(v.vertex.xyz, 1.0))));
- o.color = UNITY_ACCESS_INSTANCED_PROP(Props, _Color);
- return o;
- }
- fixed4 frag(v2f i) : SV_Target
- {
- return i.color;
- }
- ENDCG
- }
- }
- }
|