scp-fs2open / scp-fs2open/fs2open.github.com

BC7 textures are always treated as having alpha information even if they don't.

Open
#3,727 0 comments 0 reactions 0 assignees View on GitHub
bug graphics
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.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.