0

我在 OpenGL 1.1 上使用线性过滤器进行纹理渲染时遇到问题:它在“0”和“8”上渲染了一些伪像:

Artifacts 字体渲染 下载它以进行缩放

它在第一列像素上添加了一种阴影。

我尝试了所有 GL_TEXTURE_WRAP_S/GL_TEXTURE_WRAP_T 值,但没有成功。最近的过滤器不显示工件:但它很丑(我不想使用这个过滤器)

字体纹理似乎还可以(我只是复制了有趣的部分并添加了背景颜色以供理解):字体纹理

您可以在此处使用透明背景下载它(#00000000)

混合似乎也不错:glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

4

1 回答 1

2

解决方案是使用预乘 alpha。基本上,您需要将 RGB 与纹理中的 alpha 相乘。并使用 glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);

这是一个很好的视频,可以解释您的问题:

http://www.youtube.com/watch?v=dU9AXzCabiM

于 2013-10-11T13:21:28.963 回答