▲ | cshores 3 days ago | |||||||
Developers should revisit using indexed color formats so they only map the colors that they are using within the texture rather than an entire 32bit color space. This coupled with compression would greatly reduce the amount of ram and disk space that each texture consumes. | ||||||||
▲ | flohofwoe 3 days ago | parent | next [-] | |||||||
BC1 uses 4 bits per pixel without being limited to 16 colors though. In a way the hardware-compressed formats are paletted, they just use a different color palette for each 4x4 pixel block. Having said that, for retro-style pixel art games traditional paletted textures might make sense, but when doing the color palette lookup in the pixel shader anyway you could also invent your own more flexible paletted encoding (like assigning a local color palette to each texture atlas tile). | ||||||||
▲ | ack_complete 3 days ago | parent | prev [-] | |||||||
Indexed color formats stopped being supported on GPUs past roughly the GeForce 3, partly due to the CLUTs being a bottleneck. This discourages their use because indexed textures have to be expanded on load to 16bpp or 32bpp vs. much more compact ~4 or 8bpp block compressed formats that can be directly consumed by the GPU. Shader-based palette expansion is unfavorable because it is incompatible with hardware bilinear/anisotropic filtering and sRGB to linear conversion. | ||||||||
|