28 lines
780 B
Plaintext
28 lines
780 B
Plaintext
#ifndef SKELETON_TINT_COMMON_INCLUDED
|
|
#define SKELETON_TINT_COMMON_INCLUDED
|
|
|
|
float4 fragTintedColor(float4 texColor, float3 darkTintColor, float4 lightTintColorPMA, float lightColorAlpha, float darkColorAlpha) {
|
|
|
|
float a = texColor.a * lightTintColorPMA.a;
|
|
|
|
#if !defined(_STRAIGHT_ALPHA_INPUT)
|
|
float3 texDarkColor = (texColor.a - texColor.rgb);
|
|
#else
|
|
float3 texDarkColor = (1 - texColor.rgb);
|
|
#endif
|
|
float3 darkColor = texDarkColor * darkTintColor.rgb * lightColorAlpha;
|
|
float3 lightColor = texColor.rgb * lightTintColorPMA.rgb;
|
|
|
|
float4 fragColor = float4(darkColor + lightColor, a);
|
|
#if defined(_STRAIGHT_ALPHA_INPUT)
|
|
fragColor.rgb *= texColor.a;
|
|
#endif
|
|
|
|
#if defined(_DARK_COLOR_ALPHA_ADDITIVE)
|
|
fragColor.a = a * (1 - darkColorAlpha);
|
|
#endif
|
|
return fragColor;
|
|
}
|
|
|
|
#endif
|