文件名称:动态更改-无人机图传信号盲分析
文件大小:1.47MB
文件格式:PDF
更新时间:2024-06-27 12:20:07
OSG
3.2 动态更改 OSG 允许用户动态的修改场景图形并因而改变每一帧的显示。这一特性是 任何交互式的图形应用程序所必需的。用户可以更改几何数据,渲染状态参数, Switch 节点设置,以及任何场景图形的结构。 正如第一章所述,拣选(cull)遍历中关联了渲染图形中的几何数据和渲染 状态信息,它们将在绘制(draw)遍历中进行处理。osgViewer 库支持多线程模 式,每一个线程均独立地运行拣选及绘制遍历。出于性能优化的考虑,OSG 并 没有为了线程的安全性增设内存锁,而是要求用户程序只可在拣选及绘制遍历的 时域之外修改场景图形。 有几种方法可以确保用户的修改不会与拣选及绘制线程发生冲突。一个简单 的方案是,在 Viewer::frame()的调用之外进行场景图形的修改,这需要在主渲染 循环中添加额外的代码。但如果用户希望自己的程序更加整洁和规范的话,可以 选择在更新遍历中进行场景的修改操作。 本节将介绍一些与场景图形动态更改相关的基本技术。 出于性能优化和线程安全性的考虑,用户需要通知 OSG,场景图形的哪 些部分是可能要进行修改的。用户可以通过设置 Object 对象(Node, Drawable,StateSet 等)的数据变度(data variance)属性来完成这一工 作。