|
@@ -87,6 +87,17 @@ float4 main( ConvexConnectP IN ) : TORQUE_TARGET0
|
|
|
return float4(0.0, 0.0, 0.0, 0.0);
|
|
|
}
|
|
|
|
|
|
+ float4 colorSample = TORQUE_TEX2D( colorBuffer, uvScene );
|
|
|
+ float3 subsurface = float3(0.0,0.0,0.0);
|
|
|
+ if (getFlag( matInfo.r, 1 ))
|
|
|
+ {
|
|
|
+ subsurface = colorSample.rgb;
|
|
|
+ if (colorSample.r>colorSample.g)
|
|
|
+ subsurface = float3(0.772549, 0.337255, 0.262745);
|
|
|
+ else
|
|
|
+ subsurface = float3(0.337255, 0.772549, 0.262745);
|
|
|
+ }
|
|
|
+
|
|
|
// Sample/unpack the normal/z data
|
|
|
float4 prepassSample = TORQUE_PREPASS_UNCONDITION( prePassBuffer, uvScene );
|
|
|
float3 normal = prepassSample.rgb;
|
|
@@ -194,6 +205,5 @@ float4 main( ConvexConnectP IN ) : TORQUE_TARGET0
|
|
|
addToResult = ( 1.0 - shadowed ) * abs(lightMapParams);
|
|
|
}
|
|
|
|
|
|
- float4 colorSample = TORQUE_TEX2D( colorBuffer, uvScene );
|
|
|
- return AL_DeferredOutput(lightColorOut, colorSample.rgb, matInfo, addToResult, specular, Sat_NL_Att);
|
|
|
+ return AL_DeferredOutput(lightColorOut+subsurface*(1.0-Sat_NL_Att), colorSample.rgb, matInfo, addToResult, specular, Sat_NL_Att);
|
|
|
}
|