From c226650c0c7028c5c6916912a1c4b7893091a7c0 Mon Sep 17 00:00:00 2001 From: Robert Beckebans Date: Fri, 28 Jun 2024 13:48:02 +0200 Subject: [PATCH] Fixed PBR _rmao lookup hack on the wrong textures. Close #905 --- neo/renderer/Image_files.cpp | 14 +++++++++----- neo/renderer/Image_load.cpp | 7 +++++-- neo/renderer/NVRHI/Image_NVRHI.cpp | 10 ++++++++++ 3 files changed, 24 insertions(+), 7 deletions(-) diff --git a/neo/renderer/Image_files.cpp b/neo/renderer/Image_files.cpp index 4eefac4d..f9350bf9 100644 --- a/neo/renderer/Image_files.cpp +++ b/neo/renderer/Image_files.cpp @@ -1035,12 +1035,16 @@ void R_LoadImage( const char* cname, byte** pic, int* width, int* height, ID_TIM if( name.StripTrailingOnce( "_s" ) ) { name += "_rmao"; + + ext = "png"; + name.DefaultFileExtension( ".png" ); + + pbrImageLookup = true; + } + else + { + name = origName; } - - ext = "png"; - name.DefaultFileExtension( ".png" ); - - pbrImageLookup = true; } #if 0 else if( usage && *usage == TD_R11G11B10F ) diff --git a/neo/renderer/Image_load.cpp b/neo/renderer/Image_load.cpp index a1783938..6dbf48de 100644 --- a/neo/renderer/Image_load.cpp +++ b/neo/renderer/Image_load.cpp @@ -390,9 +390,12 @@ void idImage::FinalizeImage( bool fromBackEnd, nvrhi::ICommandList* commandList // RB: PBR HACK - RMAO maps should end with _rmao insted of _s if( usage == TD_SPECULAR_PBR_RMAO ) { - if( imgName.StripTrailingOnce( "_s" ) ) + idStr baseName = imgName; + baseName.StripFileExtension(); + + if( baseName.StripTrailingOnce( "_s" ) ) { - imgName += "_rmao"; + imgName = baseName + "_rmao"; } } // RB end diff --git a/neo/renderer/NVRHI/Image_NVRHI.cpp b/neo/renderer/NVRHI/Image_NVRHI.cpp index 66210833..adc79dd3 100644 --- a/neo/renderer/NVRHI/Image_NVRHI.cpp +++ b/neo/renderer/NVRHI/Image_NVRHI.cpp @@ -134,6 +134,16 @@ idImage::idImage( const char* name ) : imgName( name ) binaryFileTime = FILE_NOT_FOUND_TIMESTAMP; refCount = 0; +#if 0 + // debugging code + idStr ext; + imgName.ExtractFileExtension( ext ); + if( ext.Length() > 0 ) + { + common->Printf( "Image %s has extension\n", imgName.c_str() ); + } +#endif + DeferredLoadImage(); }