[英]Issues with infinite grid in OpenGL 4.5 with GLSL
我一直在使用 OpenGL 4.5 中的着色器来玩弄无限网格,按照这里的教程。 由于本教程是为 Vulkan 和更高版本的 GLSL(我使用的是 450 内核)编写的,因此我不得不将顶点移出顶点着色器并进入应用程序代码。 我正在使用元素缓冲区渲染四边形,所以我的顶点最终看起来像这样:
std::vector<glm::vec3> points{glm::vec3{-1, -1, 0},
glm::vec3{1, -1, 0},
glm::vec3{1, 1, 0},
glm::vec3{-1, 1, 0}};
std::vector<GLuint> indices{0, 1, 2, 2, 3, 0};
// Render like this:
glBindVertexArray(m_vao);
glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_INT, 0);
我已经设法让网格完全正常工作,但它有两个我无法弄清楚的问题:
以下是正在发生的一些示例图像: 看到立方体被切成两半。 如果我向下移动相机,立方体的其余部分会慢慢出现。 相反,如果我向上移动相机,立方体最终会完全消失。
这是网格的底部。 我应该能够通过网格看到立方体,但网格的行为就像一个实体对象。
有没有人知道我做错了什么? 我应该在应用程序中启用某些东西吗? 作为参考,我目前已启用此功能:
glEnable(GL_MULTISAMPLE);
glEnable(GL_DEPTH_TEST);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.