mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-07-15 08:34:40 +00:00
subsurface followup: cleanups and corrections for vectorlightP, fillins for spot, point, and opengl equivalents
This commit is contained in:
parent
00cc949011
commit
88356ae37f
6 changed files with 63 additions and 14 deletions
|
|
@ -147,6 +147,17 @@ void main()
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
vec4 colorSample = texture( colorBuffer, uvScene );
|
||||||
|
vec3 subsurface = vec3(0.0,0.0,0.0);
|
||||||
|
if (getFlag( matInfo.r, 1 ))
|
||||||
|
{
|
||||||
|
subsurface = colorSample.rgb;
|
||||||
|
if (colorSample.r>colorSample.g)
|
||||||
|
subsurface = vec3(0.772549, 0.337255, 0.262745);
|
||||||
|
else
|
||||||
|
subsurface = vec3(0.337255, 0.772549, 0.262745);
|
||||||
|
}
|
||||||
|
|
||||||
// Sample/unpack the normal/z data
|
// Sample/unpack the normal/z data
|
||||||
vec4 prepassSample = prepassUncondition( prePassBuffer, uvScene );
|
vec4 prepassSample = prepassUncondition( prePassBuffer, uvScene );
|
||||||
vec3 normal = prepassSample.rgb;
|
vec3 normal = prepassSample.rgb;
|
||||||
|
|
@ -258,6 +269,5 @@ void main()
|
||||||
addToResult = ( 1.0 - shadowed ) * abs(lightMapParams);
|
addToResult = ( 1.0 - shadowed ) * abs(lightMapParams);
|
||||||
}
|
}
|
||||||
|
|
||||||
vec4 colorSample = texture( colorBuffer, uvScene );
|
OUT_col = AL_DeferredOutput(lightColorOut+subsurface*(1.0-Sat_NL_Att), colorSample.rgb, matInfo, addToResult, specular, Sat_NL_Att);
|
||||||
OUT_col = AL_DeferredOutput(lightColorOut, colorSample.rgb, matInfo, addToResult, specular, Sat_NL_Att);
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -89,6 +89,17 @@ void main()
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
vec4 colorSample = texture( colorBuffer, uvScene );
|
||||||
|
vec3 subsurface = vec3(0.0,0.0,0.0);
|
||||||
|
if (getFlag( matInfo.r, 1 ))
|
||||||
|
{
|
||||||
|
subsurface = colorSample.rgb;
|
||||||
|
if (colorSample.r>colorSample.g)
|
||||||
|
subsurface = vec3(0.772549, 0.337255, 0.262745);
|
||||||
|
else
|
||||||
|
subsurface = vec3(0.337255, 0.772549, 0.262745);
|
||||||
|
}
|
||||||
|
|
||||||
// Sample/unpack the normal/z data
|
// Sample/unpack the normal/z data
|
||||||
vec4 prepassSample = prepassUncondition( prePassBuffer, uvScene );
|
vec4 prepassSample = prepassUncondition( prePassBuffer, uvScene );
|
||||||
vec3 normal = prepassSample.rgb;
|
vec3 normal = prepassSample.rgb;
|
||||||
|
|
@ -195,6 +206,5 @@ void main()
|
||||||
addToResult = ( 1.0 - shadowed ) * abs(lightMapParams);
|
addToResult = ( 1.0 - shadowed ) * abs(lightMapParams);
|
||||||
}
|
}
|
||||||
|
|
||||||
vec4 colorSample = texture( colorBuffer, uvScene );
|
OUT_col = AL_DeferredOutput(lightColorOut+subsurface*(1.0-Sat_NL_Att), colorSample.rgb, matInfo, addToResult, specular, Sat_NL_Att);
|
||||||
OUT_col = AL_DeferredOutput(lightColorOut, colorSample.rgb, matInfo, addToResult, specular, Sat_NL_Att);
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -202,6 +202,17 @@ void main()
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
vec4 colorSample = texture( colorBuffer, uv0 );
|
||||||
|
vec3 subsurface = vec3(0.0,0.0,0.0);
|
||||||
|
if (getFlag( matInfo.r, 1 ))
|
||||||
|
{
|
||||||
|
subsurface = colorSample.rgb;
|
||||||
|
if (colorSample.r>colorSample.g)
|
||||||
|
subsurface = vec3(0.772549, 0.337255, 0.262745);
|
||||||
|
else
|
||||||
|
subsurface = vec3(0.337255, 0.772549, 0.262745);
|
||||||
|
}
|
||||||
|
|
||||||
// Sample/unpack the normal/z data
|
// Sample/unpack the normal/z data
|
||||||
vec4 prepassSample = prepassUncondition( prePassBuffer, uv0 );
|
vec4 prepassSample = prepassUncondition( prePassBuffer, uv0 );
|
||||||
vec3 normal = prepassSample.rgb;
|
vec3 normal = prepassSample.rgb;
|
||||||
|
|
@ -312,6 +323,5 @@ void main()
|
||||||
lightColorOut = debugColor;
|
lightColorOut = debugColor;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
vec4 colorSample = texture( colorBuffer, uv0 );
|
OUT_col = AL_DeferredOutput(lightColorOut+subsurface*(1.0-Sat_NL_Att), colorSample.rgb, matInfo, addToResult, specular, Sat_NL_Att);
|
||||||
OUT_col = AL_DeferredOutput(lightColorOut, colorSample.rgb, matInfo, addToResult, specular, Sat_NL_Att);
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -149,6 +149,16 @@ float4 main( ConvexConnectP IN ) : TORQUE_TARGET0
|
||||||
{
|
{
|
||||||
return float4(0.0, 0.0, 0.0, 0.0);
|
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
|
// Sample/unpack the normal/z data
|
||||||
float4 prepassSample = TORQUE_PREPASS_UNCONDITION( prePassBuffer, uvScene );
|
float4 prepassSample = TORQUE_PREPASS_UNCONDITION( prePassBuffer, uvScene );
|
||||||
|
|
@ -263,6 +273,5 @@ float4 main( ConvexConnectP IN ) : TORQUE_TARGET0
|
||||||
addToResult = ( 1.0 - shadowed ) * abs(lightMapParams);
|
addToResult = ( 1.0 - shadowed ) * abs(lightMapParams);
|
||||||
}
|
}
|
||||||
|
|
||||||
float4 colorSample = TORQUE_TEX2D( colorBuffer, uvScene );
|
return AL_DeferredOutput(lightColorOut+subsurface*(1.0-Sat_NL_Att), colorSample.rgb, matInfo, addToResult, specular, Sat_NL_Att);
|
||||||
return AL_DeferredOutput(lightColorOut, colorSample.rgb, matInfo, addToResult, specular, Sat_NL_Att);
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -87,6 +87,17 @@ float4 main( ConvexConnectP IN ) : TORQUE_TARGET0
|
||||||
return float4(0.0, 0.0, 0.0, 0.0);
|
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
|
// Sample/unpack the normal/z data
|
||||||
float4 prepassSample = TORQUE_PREPASS_UNCONDITION( prePassBuffer, uvScene );
|
float4 prepassSample = TORQUE_PREPASS_UNCONDITION( prePassBuffer, uvScene );
|
||||||
float3 normal = prepassSample.rgb;
|
float3 normal = prepassSample.rgb;
|
||||||
|
|
@ -194,6 +205,5 @@ float4 main( ConvexConnectP IN ) : TORQUE_TARGET0
|
||||||
addToResult = ( 1.0 - shadowed ) * abs(lightMapParams);
|
addToResult = ( 1.0 - shadowed ) * abs(lightMapParams);
|
||||||
}
|
}
|
||||||
|
|
||||||
float4 colorSample = TORQUE_TEX2D( colorBuffer, uvScene );
|
return AL_DeferredOutput(lightColorOut+subsurface*(1.0-Sat_NL_Att), colorSample.rgb, matInfo, addToResult, specular, Sat_NL_Att);
|
||||||
return AL_DeferredOutput(lightColorOut, colorSample.rgb, matInfo, addToResult, specular, Sat_NL_Att);
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -206,11 +206,11 @@ float4 main( FarFrustumQuadConnectP IN ) : TORQUE_TARGET0
|
||||||
float3 subsurface = float3(0.0,0.0,0.0);
|
float3 subsurface = float3(0.0,0.0,0.0);
|
||||||
if (getFlag( matInfo.r, 1 ))
|
if (getFlag( matInfo.r, 1 ))
|
||||||
{
|
{
|
||||||
subsurface =colorSample;
|
subsurface = colorSample.rgb;
|
||||||
if (colorSample.r>colorSample.g)
|
if (colorSample.r>colorSample.g)
|
||||||
subsurface.r*=2;
|
subsurface = float3(0.772549, 0.337255, 0.262745);
|
||||||
else
|
else
|
||||||
subsurface.g*=2;
|
subsurface = float3(0.337255, 0.772549, 0.262745);
|
||||||
}
|
}
|
||||||
// Sample/unpack the normal/z data
|
// Sample/unpack the normal/z data
|
||||||
float4 prepassSample = TORQUE_PREPASS_UNCONDITION( prePassBuffer, IN.uv0 );
|
float4 prepassSample = TORQUE_PREPASS_UNCONDITION( prePassBuffer, IN.uv0 );
|
||||||
|
|
@ -324,5 +324,5 @@ float4 main( FarFrustumQuadConnectP IN ) : TORQUE_TARGET0
|
||||||
lightColorOut = debugColor;
|
lightColorOut = debugColor;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return AL_DeferredOutput(lightColorOut+subsurface*(2.0-Sat_NL_Att), 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);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue