建立自己的网站,公众号视频网站怎么做,电子商务网站技术方案,中国建信网官网目录
1、渲染最简单代码
2、详解run方法
3、详细过程
4、回调函数
5、Node Visitor 1、渲染最简单代码 2、详解run方法 3、详细过程
3.1 advance()方法
进行帧计数
3.2 eventTraversal()
eventTraversal()响应用户操作,eventTraversal()遍历的是事件队列#xff0c;而…目录
1、渲染最简单代码
2、详解run方法
3、详细过程
4、回调函数
5、Node Visitor 1、渲染最简单代码 2、详解run方法 3、详细过程
3.1 advance()方法
进行帧计数
3.2 eventTraversal()
eventTraversal()响应用户操作,eventTraversal()遍历的是事件队列而不 是场景图而且这个事件队列是OSG自己的 Event Queue并非操作系统的事件队列
也就是说用户基于osg基类定义的事件通过osg开放出来的接口注册了之后在这里进行每一帧渲染调用。
eventTraversal()与andvance()一起为更新 遍历提供依据。标记帧是否渲染完成。
3.3 updateTraversal()更新遍历
在updateTraversal()中实现修改场景图如渲染状态、结点参数等以实现动态场景更新摄像机。
备注
渲染过程的几个遍历特别是事件遍历和更新遍历我们要想按照我们的意图去响应事件和更新场景图就要用到回调函数 callback来参与到这些遍历中去。
详细事件遍历看章节4 回调函数。
详细更新遍历看章节5 节点访问器访问者模式 3.4 在renderingTraversals()裁剪遍历
在renderingTraversals()中实现剔除不可见结点将可见结点置入render graph中。通过遍历render graph向图形卡发送绘制命令在线程中实现可能没有执行完主循环已进入下一轮。 4、回调函数 5、Node Visitor
基于访问者的设计模式用来对相应的结点以各种方式进行遍历遍历方式有只访问当前结点、遍历父结点、遍历子结点、遍历活动子结点等。
最常见的最经典的NodeVisitor就是找到特定名字结点的那个Visitor了。
Visitor有很多种如osgGA::EventVisitor、 osgUtil::UpdateVisitor和 osgUtil::CullVisitor利用它们你可以控 制渲染过程中的相应遍历在你所设置的相应回调函数中也将可以利用它们进行遍历。