绘制像素完美纹理部分

时间:2014-02-18 17:15:49

标签: opengl

是否有可能以某种方式获得glTexCoord2f()的像素完美精度?例如,让我们假设我已经将512x512纹理绑定到OpenGL上下文,现在我想从该纹理内部绘制一个任意区域作为四边形。我们还假设我想要绘制的区域使用的奇怪偏移和尺寸不是纹理大小的倍数。例如:

Texture size: 512x512
Area inside the texture that I want to draw: X=131 Y=159 Width=243 Height=33

问题是glTexCoord2f()期望值在0到1的范围内,所以我不得不做一些浮点运算来将像素值转换为从0到1的浮点值,我害怕在整数到浮点转换过程中,像素完美精度可能会丢失。我知道如果你坚持使用纹理大小倍数,即使用大小为16x16,32x32,64x64或类似物品的精灵表,但这种转换不会成为问题,但是在纹理中寻找真正的任意偏移呢?像素完美可能在这里吗?

1 个答案:

答案 0 :(得分:0)

这不是一个解决方案,只是一个已经使用了很长时间的解决方法:

通常,地图集中的精灵用1px透明边框填充,因此浮点错误无法察觉。

我们使用了1024x1024图册和32x32图块,即使这样我们在某些特定的相机偏移处也有边缘错误。