使用Core配置文件在OpenSceneGraph中进行照明

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

我使用OpenSceneGraph,我想使用OpenGL 3.3和Core配置文件的一些功能。我用选项-DOPENGL_PROFILE=GL3编译了OpenSceneGraph。我得到了我想要的功能,然而,OSG的一些功能不再起作用,如osg::Lightosg::LineWidthosg::LineStipple等照明。

我知道OSG主要是通过GL2功能构建的,并且固定功能管道在核心配置文件中不可用,但我希望“基本”功能可以作为光或线工作。

是否计划在Core配置文件中支持这些功能?或者我自己必须实现着色器?或者是否有任何现有的实施?

opengl opengl-3 openscenegraph
1个回答
1
投票

照明和点彩是GL2 /传统功能。当你去GL3 / Core时,如果不编写自己的着色器,你就失去了做这些事情的所有能力。

虽然OSG可以尝试自动为您做这些事情,但在实践中,您只能在非常短的时间内使用该功能,然后才能绕过它并编写自己的着色器。查看ShaderGen访客,您可以在图表上手动执行以帮助您完成以下操作:https://github.com/openscenegraph/OpenSceneGraph/blob/master/src/osgUtil/ShaderGen.cpp

灯光等数据可以作为Uniforms下推到场景图形中,然后可以由着色器使用。

© www.soinside.com 2019 - 2024. All rights reserved.