【问题标题】:Simple 2D UV mapping problem in openGLESopenGLES 中的简单 2D UV 映射问题
【发布时间】: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


    【解决方案1】:

    这是因为纹理坐标不处理像素,因此您的假设

    因此 UV(st) 是 计算为 0 / 1024 和 104 / 512 达到 100 / 1024 和 204 / 512

    错了!

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-15
      • 2016-03-01
      • 2018-04-05
      • 2010-12-27
      • 2014-12-06
      • 1970-01-01
      • 2021-06-28
      • 2013-04-21
      相关资源
      最近更新 更多