From 7ace43748713a6b6c3899770c33d34b61b0a2c48 Mon Sep 17 00:00:00 2001 From: slipher Date: Fri, 20 Mar 2026 17:44:43 -0500 Subject: [PATCH] Never do sRGB conversion on specular maps The default behavior was to convert specular maps from sRGB to linear colorspace when using the linear blend regime. But for most of our assets, doing sRGB conversion of specular maps (when in the linear blend regime) looks almost the same as disabling specular mapping, while loading them as-is looks fairly comparable to naive mode. So don't do the conversion. --- src/engine/renderer/tr_local.h | 1 - src/engine/renderer/tr_shader.cpp | 16 ---------------- 2 files changed, 17 deletions(-) diff --git a/src/engine/renderer/tr_local.h b/src/engine/renderer/tr_local.h index 2a1f6513c8..46dc295621 100644 --- a/src/engine/renderer/tr_local.h +++ b/src/engine/renderer/tr_local.h @@ -1280,7 +1280,6 @@ enum enum { LINEAR_RGBGEN = ( 1 << 0 ), LINEAR_COLORMAP = ( 1 << 1 ), - LINEAR_SPECULARMAP = ( 1 << 2 ), }; // *INDENT-ON* diff --git a/src/engine/renderer/tr_shader.cpp b/src/engine/renderer/tr_shader.cpp index bffc8d2f72..9dc842fe3c 100644 --- a/src/engine/renderer/tr_shader.cpp +++ b/src/engine/renderer/tr_shader.cpp @@ -1509,9 +1509,6 @@ static bool LoadMap( shaderStage_t *stage, const char *buffer, stageType_t type, case stageType_t::ST_SKYBOXMAP: imageParams.bits |= IF_SRGB; break; - case stageType_t::ST_SPECULARMAP: - imageParams.bits |= stage->colorspaceBits & LINEAR_SPECULARMAP ? 0 : IF_SRGB; - break; default: break; } @@ -2679,19 +2676,6 @@ static bool ParseStage( shaderStage_t *stage, const char **text ) stage->colorspaceBits |= LINEAR_COLORMAP; } - else if ( !Q_stricmp( token, "rawSpecularMap" ) ) - { - stage->colorspaceBits |= LINEAR_SPECULARMAP; - } - else if ( !Q_stricmp( token, "linearSpecularMap" ) ) - { - if ( !tr.worldLinearizeTexture ) - { - Log::Warn("Usage of linearSpecularMap in naive pipeline, assuming rawSpecularMap"); - } - - stage->colorspaceBits |= LINEAR_SPECULARMAP; - } // stage else if ( !Q_stricmp( token, "stage" ) ) {