我最近开始编写OpenGL 3D应用程序的代码,并且已经学习了几个教程,例如open.gl。
我正在尝试以3D方式显示对象时遇到渲染问题,深度缓冲区似乎无法正常工作。我启用它,清除缓冲位,显示总是一样。
即使复制粘贴code from open.gl,3D也永远无效。
我的测试代码和上面的源代码唯一不同的是我不能使用GLSL的#version 150核心,因此使用#version 130.和#define GLM_FORCE_RADIANS来避免编译错误。
答案 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);