下記の記事で頂点を可視化したので、次に頂点色を可視化してみます。
頂点カラーを可視化する
といっても、仕組みはほぼ前回の記事で出来上がっています。
変更点はシェーダの色に頂点カラーを適用するだけです。
Shader "MeshInfo" { SubShader { Tags { "RenderType"="Opaque" "Queue"="Geometry"} Pass { ZWrite Off ZTest Always Blend SrcAlpha OneMinusSrcAlpha CGPROGRAM #pragma vertex vert #pragma fragment frag #pragma target 3.0 #include "UnityCG.cginc" struct appdata { float4 vertex : POSITION; half3 normal : NORMAL; half4 color : COLOR; }; struct v2f { float4 vertex : SV_POSITION; half size: PSIZE; half faceSign: TEXCOORD0; half4 color : COLOR; }; half _PointSize; half _Alpha; float4x4 _TransformMatrix; v2f vert (appdata v) { v2f o; v.vertex = mul(_TransformMatrix, v.vertex); o.vertex = UnityObjectToClipPos(v.vertex); half3 viewDir = ObjSpaceViewDir(v.vertex); o.faceSign = dot(viewDir, v.normal); o.size = _PointSize; o.color = v.color; return o; } fixed4 frag (v2f i) : SV_Target { half alpha = step(0, i.faceSign); half4 color = i.color; color.a = alpha * _Alpha; return color; } ENDCG } } }
これで頂点カラーが表示されるようになりました。 今回は適当に頂点を着色したトーラスを使っています。