OpenGL是状态机机制。在渲染之前,首先要设置一系统的状态,比如线宽,材料属性,纹理坐标等等。而OSG将OpenGL的每种状态封闭成了类,如OpenGl中指定线宽使用 glLineWidth() 函数,而OSG中有类 osg::LineWidth;OpenGL中用 glMaterial 指定材料属性,而 OSG 中有类 osg::Material 类。那么,这些状态如何管理使用呢?
OSG的所有状态由osg::StateSet管理,通过getAttribute得到一个已设置的渲染属性(可能得到的是NULL,此时可new一个并set进去)。
一、材料属性 osg::