【发布时间】:2017-12-28 21:34:19
【问题描述】:
我的渲染是沿着这两个垂直四边形的边缘渗出像素(红色的点)。
我正在使用:
-
GL_NEAREST最小/最大纹理过滤。 -
texture片段着色器上的函数。 - 1024x1024 的精灵图集,带有所需的精灵 @ (x=320,y=732,width=8,height=8)
s1 = 320.0f/1024.0f;
s2 = (320.0f+8.0f)/1024.0f;
t1 = 732.0f/1024.0f;
t2 = (732.0f+8.0f)/1024.0f;
渲染 #2:(使用明亮的纹理来计算纹素,但红色像素仍然存在):
我知道 OpenGL 的 texture 函数会在像素中心进行采样,但是当我尝试将“S,T”坐标偏移半个像素时,它(修复它但)会产生不利影响。
例如,下面的纹理坐标会沿着精灵的边界缩小纹素的宽度。
s1 = (0.5f+320.0f)/1024.0f;
s2 = (0.5f+320.0f+8.0f)/1024.0f;
t1 = (-0.5f+732.0f)/1024.0f;
t2 = (-0.5f+732.0f+8.0f)/1024.0f;
我尝试了一堆可能的 S&T 偏移组合(在两个 S&T 中添加 0.5,从两者中减去,在 T 中添加但从 S 中减去)和不同的值,但都不起作用。我不知道我错过了什么;我认为这不是 T 形接头问题,因为出血像素颜色来自纹理(而不是背景)。
【问题讨论】: