頂点の色を示すVertexColorShaderを使用して頂点の色をMaya(Image1)で平面に割り当て、Unityにエクスポートしました。頂点の色が期待通りに機能しない
私はImage3のような結果になると思っていましたが、Image2のようになったということでした。
これらの画像をご覧ください。
私のシェーダは非常に簡単です。頂点カラーを可視にするだけです。
vert関数は各頂点カラーを取り、出力変数に格納します。
surf関数は変数から色を取得し、それをフラグメントの色として設定します。
頂点関数は頂点ごとに呼び出されるので、結果はImage3(Photoshopでこの画像を作成しました)のようになりますが、実際はImage2として出力されると思いました。
どのように来ますか?
頂点間の各フラグメントは、頂点関数が頂点間で呼び出されないため、その色を知らないため、プレーンの色は頂点の位置を除いてほぼ白色であると考えました。
これはどうして起こるのか教えてください。
Shader "MyShader/VertexColorShader" {
Properties {
}
SubShader {
Tags { "RenderType"="Opaque" }
CGPROGRAM
#pragma surface surf Lambert vertex:vert
struct Input {
float4 vertColor;
};
void vert(inout appdata_full v, out Input o) {
UNITY_INITIALIZE_OUTPUT(Input, o);
o.vertColor = v.color;
}
void surf (Input IN, inout SurfaceOutput o) {
o.Albedo = IN.vertColor.rgb;
}
ENDCG
}
}
乾杯、
テック
あなたの色に敏感な目のための誇りだが、私は実際に違いは見えない.. ?? – Absinthe
ご返信ありがとうございます。 Image2とImage3の違いは表示されませんか?本当に ?? – tech
2と3はリンゴとナシを比較し、1つはテックスマップであり、1つはバーツです – Absinthe