Unity
unity5
ShaderLab

Unity 頂点カラーを反映するシェーダー

More than 3 years have passed since last update.

エフェクトとか作ってると頂点単位で色が変えたくなりますよね。


VertexColor.shader

Shader "Custom/VertexColor" {

SubShader {
CGPROGRAM
#pragma surface surf Lambert

struct Input {
float4 color : COLOR;
};

void surf(Input IN, inout SurfaceOutput o) {
o.Albedo = IN.color.rgb;
}
ENDCG
}
}


ポイント:


  • サーフェースシェーダーを使う


  • Input 構造体に COLOR を指定すると頂点カラーが渡ってくる

  • あとはお好みで加工して SurfaceOutput に渡しましょう