本日はMRTKのHandTrianglesShaderの理解を深めます。
前回までShaderの処理を追っていきました。
今回からは具体的にパラメータが何を意味するのかを追っていきます。
〇Color Intensity
IntensityはProperties{}でIntensityという変数で宣言されShader内部で使用されています。 また0~5のレンジを持ちデフォルトで5の値が与えられています。
_Intensity_("Intensity", Range(0,5)) = 5
Intensityはジオメトリシェーダー内677行目でResult_Q161.rgbに積算されています。
Result_Q161.rgb *= _Intensity_;
Result_Q161.rgbはResult_Q161のrgb成分です。 Result_Q161はジオメトリシェーダー内676行目で値が定義されています。
Result_Q161 = lerp(float4(k,k,k,1),Color_Q157,float4(Saturation_Q160,Saturation_Q160,Saturation_Q160,Saturation_Q160))*(1.0-_Vary_Color_*Result_Q150)*Fade_Color_Q160;
Color_Q157(プロパティのAlbedoTexture)の最大値、最小値の間で色の線形補間(グラデーション)が行われています。Saturation_Q160はPulseにかかわる値です。(パルスで色のグラデーションを行う部分)
Vary_Colorはpropertyで設定される値です。
Result_Q150もPulseのUVにかかわる処理です。
Fade_Color_Q160はfadeOutにかかわる値です。
つまりResult_Q161ではグラデーションパターン(線形補間)を行い_Intensityでその強度を設定しています。
〇Fill Color
Fill ColorはProperties{}でFill_Colorという変数で宣言されShader内部で使用されています。
_Fill_Color_("Fill Color", Color) = (0.317647,0.317647,0.317647,1)
フラグメントシェーダーの783行目にFill_Color が使用されています。
half4 Product_Q170 = _Fill_Color_ * Color_Q172;
Color_Q172はUV座標になります。
UV座標とFill_Colorの積がProduct_Q170になります。 つまりUVの座標によって_Fill_Colorの強さが変わります。