在setupStateSet设置了一个默认的材质。
osg的Node和drawable通过设置StateSet来改变自身的状态,对应于OpenGL是一个状态机,通过StateSet
来描述状态的该变量,这样在每一帧渲染的时候CullVisitor会把设置了StateSet的Node和drawable组织
到“渲染树”中。State是OSG与OpenGL的状态接口,封装了OpenGL所有的状态,每一个设置了StateSet
的Node和drawable,来描述State的该变量,这样在绘制物体前,先根据StateSet改变State进行状态的
改变,然后绘制。
接着看看Material,继承自StateAttribute,来看看StateAttribute的子类,封装了很多OpenGL的状态
。Material中可以设置材质的环境光、漫反射光、镜面反射光、发射光、以及发射光率。可以通过
Material实现物体的反光效果。
来看看StateSet的Callback,只是定义了一个接口,需要重写operator。
AnimtkStateSetUpdateCallback继承了Callback,callback的作用是改变自身的状态、属性。
首先,他定义了一个osgAnimation::Vec4LinearSampler,线性的采样器,这样这个采样器中就会包含线
性的关键字,线性的插值器,通过这个采样器就可以获取任意时间物体的位置。
看FrameStamp中重要的属性:
unsigned int _frameNumb
osg的Node和drawable通过设置StateSet来改变自身的状态,对应于OpenGL是一个状态机,通过StateSet
来描述状态的该变量,这样在每一帧渲染的时候CullVisitor会把设置了StateSet的Node和drawable组织
到“渲染树”中。State是OSG与OpenGL的状态接口,封装了OpenGL所有的状态,每一个设置了StateSet
的Node和drawable,来描述State的该变量,这样在绘制物体前,先根据StateSet改变State进行状态的
改变,然后绘制。
接着看看Material,继承自StateAttribute,来看看StateAttribute的子类,封装了很多OpenGL的状态
。Material中可以设置材质的环境光、漫反射光、镜面反射光、发射光、以及发射光率。可以通过
Material实现物体的反光效果。
来看看StateSet的Callback,只是定义了一个接口,需要重写operator。
AnimtkStateSetUpdateCallback继承了Callback,callback的作用是改变自身的状态、属性。
首先,他定义了一个osgAnimation::Vec4LinearSampler,线性的采样器,这样这个采样器中就会包含线
性的关键字,线性的插值器,通过这个采样器就可以获取任意时间物体的位置。
看FrameStamp中重要的属性:
unsigned int _frameNumb