OSG狀態

发布时间 2023-09-15 09:38:52作者: Ultraman_X

模式和狀態:
attribute:
osg::CullFace* cf = new osg::CullFace( osg::CullFace::BACK );
state->setAttribute( cf );

mode:
state->setMode( GL_FOG, osg::StateAttribute::ON );

同時設置:
osg::BlendFunc* bf = new osg::BlendFunc();
// 关联 BlendFunc 并许可颜色融合模式
state->setAttributeAndMode( bf );

OSG 允许用户根据场景图形中任意位置的渲染属性和模式需求,而单独改
变原有的状态继承特性。用户可以选择以下这几种枚举形式:
z osg::StateAttribute::OVERRIDE - 如果你将一个渲染属性和模式设置为
OVERRIDE,那么所有的子节点都将继承这一属性或模式,子节点对它
们更改将会无效。
z osg::StateAttribute::PROTECTED - 这种形式可以视为 OVERRIDE 的一
个例外。凡是设置为 PROTECTED 的渲染属性或模式,均不会受到父节
点的影响。
z osg::StateAttribute::INHERIT - 这种模式强制子节点继承父节点的渲染
状态。其效果是子节点的渲染状态被解除,而使用父节点的状态替代。