scp-fs2open / scp-fs2open/fs2open.github.com
BC7 textures are always treated as having alpha information even if they don't.
- Dominant language
- C++
- Stars
- 487
- Forks
- 184
- Avg merge
- 3d 8h
- Merged PRs (30d)
- 45
Description
In multiple places in FSO the presence or absence of alpha map data in a texture can dramatically change how it is rendered. As far as I've seen this is always determined by using `bm_has_alpha_channel` in bmpman. That only checks if a map has 32 bits per pixel, and if it does, it's considered to have an alpha channel. With BC7's modes it'll always have 32bpp even if it uses none of those bits for alpha data, leading to incorrect behavior like team glow always being on or effects using a bad blending mode.
I'm not sure how to fix this, conceptually all I can think of is checking if any of the blocks of a BC7 texture are in the modes with significant alpha on load and adding a new flag in bmpman for that.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.