32 Bit texture support
By default, ZenGin supports only compressed DXT1
and DXT3
textures. zSurface32 patch, created by Gratt improves texture quality by adding proper RGBA8888
, BGRA8888
, ARGB8888
and ABGR8888
format readout and DirectX 32 Bit surface support in ZenGin1.
To use the patch you must have Union installed. Download the .patch
file here, and put it into system\
directory.
Warning
It is advised to use BGRA8888
due to performance reasons, as other color spaces require additional conversion at runtime.
Compilation
ZenGin doesn’t natively support the compilation of such textures. This can only be achieved using external programs. The simplest method to create a texture is by utilizing zTEXiPy.
- Open your texture in zTEXiPy2:
- Choose
Save TEX as...
- In this window:
- Uncheck
Generate Mipmaps
if your texture is meant to be used as UI. - Set the
Colorspace
toBGRA8888 (zEnum:3)
or other supported format.
- Uncheck
- Press
Save
and check your texture in-game:
But why?
This type of texture is compatible with any asset, whether it’s armour or a sword. However, the primary application for such high-quality textures is in user interface elements, which make extensive use of gradients and the alpha channel:
This example shows comparison between raw BGRA8888 color space and DXT3 (BC2)3 compression. DXT3 shows noticeable banding throughout entire texture wherever there's alpha channel, while BGRA8888 has smooth gradient transition.
This example shows comparison between raw BGRA8888 color space and DXT1 (BC1)3 compression. DXT1 shows lossy quantization artifacts, while BGRA8888 has none.
Source comparison files are available here.
The drawback of using these textures is their large size, as they contain uncompressed color data. However, this is a small price to pay for the improved quality of the final product.
-
To learn more about ZenGin Textures reference click here. ↩
-
zTEXiPy supports TGA, DDS, PNG and WEBP by default, so make sure it's one of those formats. ↩
-
To learn more about DXTn Algorithm click here. ↩↩