Files
2026-08-09 04:23:10 -07:00

32 lines
1.2 KiB
PHP

#template SAMPLE_WRINKLEMAPS( occlusionRes, bumpRes, occlusionSrc, bumpSrc, texCoord )
{
half4 mask01 = tex2D( $fadeMap, float2( texCoord.x * 0.5f, texCoord.y ) );
half4 mask23 = tex2D( $fadeMap, float2( texCoord.x * 0.5f + 0.5f, texCoord.y ) );
mask01 = (mask01 - 0.50f)*2.2f;
float wrinkleResFactor0 = (dot4(saturate(mask01 - 0.05f), $wrinkleFactor0)
+ dot4(saturate(-mask01 - 0.05f), $wrinkleFactor1) );
mask23 = (mask23 - 0.50f)*2.2f;
float wrinkleResFactor1 = (dot4(saturate(mask23 - 0.05f), $wrinkleFactor2)
+ dot4(saturate(-mask23 - 0.05f), $wrinkleFactor3) );
float wrinkleResFactor = clamp( wrinkleResFactor0 + wrinkleResFactor1, -1.0f, 1.0f );
wrinkleResFactor *= $wrinkleScale.x;
float ambOccl = occlusionSrc.g;
half4 bumpNormal = bumpSrc;
// + is expand, - is contract
if ( wrinkleResFactor > 0.05 ) {
ambOccl = lerp( occlusionSrc.g, occlusionSrc.b, wrinkleResFactor );
bumpNormal = lerp( bumpSrc, tex2D( $spareBumpMap2, texCoord.xy ), wrinkleResFactor );
} else if ( wrinkleResFactor < -0.05 ) {
ambOccl = lerp( occlusionSrc.g, occlusionSrc.r, -wrinkleResFactor );
bumpNormal = lerp( bumpSrc, tex2D( $spareBumpMap1, texCoord.xy ), -wrinkleResFactor );
}
occlusionRes = ambOccl;
bumpRes = bumpNormal;
}
#endtemplate