32 lines
1.2 KiB
PHP
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
|