Overview
Physically based (PBR) materials using channel-packed textures compressed via Block Compression (BCn).
BCn is an industry standard compression format commonly used by major game engines, and a now it's my side quest for the weekend. Using this we can squeeze more texture per Megabyte.
Texture format example
Each terrain material will have 3 textures/maps.
Special properties such as Metalicity or Emission can be excluded, as they are rare for terrain textures.
For making cool special materials such as ore veins or lava, custom shaders should be sufficient.
| Texture Type | Channels | Compression Format |
|---|---|---|
| Albedo | RGB | BC1 |
| Normal | RG | BC5 |
| Ambient Occlusion, Roughness, Height | RGB | BC1 |
Another choice would be to add another map in place of Height, and have Height be its own texture in BC4
Texture costs, .ktx2 compared to .png
I use the BCn file format .ktx2 which is available on more platforms than it's popular native alternative .dds.
Rocky Ground example (4K textures)
| Texture | PNG | KTX2 | Savings | Reduction |
|---|---|---|---|---|
| Albedo | 8.53 MB | 2.19 MB | 6.34 MB | 74% |
| Normal | 22.4 MB | 5.31 MB | 17.09 MB | 76% |
| AO + Roughness + Height | 11.4 MB | 1.79 MB | 9.61 MB | 84% |
| Total | 42.33 MB | 9.29 MB | 33.04 MB | 78% |
The combined AO, Roughness, and Height textures (2.6 + 2.4 + 6.4 MB as separate PNGs) are channel-packed into a single aorh.ktx2 file.
Tools
I used Nvidia's Texture Tools Exporter to create the .ktx2 files.
Sources
Downloaded from ambientcg with CCO license