如何正确地使用深度缓冲绘制opengl对象?

问题描述 投票:-1回答:1

我正在显示一些多维数据集,但它们是透明的。

从后面看时:

我正在使用glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);初始化代码:

glEnable(GL_CULL_FACE);
glCullFace(GL_BACK);
glEnable(GL_DEPTH_TEST);
glDepthMask(GL_TRUE);
glClearDepth(1.f);
glMatrixMode(GL_PROJECTION);
gluPerspective(75.f, 1.f, 1.f, 2000.f);
glEnable(GL_TEXTURE_2D);
glMatrixMode(GL_MODELVIEW);
glDepthRange(0, 1);

创建窗口:

sf::RenderWindow App(sf::VideoMode(1200, 800, 32), "gg");

我找不到如何在SFML窗口中设置深度缓冲区。

c++ opengl depth-buffer opengl-compat
1个回答
0
投票

谢谢,我通过添加以下内容使其起作用:

sf::ContextSettings window_settings;
window_settings.depthBits = 24; // Request a 24-bit depth buffer
window_settings.stencilBits = 8;  // Request a 8 bits stencil buffer
window_settings.antialiasingLevel = 2;  // Request 2 levels of antialiasing
sf::RenderWindow App(sf::VideoMode(1200, 800), "Title", sf::Style::Resize | sf::Style::Close, window_settings);
© www.soinside.com 2019 - 2024. All rights reserved.