Cleaned up idImage::DeriveOpts()

This commit is contained in:
Robert Beckebans 2025-04-26 14:53:08 +02:00
parent d0c8464cb6
commit c1ab70305c
2 changed files with 54 additions and 53 deletions

View file

@ -232,7 +232,7 @@ typedef enum
TD_SPECULAR_PBR_RMAO, // may be compressed, and always zeros the alpha channel, linear RGB R = roughness, G = metal, B = ambient occlusion TD_SPECULAR_PBR_RMAO, // may be compressed, and always zeros the alpha channel, linear RGB R = roughness, G = metal, B = ambient occlusion
TD_SPECULAR_PBR_RMAOD, // may be compressed, alpha channel contains displacement map TD_SPECULAR_PBR_RMAOD, // may be compressed, alpha channel contains displacement map
TD_HIGHQUALITY_CUBE, // motorsep - Uncompressed cubemap texture (RGB colorspace) TD_HIGHQUALITY_CUBE, // motorsep - Uncompressed cubemap texture (RGB colorspace)
TD_LOWQUALITY_CUBE, // motorsep - Compressed cubemap texture (RGB colorspace DXT5) TD_LOWQUALITY_CUBE, // motorsep - REMOVED
TD_SHADOW_ARRAY, // 2D depth buffer array for shadow mapping TD_SHADOW_ARRAY, // 2D depth buffer array for shadow mapping
TD_RG16F, // BRDF lookup table TD_RG16F, // BRDF lookup table
TD_RGBA16F, // RT = render target format only, not written to disk TD_RGBA16F, // RT = render target format only, not written to disk

View file

@ -160,48 +160,6 @@ ID_INLINE void idImage::DeriveOpts()
opts.colorFormat = CFM_GREEN_ALPHA; opts.colorFormat = CFM_GREEN_ALPHA;
break; break;
case TD_DEPTH:
opts.format = FMT_DEPTH;
break;
// SP begin
case TD_DEPTH_STENCIL:
opts.format = FMT_DEPTH_STENCIL;
break;
// SP end
case TD_SHADOW_ARRAY:
opts.format = FMT_SHADOW_ARRAY;
break;
case TD_RG16F:
opts.format = FMT_RG16F;
break;
case TD_RGBA16F:
opts.format = FMT_RGBA16F;
break;
case TD_RGBA16S:
opts.format = FMT_RGBA16S;
break;
case TD_RGBA32F:
opts.format = FMT_RGBA32F;
break;
case TD_R32F:
opts.format = FMT_R32F;
break;
case TD_R8F:
opts.format = FMT_R8F;
break;
case TD_HDR_LIGHTPROBE:
opts.format = FMT_BC6H;
break;
case TD_DIFFUSE: case TD_DIFFUSE:
// TD_DIFFUSE gets only set to when its a diffuse texture for an interaction // TD_DIFFUSE gets only set to when its a diffuse texture for an interaction
opts.gammaMips = true; opts.gammaMips = true;
@ -249,7 +207,11 @@ ID_INLINE void idImage::DeriveOpts()
// RB: TODO check binary format version // RB: TODO check binary format version
// D3 BFG assets require RGB565 but it introduces color banding // D3 BFG assets require RGB565 but it introduces color banding
// mods would prefer FMT_RGBA8 // mods would prefer FMT_RGBA8
opts.format = FMT_RGB565; //FMT_RGBA8; #if defined(STANDALONE)
opts.format = FMT_RGBA8;
#else
opts.format = FMT_RGB565;
#endif
opts.gammaMips = true; opts.gammaMips = true;
break; break;
@ -266,22 +228,61 @@ ID_INLINE void idImage::DeriveOpts()
opts.format = FMT_RGBA8; opts.format = FMT_RGBA8;
break; break;
case TD_HDR_LIGHTPROBE:
opts.format = FMT_BC6H;
break;
case TD_HDRI:
opts.format = FMT_BC6H;
//opts.numLevels = 1;
break;
// motorsep 05-17-2015; added this for uncompressed cubemap/skybox textures // motorsep 05-17-2015; added this for uncompressed cubemap/skybox textures
case TD_HIGHQUALITY_CUBE: case TD_HIGHQUALITY_CUBE:
opts.colorFormat = CFM_DEFAULT; opts.colorFormat = CFM_DEFAULT;
opts.format = FMT_RGBA8; opts.format = FMT_RGBA8;
opts.gammaMips = true; opts.gammaMips = true;
break; break;
case TD_LOWQUALITY_CUBE:
opts.colorFormat = CFM_DEFAULT; // CFM_YCOCG_DXT5;
opts.format = FMT_DXT5;
opts.gammaMips = true;
break;
// motorsep end
case TD_HDRI:
opts.format = FMT_BC6H; //------------------------
//opts.numLevels = 1; // Render targets only
//------------------------
case TD_DEPTH:
opts.format = FMT_DEPTH;
break;
case TD_DEPTH_STENCIL:
opts.format = FMT_DEPTH_STENCIL;
break;
case TD_SHADOW_ARRAY:
opts.format = FMT_SHADOW_ARRAY;
break;
case TD_RG16F:
opts.format = FMT_RG16F;
break;
case TD_RGBA16F:
opts.format = FMT_RGBA16F;
break;
case TD_RGBA16S:
opts.format = FMT_RGBA16S;
break;
case TD_RGBA32F:
opts.format = FMT_RGBA32F;
break;
case TD_R32F:
opts.format = FMT_R32F;
break;
case TD_R8F:
opts.format = FMT_R8F;
break; break;
default: default: