【发布时间】:2011-08-20 05:01:40
【问题描述】:
我对低级 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、clamping 等,但无济于事。有人可以指导我解决我的错误吗?
【问题讨论】:
标签: opengl-es textures texture-mapping uv-mapping