-
Notifications
You must be signed in to change notification settings - Fork 450
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
BC1-3 Compressor single color optimization #223
Comments
Algorithm discussed in this blog |
Q: What do to about dithering with the single-color blocks? |
Any news about this? I'm trying to batch convert a bunch of images using a C# wrapper of this library but I'm getting the typical green-ish artifacts in every DXT1/DXT5, there's a workaround that can be done through code or something like that? |
This issue is specifically for compressing 4x4 blocks that all contain exactly the same color. BC1-3 (a.k.a. DXT1-5) all use 5:6:5 for RGB so that sometimes can make the result be a little green tinted depending on the input values. By default the DXT1-5 compressor is using a 'luminance perceptual' weighting for the colors. You could try |
Using ScratchImage image = TexHelper.Instance.LoadFromWICFile("Original.png", WIC_FLAGS.NONE);
ScratchImage compressed = image.Compress(DXGI_FORMAT.BC1_UNORM, TEX_COMPRESS_FLAGS.UNIFORM, 0.5f);
compressed.SaveToDDSFile(DDS_FLAGS.NONE, "Compressed.dds"); |
Can you attach the |
Sure: |
The libsquish library adds a special-case block compression for DXT when all 16 source pixels in the block are the same color.
For this case, it uses a table-based scheme to pick the optimal encoding.
NVTT adopted the same solution.
The text was updated successfully, but these errors were encountered: