【发布时间】: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 形)
-
我没有对顶点应用任何变换。我所做的只是将原始顶点数据传递给着色器,然后使用该程序。