【发布时间】:2012-03-22 22:06:51
【问题描述】:
我正在尝试在 openGL3.3 中创建一些简单的多边形。我有 2 种具有以下属性的对象:
对象 1 - 10 个顶点(按顺序在下面列出)存储在 GL_ARRAY_BUFFER 中并使用 GL_TRIANGLE_FAN
v x y z w
v 0.0 0.0 1.0 1.0
v 0.0 1.0 0.1 1.0
v 0.71 0.71 0.1 1.0
v 1.0 0.0 0.1 1.0
v 0.71 -0.71 0.1 1.0
v 0.0 -1.0 0.1 1.0
v -0.71 -0.71 0.1 1.0
v -1.0 0.0 0.1 1.0
v -0.71 0.71 0.1 1.0
v 0.0 1.0 0.1 1.0
对象 2 - 4 个顶点(按顺序在下面列出)存储在 GL_ARRAY_BUFFER 中并使用 GL_TRIANGLE_STRIP
v x y z w
v 0.0 0.0 0.0 1.0
v 0.0 1.0 0.0 1.0
v 1.0 0.0 0.0 1.0
v 1.0 1.0 0.0 1.0
我加载了 64 个 Object1 和 4 个 Object2。 Object2 使用glm::scale(20, 20, 0) 进行缩放。
当我尝试在禁用GL_CULL_FACE 但启用GL_DEPTH_TEST 并启用glDepthFunc(GL_LESS) 来渲染这些时,一切正常。一旦我尝试启用GL_CULL_FACE,我得到的只是一个空白窗口。
其他一些有用的信息:
- 渲染顺序 = 4 个 Object2,后跟 64 个 Object1
- 相机 - glm::lookAt(glm::vec3(0.0f, 0.0f, 50.0f), glm::vec3(0.0f, 0.0f, 0.0f), glm::vec3(0.0f, 1.0f, 0.0f));
- 透视 - glm::perspective(45.0f, 16.0f / 9.0f, 0.01f, 1000.0f);
我一直试图弄清楚为什么 GL_CULL_FACE 在过去几天里不起作用但不知道。非常感谢任何帮助。
【问题讨论】: