openGLES中的简单2D UV映射问题

时间:2011-05-06 13:31:39

标签: opengl-es textures texture-mapping uv-mapping

我对初级低级OpenGL编码很新,我有一个问题,也许我太累了,无法找到解决方案。我确定答案很简单,我做的事情完全是愚蠢的,但是这里有......

我有一个1024 x 512的纹理,我正在渲染一个打算使用该纹理的一部分的2D四边形。四边形与我试图渲染的纹理部分具有相同的尺寸,例如顶点之间的100 x 100以渲染100 x 100纹理部分。 纹理像素是从0(s)和104(t)假设基于零的像素坐标,因此UV(st)被计算为0/1024和104/512到100/1024和204/512的范围。

然而,当我渲染四边形时,我从103(t)处的像素坐标获得一条线,这是图像的不同部分的一部分,所以它真的很突出。我可以通过将UV设置为0/1024和105/512解决问题,但这对我来说似乎非常错误。

我一直在寻找,但找不到我做错了什么。我在glparams中尝试过GL_LINEAR,GL_NEAREST,clamp等无济于事。有人可以指导我查看我的错误吗?

1 个答案:

答案 0 :(得分:1)

这是因为纹理坐标不能解决像素,因此你的假设是

  

因此UV(st)正在存在   计算为0/1024和104/512   到100/1024和204 /的范围   512

错了!

这是一种常见问题解答,我最近在OpenGL Texture Coordinates in Pixel Space

中回答了这个问题