OpenGL深度缓冲区似乎没有生效

时间:2014-08-01 18:04:16

标签: c++ opengl 3d sfml

我最近开始编写OpenGL 3D应用程序的代码,并且已经学习了几个教程,例如open.gl。

我正在尝试以3D方式显示对象时遇到渲染问题,深度缓冲区似乎无法正常工作。我启用它,清除缓冲位,显示总是一样。

即使复制粘贴code from open.gl,3D也永远无效。

我的测试代码和上面的源代码唯一不同的是我不能使用GLSL的#version 150核心,因此使用#version 130.和#define GLM_FORCE_RADIANS来避免编译错误。

1 个答案:

答案 0 :(得分:1)

我发现了我的问题。

问题来自使用SFML的上下文初始化,我需要配置一个正确的ContextSettings类并将其传递给我的窗口:

  sf::ContextSettings           settings;
  settings.depthBits            = 24;
  settings.stencilBits          = 8;
  settings.antialiasingLevel    = 2;

  sf::Window window(sf::VideoMode(800, 600, 32), "OpenGL", sf::Style::Titlebar | sf::Style::Close, settings);