【问题标题】:OpenGL odd z-axis behaviour when drawing square绘制正方形时的OpenGL奇数z轴行为
【发布时间】:2017-02-17 18:22:15
【问题描述】:

我是 OpenGL 的新手,我正在尝试绘制具有不同 z 坐标的三角形。据我了解,z 轴指向屏幕外,-z 轴指向屏幕。

当我在 0.0 z 坐标处绘制一个有 3 个角的正方形时,最后一个角在 -3.0 z 坐标处,我得到:

我不明白它是如何形成这个形状的......我认为它会是这样的,因为第 4 个顶点只是“很远”。

谁能解释一下?

编辑:这是我的顶点数据

// vertex array
float vertices[] = {
    -0.5f,  0.5f,  0.0f, 1.0f, 0.0f, 0.0f, // top left, first 3 are location, last 3 are color
     0.5f,  0.5f,  0.0f, 0.0f, 1.0f, 0.0f, // top right
    -0.5f, -0.5f,  -2.0f, 0.0f, 0.0f, 1.0f, // bottom left
     0.5f, -0.5f,  0.0f, 1.0f, 1.0f, 1.0f // bottom right
};

// element buffer array
GLuint elements[] = {
    0, 1, 2,
    2, 1, 3
};

我将平局称为:

glDrawElements(GL_TRIANGLES, 6,GL_UNSIGNED_INT,0);

【问题讨论】:

  • 您使用的是哪种投影,您的剪切平面设置为什么? (虽然我认为这两种方法都不会让你的正方形看起来像 L 形)
  • 我没有对顶点应用任何变换。我所做的只是将原始顶点数据传递给着色器,然后使用该程序。

标签: c++ opengl


【解决方案1】:

我假设您刚刚开始学习 OpenGL。问题是任何不属于范围 [-1, 1] 的值都只是“超出范围”。所有值都在 OpenGL 中进行了标准化。这提高了便携性。试想一下,整个世界(如果你熟悉游戏开发的话)是一个边 2 单元的立方体。再往前走,你就完全在别处了。希望对您有所帮助!

【讨论】:

  • 感谢您的回答!
  • @Chara 没问题!需要帮助的时候就问吧!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-06-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-12
相关资源
最近更新 更多