Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
OpenGL模具缓冲区错误_Opengl_Buffer - Fatal编程技术网

OpenGL模具缓冲区错误

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_

我有一个基于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_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,现在它工作得很好!谢谢你的回答!