←back to thread

148 points ibobev | 2 comments | | HN request time: 0.502s | source
Show context
Stevvo ◴[] No.45153352[source]
Any modern engine does this automatically on PNG import, or as part of material/shader setup. You want different formats for different things, e.g AO, normals, bcs different formats have different compression artifacts.
replies(1): >>45153957 #
pimlottc ◴[] No.45153957[source]
How much extra time does it add for startup? For a single texture it’s probably negotiable but for a modern game, we’re talking about thousands of textures, so maybe it adds up?
replies(4): >>45154071 #>>45154958 #>>45155944 #>>45157033 #
midnightclubbed ◴[] No.45154958[source]
If you’re compressing at load-time it can be a lot. You can do a quick and dirty compress to BC1-3 (assuming you are on PC) in a few tens of milliseconds but quality will be suboptimal, higher quality will likely take a few seconds per texture and going to BC6 takes even longer but will look much better.
replies(1): >>45155440 #
Dylan16807 ◴[] No.45155440[source]
> higher quality will likely take a few seconds per texture

It takes that long to do a good compression on the format that interpolates 2 colors for each 4x4 block? Huh.

replies(3): >>45156036 #>>45157983 #>>45165972 #
1. exDM69 ◴[] No.45165972[source]
It's an open ended optimization problem. You can get bad results very quickly but on high quality settings it can take minutes or hours to compress large textures.

And the newer compression formats have larger block sizes from 8x8 to even 12x12 pixels. ASTC and BC7 are a different beast to the early texture compression formats. You can get pretty awesome image quality at 2 bits per pixel (and slightly less awesome at less than a bit per pixel).

replies(1): >>45166623 #
2. ◴[] No.45166623[source]