Stop Shipping PNGs In Your Games
Briefly

 Stop Shipping PNGs In Your Games
"Here are some examples of features you would expect out of a texture format that you're not going to find in an image format: Can you work around all these issues? Sure. You can premultiply and generate your mipmaps at load time. You can ship separate images for each cuebmap face. But now you're resigned to cheap mipmap generation, and cubemaps that are difficult to downsample correctly. You can certainly make it work,"
"Furthermore, texture formats have a killer feature not mentioned above-support for GPU compatible texture compression like BCn. An in-depth explanation of GPU compression formats it out of scope for this post, but at a high level, these formats store each block of pixels as a couple of endpoints and a method for interpolating between those endpoints. This trades mild degradation of image quality for improvements in storage, VRAM usage, and sampling performance. It's so good it feels like you're cheating thermodynamics."
PNG serves well as an image interchange format because it is lossless, compresses well, and enjoys ubiquitous support. PNG lacks texture-specific features such as correct premultiplied-alpha handling, baked mipmaps, proper cubemap face downsampling, and GPU-compatible compression. Workarounds require runtime premultiplication, on-load mipmap generation, separate face images, or expensive conversion steps, leading to lower-quality results and heavier CPU cost. GPU texture compression formats like BCn store pixel blocks efficiently, trading slight quality loss for large gains in disk size, VRAM usage, and sampling performance. Many game engines already emit GPU-ready textures; shipping appropriate texture formats avoids unnecessary conversion overhead.
Read at Games by Mason
Unable to calculate read time
[
|
]