osganimate 给出了动画的例子
overlaynode通过RTT(渲染到纹理)实现的,提前渲染一个子图到纹理内存中,然后作为纹理映射到场景中
enum OverlayTechnique
{
OBJECT_DEPENDENT_WITH_ORTHOGRAPHIC_OVERLAY,
VIEW_DEPENDENT_WITH_ORTHOGRAPHIC_OVERLAY,
VIEW_DEPENDENT_WITH_PERSPECTIVE_OVERLAY
};
有三种不同的渲染技术可选方式可选择。
createBase函数创建了一个棋盘,创建几个体,定点绑定的方式在这里就不细说了。
说一下setVertexIndices、setColorIndices 设置定点和颜色索引,这样在绘制几何体的时候会按着所设置的索引顺序从顶点和颜色数组中连接,如果不设置,则按着默认的顺序连接。
createMovingModel创建两个移动的飞机。
移动的飞机通过创建osg::AnimationPath实现的
animationPath->insert(time,osg::AnimationPath::ControlPoint(position,rotation));
osg::AnimationPath所插入的数据正是path文件中存储的数据,
osg::Vec3 position(center+osg::Vec3(sinf(yaw)*radius,cosf(yaw)*radius,0.0f));
osg::Quat rotation(osg::Quat(roll,osg::Vec3(0.0,1.0,0.0))*osg::Quat(-(yaw+osg::inDegrees(90.0f)),osg: