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
似乎无法使GLFW/OpenGL深度测试正常工作_Opengl_Codeblocks_Glfw - Fatal编程技术网

似乎无法使GLFW/OpenGL深度测试正常工作

似乎无法使GLFW/OpenGL深度测试正常工作,opengl,codeblocks,glfw,Opengl,Codeblocks,Glfw,我无法在任何项目中使用codeblocks使用GLFW进行深度测试,即使在启动新项目时使用codeblocks提供的默认模板,如下所示 非常感谢您的帮助,因为我知道我一定是做错了什么,但我一直没能找到 #include <GL/glfw.h> int main() { int width, height; int frame = 0; bool running = true; glfwInit(); if( !glfwOpenWindow( 512, 51

我无法在任何项目中使用codeblocks使用GLFW进行深度测试,即使在启动新项目时使用codeblocks提供的默认模板,如下所示

非常感谢您的帮助,因为我知道我一定是做错了什么,但我一直没能找到

#include <GL/glfw.h>

int main()
{
int     width, height;
int     frame = 0;
bool    running = true;

glfwInit();

if( !glfwOpenWindow( 512, 512, 0, 0, 0, 0, 0, 0, GLFW_WINDOW ) )
{
    glfwTerminate();
    return 0;
}

glfwSetWindowTitle("GLFW Application");

glEnable(GL_DEPTH_TEST);

while(running)
{
    frame++;

    glfwGetWindowSize( &width, &height );
    height = height > 0 ? height : 1;

    glViewport( 0, 0, width, height );

    glClearColor( 0.0f, 0.0f, 0.0f, 0.0f );
    glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    glMatrixMode( GL_PROJECTION );
    glLoadIdentity();
    gluPerspective( 65.0f, (GLfloat)width/(GLfloat)height, 1.0f, 100.0f );

    // Draw some rotating garbage
    glMatrixMode( GL_MODELVIEW );
    glLoadIdentity();
    gluLookAt(0.0f, -10.0f, 0.0f,
            0.0f, 0.0f, 0.0f,
            0.0f, 0.0f, 1.0f );

    //glTranslatef( 1.0f, 1.0f, 0.0f );
    glRotatef(frame, 0.25f, 1.0f, 0.75f);
    glBegin( GL_TRIANGLES );
      glColor3f(0.1f, 0.0f, 0.0f );
      glVertex3f(0.0f, 3.0f, -4.0f);
      glColor3f(0.0f, 1.0f, 0.0f );
      glVertex3f(3.0f, -2.0f, -4.0f);
      glColor3f(0.0f, 0.0f, 1.0f );
      glVertex3f(-3.0f, -2.0f, -4.0f);
    glEnd();
    glBegin( GL_TRIANGLES );
      glColor3f(0.0f, 0.1f, 0.0f );
      glVertex3f(0.0f, 3.0f, -3.0f);
      glColor3f(0.0f, 0.0f, 1.0f );
      glVertex3f(3.0f, -2.0f, -2.0f);
      glColor3f(1.0f, 0.0f, 0.0f );
      glVertex3f(-3.0f, -2.0f, 2.0f);
    glEnd();
    glfwSwapBuffers();

    // exit if ESC was pressed or window was closed
    running = !glfwGetKey(GLFW_KEY_ESC) && glfwGetWindowParam( GLFW_OPENED);
}

glfwTerminate();

return 0;
#包括
int main()
{
int宽度、高度;
int帧=0;
bool running=true;
glfwInit();
如果(!glfwOpenWindow(512、512、0、0、0、0、0、0、GLFW_窗口))
{
glfwTerminate();
返回0;
}
glfwSetWindowTitle(“GLFW应用程序”);
glEnable(GLU深度试验);
(跑步时)
{
frame++;
GLFWGetWindowsSize(宽度和高度);
高度=高度>0?高度:1;
glViewport(0,0,宽度,高度);
glClearColor(0.0f、0.0f、0.0f、0.0f);
glClear(GL_颜色_缓冲_位| GL_深度_缓冲_位);
glMatrixMode(GL_投影);
glLoadIdentity();
透视图(65.0f,(GLfloat)宽度/(GLfloat)高度,1.0f,100.0f);
//画一些旋转垃圾
glMatrixMode(GLU模型视图);
glLoadIdentity();
gluLookAt(0.0f,-10.0f,0.0f,
0.0f,0.0f,0.0f,
0.0f、0.0f、1.0f);
//glTranslatef(1.0f,1.0f,0.0f);
glRotatef(帧,0.25f,1.0f,0.75f);
glBegin(GL_三角形);
GL3F(0.1f、0.0f、0.0f);
glVertex3f(0.0f,3.0f,-4.0f);
GL3F(0.0f,1.0f,0.0f);
glVertex3f(3.0f,-2.0f,-4.0f);
GL3F(0.0f、0.0f、1.0f);
glVertex3f(-3.0f,-2.0f,-4.0f);
格伦德();
glBegin(GL_三角形);
GL3F(0.0f、0.1f、0.0f);
glVertex3f(0.0f,3.0f,-3.0f);
GL3F(0.0f、0.0f、1.0f);
glVertex3f(3.0f,-2.0f,-2.0f);
GL3F(1.0f,0.0f,0.0f);
glVertex3f(-3.0f,-2.0f,2.0f);
格伦德();
glfwSwapBuffers();
//如果按下ESC键或窗口关闭,则退出
运行=!glfwGetKey(GLFW_KEY_ESC)和&glfwGetWindowParam(GLFW_打开);
}
glfwTerminate();
返回0;
}

来自(强调矿):

depthbits:用于深度缓冲区的位数(0表示没有深度缓冲区)

以及您的代码:

glfwOpenWindow( 512, 512, 0, 0, 0, 0, 0, 0, GLFW_WINDOW )
                                      ^ no depth bits
如果没有任何深度位,则无法(有效地)使用深度缓冲区。

来自(强调矿):

depthbits:用于深度缓冲区的位数(0表示没有深度缓冲区)

以及您的代码:

glfwOpenWindow( 512, 512, 0, 0, 0, 0, 0, 0, GLFW_WINDOW )
                                      ^ no depth bits

如果没有深度位,则无法(有效地)使用深度缓冲区。

谢谢,建议使用多少深度位?16还是24?@whail:GLFW\u DEPTH\u BITS的默认值是
24
,听起来很合理。谢谢,建议使用多少深度位?16还是24?@whail:GLFW\u DEPTH\u BITS的默认值是
24
,听起来很合理。