TinyMToon 詳細
MToon は Lighting をカスタムするので、 URP の Unlit をベースに ShaderGraph を作成してください。
BaseColor と ShadingColor を Lighting 結果に応じて混ぜ合わせる
Implementation を参考にBaseColor と ShadingColor を混ぜ合わせます。
function linearstep( a: Number, b: Number, t: Number ): Number
return saturate( ( t - a ) / ( b - a ) )
end function
function color(N, L, shadingShiftFactor, shadingToonyFactor): ColorRGB
let shading: Number = dot( N, L )
shading = shading + shadingShiftFactor
shading = shading + texture( shadingShiftTexture, uv ) * shadingShiftTexture.scale
shading = linearstep( -1.0 + shadingToonyFactor, 1.0 - shadingToonyFactor, shading )
let baseColorTerm: ColorRGB = baseColorFactor.rgb * texture( baseColorTexture, uv ).rgb
let shadeColorTerm: ColorRGB = shadeColorFactor.rgb * texture( shadeMultiplyTexture, uv ).rgb
let color: ColorRGB = lerp( shadeColorTerm, baseColorTerm, shading )
return color * lightColor
end function
Rim Lighting
TODO:
Outline
TODO:
UV Animation
TODO: