osg 设置opengl 版本
时间: 2023-09-19 09:11:07 浏览: 307
在使用 OpenGL 进行开发时,可以使用 OpenSceneGraph(OSG)来管理 OpenGL 上下文。要设置要使用的 OpenGL 版本,可以通过以下方法之一来实现:
1. 在 OSG 初始化之前,设置环境变量:将环境变量“OSG_GL_VERSION”设置为所需的 OpenGL 版本号,例如:“4.3”,“3.3”等。这将覆盖任何默认设置。
2. 在创建 OSG 渲染窗口之前,使用 osg::DisplaySettings 类来设置 OpenGL 版本。示例如下:
```cpp
osg::DisplaySettings::instance()->setGLContextVersion("4.3");
osg::DisplaySettings::instance()->setGLContextProfileMask(osg::DisplaySettings::COMPATIBILITY_PROFILE);
```
这将设置 OpenGL 上下文版本为“4.3”,并将配置文件设置为兼容性配置文件。
3. 在创建 osgViewer::Viewer 对象时,使用 osg::GraphicsContext::Traits 类来设置 OpenGL 版本。示例如下:
```cpp
osg::ref_ptr<osg::GraphicsContext::Traits> traits = new osg::GraphicsContext::Traits;
traits->windowName = "My Viewer";
traits->windowDecoration = true;
traits->x = 50;
traits->y = 50;
traits->width = 800;
traits->height = 600;
traits->doubleBuffer = true;
traits->glContextVersion = "4.3";
traits->glContextProfileMask = osg::DisplaySettings::COMPATIBILITY_PROFILE;
osgViewer::Viewer viewer;
viewer.setUpViewInWindow(50, 50, 800, 600);
viewer.setThreadingModel(osgViewer::Viewer::SingleThreaded);
viewer.setRealizeOperation(new osgViewer::GraphicsWindowRealizeOperation(traits));
```
这将创建一个具有所需 OpenGL 版本和属性的渲染窗口,并将其分配给 osgViewer::Viewer 对象。
无论使用哪种方法,都应该在创建 OpenGL 上下文之前设置所需的 OpenGL 版本。
阅读全文