OpenGL模具缓冲区错误
我有一个基于OpenGL的项目的问题。 我正试图在OpenGL中创建一个场地——巴西利亚大教堂 这是在我的电脑上编译项目时的样子: 这是在任何其他PC上编译项目时的外观: 这是主要代码:OpenGL模具缓冲区错误,opengl,buffer,Opengl,Buffer,我有一个基于OpenGL的项目的问题。 我正试图在OpenGL中创建一个场地——巴西利亚大教堂 这是在我的电脑上编译项目时的样子: 这是在任何其他PC上编译项目时的外观: 这是主要代码: float a=0; while(!glfwGetKey(GLFW_KEY_ESC) && glfwGetWindowParam(GLFW_OPENED)) { glClearColor(0.8,0.8,1,1); glClear(GL_COLOR_BUFFER_BIT+GL_
float a=0;
while(!glfwGetKey(GLFW_KEY_ESC) && glfwGetWindowParam(GLFW_OPENED))
{
glClearColor(0.8,0.8,1,1);
glClear(GL_COLOR_BUFFER_BIT+GL_DEPTH_BUFFER_BIT+GL_STENCIL_BUFFER_BIT);
glPushMatrix();
gluLookAt(9*cos(a), 9*sin(a),4+6*sin(a), 0, 0, 0, 0, 0, 1);
a+=0.006;
glEnable(GL_STENCIL_TEST);
glColorMask(0, 0, 0, 0);
glDisable(GL_DEPTH_TEST);
glStencilFunc(GL_ALWAYS, 1, 1);
glStencilOp(GL_KEEP, GL_KEEP, GL_REPLACE);
draw_water();
glColorMask(1, 1, 1, 1);
glEnable(GL_DEPTH_TEST);
glStencilFunc(GL_EQUAL, 1, 1);
glStencilOp(GL_KEEP, GL_KEEP, GL_KEEP);
glPushMatrix();
glScalef(1, 1, -1.5);
draw_venues_and_sky();
glPopMatrix();
glDisable(GL_STENCIL_TEST);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glColor4ub(150, 150, 255, 100);
draw_water();
glDisable(GL_BLEND);
draw_venues_and_sky();
glPopMatrix();
glfwSwapBuffers();
}
我猜模具缓冲区一定有问题,但我不知道是什么问题。我不确定是否有其他问题,但我看不到你的第二个视频。你真的不应该使用算术加法来操纵位掩码。这一点,我还将检查glGetError()状态以及你的上下文是否有模具缓冲区。我找到了答案!问题是我的OpenWindow上的模具缓冲位设置为0。。。我把它改成了8,现在它工作得很好!谢谢你的回答!