mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-01-19 20:24:49 +00:00
Merge pull request #1623 from Azaezel/alpha41/minLuminaceSync
hdr format caching sidesteps reinitialization
This commit is contained in:
commit
cd68af6373
|
|
@ -46,7 +46,7 @@ $PostFX::HDRPostFX::colorFilter = "1.0 1.0 1.0";
|
|||
/// The minimum luninace value to allow when tone mapping
|
||||
/// the scene. Is particularly useful if your scene very
|
||||
/// dark or has a black ambient color in places.
|
||||
$PostFX::HDRPostFX::minLuminace = 0.001;
|
||||
$PostFX::HDRPostFX::minLuminace = 0.5;
|
||||
|
||||
/// The rate of adaptation from the previous and new
|
||||
/// average scene luminance.
|
||||
|
|
@ -241,7 +241,7 @@ singleton GFXStateBlockData( HDRStateBlock )
|
|||
|
||||
function HDRPostFX::setShaderConsts( %this )
|
||||
{
|
||||
%this.setShaderConst( "$g_fMiddleGray", $PostFX::HDRPostFX::keyValue );
|
||||
%this.setShaderConst( "$g_fMiddleGray", $PostFX::HDRPostFX::keyValue );
|
||||
|
||||
%minLuminace = $PostFX::HDRPostFX::minLuminace;
|
||||
if ( %minLuminace <= 0.0 )
|
||||
|
|
@ -357,17 +357,25 @@ function HDRPostFX::onEnabled( %this )
|
|||
// disable this postFx.
|
||||
GammaPostFX.disable();
|
||||
|
||||
if (%format $= %this.previousFormat)
|
||||
return true;
|
||||
|
||||
// Set the right global shader define for HDR.
|
||||
if ( %format $= "GFXFormatR10G10B10A2" )
|
||||
{
|
||||
addGlobalShaderMacro( "TORQUE_HDR_RGB10" );
|
||||
removeGlobalShaderMacro( "TORQUE_HDR_RGB16" );
|
||||
}
|
||||
else if ( %format $= "GFXFormatR16G16B16A16F" )
|
||||
{
|
||||
addGlobalShaderMacro( "TORQUE_HDR_RGB16" );
|
||||
|
||||
removeGlobalShaderMacro( "TORQUE_HDR_RGB10" );
|
||||
}
|
||||
echo( "HDR FORMAT: " @ %format );
|
||||
|
||||
// Change the format of the offscreen surface
|
||||
// to an HDR compatible format.
|
||||
%this.previousFormat = AL_FormatToken.format;
|
||||
%this.previousFormat = %format;
|
||||
setReflectFormat( %format );
|
||||
|
||||
// Reset the light manager which will ensure the new
|
||||
|
|
@ -390,10 +398,7 @@ function HDRPostFX::onDisabled( %this )
|
|||
// Restore the non-HDR offscreen surface format.
|
||||
%format = %this.previousFormat;
|
||||
AL_FormatToken.format = %format;
|
||||
setReflectFormat( %format );
|
||||
|
||||
removeGlobalShaderMacro( "TORQUE_HDR_RGB10" );
|
||||
removeGlobalShaderMacro( "TORQUE_HDR_RGB16" );
|
||||
setReflectFormat( %format );
|
||||
|
||||
// Reset the light manager which will ensure the new
|
||||
// hdr encoding takes effect in all the shaders.
|
||||
|
|
@ -565,9 +570,9 @@ function HDRPostFX::SetupBloomFX( %this )
|
|||
|
||||
singleton PostEffect( HDRPostFX )
|
||||
{
|
||||
enabled = false;
|
||||
enabled = true;
|
||||
allowReflectPass = false;
|
||||
|
||||
previousFormat = AL_FormatToken.format;
|
||||
// Resolve the HDR before we render any editor stuff
|
||||
// and before we resolve the scene to the backbuffer.
|
||||
renderTime = "PFXBeforeBin";
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ $PostFX::HDRPostFX::saturationValue = 1;
|
|||
$PostFX::HDRPostFX::colorFilter = "1.0 1.0 1.0";
|
||||
$PostFX::HDRPostFX::minLuminace = "0.5";
|
||||
$PostFX::HDRPostFX::whiteCutoff = 1;
|
||||
$PostFX::HDRPostFX::adaptRate = "0.134615391";
|
||||
$PostFX::HDRPostFX::adaptRate = "0.85";
|
||||
$PostFX::HDRPostFX::tonemapMode = "ACES";
|
||||
$PostFX::HDRPostFX::enableAutoExposure = "1";
|
||||
$PostFX::HDRPostFX::keyValue = 0.5;
|
||||
|
|
|
|||
|
|
@ -71,4 +71,5 @@ function Core_Rendering::initClient(%this)
|
|||
// we can hide any splash screen we have, and show the canvas.
|
||||
// This keeps things looking nice, instead of having a blank window
|
||||
Canvas.showWindow();
|
||||
resetLightManager(); //make sure
|
||||
}
|
||||
|
|
@ -31,7 +31,7 @@ function initRenderManager()
|
|||
// PostEffect copies the result to the backbuffer.
|
||||
new RenderFormatToken(AL_FormatToken)
|
||||
{
|
||||
enabled = "false";
|
||||
enabled = true;
|
||||
|
||||
//When hdr is enabled this will be changed to the appropriate format
|
||||
format = "GFXFormatR16G16B16A16F";
|
||||
|
|
@ -46,6 +46,9 @@ function initRenderManager()
|
|||
// provided in $inTex
|
||||
resolveEffect = "AL_FormatCopy";
|
||||
};
|
||||
addGlobalShaderMacro( "TORQUE_HDR_RGB16" );
|
||||
setReflectFormat( AL_FormatToken.format );
|
||||
|
||||
DiffuseRenderPassManager.addManager( new RenderPassStateBin() { renderOrder = 0.001; stateToken = AL_FormatToken; } );
|
||||
|
||||
DiffuseRenderPassManager.addManager( new RenderProbeMgr(ProbeBin) { bintype = "Probes"; renderOrder = 0.019; processAddOrder = 0.019; } );
|
||||
|
|
@ -119,7 +122,7 @@ singleton PostEffect( AL_FormatCopy )
|
|||
{
|
||||
// This PostEffect is used by 'AL_FormatToken' directly. It is never added to
|
||||
// the PostEffectManager. Do not call enable() on it.
|
||||
enabled = false;
|
||||
enabled = true;
|
||||
allowReflectPass = true;
|
||||
|
||||
shader = PFX_PassthruShader;
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ $PostFX::HDRPostFX::whitePoint = 1;
|
|||
$PostFX::HDRPostFX::logContrast = 1;
|
||||
$PostFX::HDRPostFX::saturationValue = 1;
|
||||
$PostFX::HDRPostFX::colorFilter = "1.0 1.0 1.0";
|
||||
$PostFX::HDRPostFX::minLuminace = 0.001;
|
||||
$PostFX::HDRPostFX::minLuminace = 0.5;
|
||||
$PostFX::HDRPostFX::whiteCutoff = 1;
|
||||
$PostFX::HDRPostFX::adaptRate = "0.85";
|
||||
$PostFX::HDRPostFX::tonemapMode = "ACES";
|
||||
|
|
|
|||
Loading…
Reference in a new issue