【问题标题】:OpenGL UVs behave weird?OpenGL UV 的行为很奇怪?
【发布时间】:2020-01-20 01:10:42
【问题描述】:

我正在尝试实现一个使用 OpenGL 创建 GUI 的系统。对于像位图字体这样的应用程序,最好为应该在对象上渲染的纹理设置偏移量。

所以我在顶点着色器中的偏移量是这样的:

UV = vec2(uv.x, 1.0f - uv.y) + vec2(texOffset.x, texOffset.y);

我使用一个矩形来测试我的偏移量,该矩形的偏移量不断变大。

在 x 轴上添加此偏移量如下所示: https://youtu.be/z7bKgb7zcPc 这很好。

使用我在 y 轴上的偏移量如下所示: https://youtu.be/2S_duM5JK_w这个也可以。

但现在在 x 轴和 y 轴上应用偏移量如下所示: https://youtu.be/t_aJbQwbagw 这不好。

不应该像这样移动吗:https://youtu.be/0GzPRpIaabE

为什么我的结果与我的预期不同?

【问题讨论】:

  • 我没有看到问题。增加 x 偏移量会将纹理向左移动。增加 y 偏移会使纹理向上移动。增加 x 和 y 偏移量会使纹理向上和向左移动。问题出在哪里?
  • 两个视频中的 y 轴沿向上箭头移动。翻转在哪里?
  • @Kerndog73 我添加了一段我认为应该是什么样子的视频...
  • 这是第三个视频youtu.be/t_aJbQwbagw,纹理向上和向左移动。你是在告诉我它向下移动?
  • 在翻转之前添加然后

标签: c++ opengl


【解决方案1】:

所以我发现了问题。 OpenGL 中没有错误,问题是我的 x 轴偏移量是错误的。

我期望一个正的 x 偏移,纹理向右移动。但我忘了实现所需的翻转。 但我不记得了,所以出乎我的意料,输出是错误的,但只是我......

【讨论】:

    猜你喜欢
    • 2013-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-13
    • 2011-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多