Changed _currentRender back to RGBA16F

This commit is contained in:
Robert Beckebans 2023-10-18 13:06:14 +02:00
parent 251c879483
commit b04705c594
5 changed files with 11 additions and 26 deletions

View file

@ -144,10 +144,9 @@ struct globalFramebuffers_t
Framebuffer* shadowFBO[MAX_SHADOWMAP_RESOLUTIONS][6];
Framebuffer* hdrFBO;
Framebuffer* ldrFBO;
Framebuffer* postProcFBO; // HDR16
Framebuffer* postProcFBO; // HDR16 used by 3D effects like heatHaze
Framebuffer* taaMotionVectorsFBO;
Framebuffer* taaResolvedFBO;
Framebuffer* hdr64FBO; // TODO remove, not needed with new NVRHI tonemapping anymore
Framebuffer* envprobeFBO;
Framebuffer* bloomRenderFBO[MAX_BLOOM_BUFFERS];
Framebuffer* glowFBO[MAX_GLOW_BUFFERS]; // unused

View file

@ -627,7 +627,6 @@ public:
idImage* randomImage256;
idImage* blueNoiseImage256;
idImage* currentRenderHDRImage;
idImage* currentRenderHDRImage64;
idImage* ldrImage; // tonemapped result which can be used for further post processing
idImage* taaMotionVectorsImage; // motion vectors for TAA projection
idImage* taaResolvedImage;
@ -661,7 +660,7 @@ public:
idImage* scratchImage;
idImage* scratchImage2;
idImage* accumImage;
idImage* currentRenderImage; // for SS_POST_PROCESS shaders, Doom 3 legacy but in HDR now
idImage* currentRenderImage; // for 3D scene SS_POST_PROCESS shaders for effects like heatHaze, in HDR now
idImage* currentDepthImage; // for motion blur, SSAO and everything that requires depth to world pos reconstruction
idImage* originalCurrentRenderImage; // currentRenderImage before any changes for stereo rendering
idImage* loadingIconImage; // loading icon must exist always

View file

@ -1069,7 +1069,6 @@ void idImageManager::CreateIntrinsicImages()
blueNoiseImage256 = globalImages->ImageFromFunction( "_blueNoise256", R_CreateBlueNoise256Image );
currentRenderHDRImage = globalImages->ImageFromFunction( "_currentRenderHDR", R_HDR_RGBA16FImage_ResNative_MSAAOpt );
currentRenderHDRImage64 = globalImages->ImageFromFunction( "_currentRenderHDR64", R_HDR_RGBA16FImage_Res64 );
ldrImage = globalImages->ImageFromFunction( "_currentRenderLDR", R_LdrNativeImage );
taaMotionVectorsImage = ImageFromFunction( "_taaMotionVectors", R_HDR_RG16FImage_ResNative ); // RB: could be shared with _currentNormals.zw
@ -1122,7 +1121,8 @@ void idImageManager::CreateIntrinsicImages()
scratchImage = ImageFromFunction( "_scratch", R_RGBA8Image );
scratchImage2 = ImageFromFunction( "_scratch2", R_RGBA8Image );
accumImage = ImageFromFunction( "_accum", R_RGBA8Image_RT );
currentRenderImage = globalImages->ImageFromFunction( "_currentRender", R_LdrNativeImage );;
currentRenderImage = globalImages->ImageFromFunction( "_currentRender", R_HDR_RGBA16FImage_ResNative );
//currentRenderImage = globalImages->ImageFromFunction( "_currentRender", R_LdrNativeImage );
currentDepthImage = ImageFromFunction( "_currentDepth", R_DepthImage );
// save a copy of this for material comparison, because currentRenderImage may get

View file

@ -164,10 +164,6 @@ void Framebuffer::ResizeFramebuffers( bool reloadImages )
.addColorAttachment( globalImages->envprobeHDRImage->texture )
.setDepthAttachment( globalImages->envprobeDepthImage->texture ) );
globalFramebuffers.hdr64FBO = new Framebuffer( "_hdr64",
nvrhi::FramebufferDesc()
.addColorAttachment( globalImages->currentRenderHDRImage64->texture ) );
for( int i = 0; i < MAX_SSAO_BUFFERS; i++ )
{
globalFramebuffers.ambientOcclusionFBO[i] = new Framebuffer( va( "_aoRender%i", i ),
@ -224,7 +220,6 @@ void Framebuffer::ReloadImages()
globalImages->currentRenderImage->Reload( false, tr.backend.commandList );
globalImages->currentDepthImage->Reload( false, tr.backend.commandList );
globalImages->currentRenderHDRImage->Reload( false, tr.backend.commandList );
globalImages->currentRenderHDRImage64->Reload( false, tr.backend.commandList );
for( int i = 0; i < MAX_SSAO_BUFFERS; i++ )
{
globalImages->ambientOcclusionImage[i]->Reload( false, tr.backend.commandList );

View file

@ -6094,7 +6094,6 @@ void idRenderBackend::PostProcess( const void* data )
if( r_useFilmicPostProcessing.GetBool() )
{
#if defined( USE_NVRHI )
BlitParameters blitParms;
blitParms.sourceTexture = ( nvrhi::ITexture* )globalImages->ldrImage->GetTextureID();
blitParms.targetFramebuffer = globalFramebuffers.smaaBlendFBO->GetApiObject();
@ -6104,13 +6103,6 @@ void idRenderBackend::PostProcess( const void* data )
GL_SelectTexture( 0 );
globalImages->smaaBlendImage->Bind();
#else
globalImages->currentRenderImage->CopyFramebuffer( viewport.x1, viewport.y1, viewport.GetWidth(), viewport.GetHeight() );
GL_SelectTexture( 0 );
globalImages->currentRenderImage->Bind();
#endif
globalFramebuffers.ldrFBO->Bind();
@ -6143,21 +6135,21 @@ void idRenderBackend::PostProcess( const void* data )
GL_SelectTexture( 0 );
renderProgManager.Unbind();
#if defined( USE_NVRHI )
// copy LDR result to DX12 / Vulkan swapchain image
BlitParameters blitParms;
blitParms.sourceTexture = ( nvrhi::ITexture* )globalImages->ldrImage->GetTextureID();
blitParms.targetFramebuffer = deviceManager->GetCurrentFramebuffer();
blitParms.targetViewport = nvrhi::Viewport( renderSystem->GetWidth(), renderSystem->GetHeight() );
commonPasses.BlitTexture( commandList, blitParms, &bindingCache );
// copy LDR result to postProcFBO which is HDR but also used by postFX
blitParms.sourceTexture = ( nvrhi::ITexture* )globalImages->ldrImage->GetTextureID();
blitParms.targetFramebuffer = globalFramebuffers.postProcFBO->GetApiObject();
blitParms.targetViewport = nvrhi::Viewport( viewport.x1, viewport.x2, viewport.y1, viewport.y2, viewport.zmin, viewport.zmax );
commonPasses.BlitTexture( commandList, blitParms, &bindingCache );
GL_SelectTexture( 0 );
globalImages->currentRenderImage->Bind();
#else
globalImages->currentRenderImage->CopyFramebuffer( viewport.x1, viewport.y1, viewport.GetWidth(), viewport.GetHeight() );
GL_SelectTexture( 0 );
globalImages->currentRenderImage->Bind();
#endif
renderLog.CloseBlock();
renderLog.CloseMainBlock();