Shader "Points/Vertex" { Properties { _PointSize("PointSize", Range(0, 0.1)) = 0.01 [Enum(UnityEngine.Rendering.BlendMode)] _SrcBlend("Source Blend", Float) = 1 // "One" [Enum(UnityEngine.Rendering.BlendMode)] _DstBlend("Destination Blend", Float) = 0 // "Zero" [Enum(UnityEngine.Rendering.CompareFunction)] _ZTest("Depth Test", Float) = 4 // "LessEqual" [Enum(DepthWrite)] _ZWrite("Depth Write", Float) = 1 // "On" } SubShader { Pass { Blend[_SrcBlend][_DstBlend] ZTest[_ZTest] ZWrite[_ZWrite] CGPROGRAM #pragma target 5.0 #pragma vertex vert #pragma fragment frag #pragma multi_compile_instancing #include "UnityCG.cginc" struct appdata { float4 vertex : POSITION; float4 color: COLOR; UNITY_VERTEX_INPUT_INSTANCE_ID }; struct v2f { float4 pos : POSITION; float4 col : COLOR; UNITY_VERTEX_OUTPUT_STEREO }; v2f vert(appdata v) { v2f o; UNITY_SETUP_INSTANCE_ID(v); UNITY_INITIALIZE_OUTPUT(v2f, o); UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); o.pos = UnityObjectToClipPos(v.vertex); o.col = v.color; return o; } float4 frag(v2f input) : COLOR { return input.col; } ENDCG } } }