OpenGL中的双缓冲精灵问题

时间:2011-12-22 20:31:52

标签: c++ opengl sdl sprite

不幸的是,截取屏幕截图并没有复制问题,因此我将不得不解释。

我的角色是QUAD,其纹理绑定到它。当我在任何方向上移动这个角色时,像素的“后端”有一个绿色和红色的“余辉”或像素条。很难解释,但我认为它是双缓冲的问题。是否存在与移动精灵和尾随像素相关的已知问题?

1 个答案:

答案 0 :(得分:0)

我在这一点上的唯一猜测是你只使用纹理的一个子集(即你的UV不只是0和1),并且你在绘制的矩形之外有一些彩色像素,并且由于双线性过滤,你可以瞥见它们。

使用alpha创建纹理时,请务必在纹理的可见部分周围创建相同颜色的轮廓(即如果纹理是棕色木栅栏,请确保栅栏附近的所有透明像素也是棕色)

请注意,如果像素完全透明,某些纹理压缩算法会从像素中删除颜色值,因此如果需要,请编写一个忽略alpha的测试像素着色器,以确保纹理通过管道完好无损。