场景数据的动态更新setDataVariance(osg::Object::DYNAMIC) (转)
2012-12-14 21:42
543 查看
场景数据的动态更新
动态更新的核心就是设置数据变度属性DataVariance,它决定了OSG在多线程渲染的过程中的执行策略:只有所有DYNAMIC属性的对象被渲染 完毕之后,OSG才会开始执行下一帧的用户更新操作;这样有效地可以避免数据的过快更新造成当前的渲染动作出错,以致系统崩溃。所有派生自osg::Object的对象都可以设置数据变度的属性,通常设置的时机在新建对象之时,例如:
osg::ref_ptr<osg::Group> node
= new osg::Group;
node->setDataVariance(osg::Object::DYNAMIC);
...
这就意味着这个组节点可能在渲染过程中发生变动,可能变动的内容包括:成员属性的改变,新增/替换/删除子节点,或者使用事件/更新/裁减回调实现的自定义变动。
数据变度的设置对于渲染状态和纹理的动态更新同样有重要的意义。而对于osg::Drawable对象,设置为动态更新意味着它可能在渲染过程中发生顶点
属性或者图元的变化;这其中尤为要提及osgText::Text,文字属性的变化必须预先设置动态的数据变度属性,否则可能造成系统运行过程中崩溃:
osg::ref_ptr<osgText::Text>
text = new osgText::Text;
text->setDataVariance(osg::Object::DYNAMIC);
...
// 渲染过程中可以动态改变文字的位置和内容等属性
{
相关文章推荐
- 数组数据采用ArrayDataProvider 动态分页应用(可用于接口缓存场景) [ 2.0 版本 ]
- SQL Server 2016新特性:动态数据屏蔽(Dynamic Data Masking)
- C语言基础算法——动态录入数据(Dynamic_input_data)
- 精进不休 .NET 4.0 (3) - asp.net 4.0 新特性之动态数据(Dynamic Data)增强, AJAX增强; IDE之Visual Studio 2010增强
- ASP.NET Dynamic Data (动态数据)
- Echarts动态加载地图数据(Dynamic load Echarts map data)
- 动态数据交换(DDE, Dynamic Data Exchange)简介
- MPAndroidChart 教程:动态和实时数据 Dynamic & Realtime Data(八)
- ASP.NET Futures初探——动态数据控件(Dynamic Data Control)
- [转]Web 数据的动态融合(Dynamic Fusion of Web Data 的文章进行翻译)
- 精进不休 .NET 4.0 (3) - asp.net 4.0 新特性之动态数据(Dynamic Data)增强, AJAX增强; IDE之Visual Studio 2010增强
- 场景数据的动态更新
- Asp.net动态数据(Dynamic Data) 笔记一
- 精进不休 .NET 4.0 (3) - asp.net 4.0 新特性之动态数据(Dynamic Data)增强
- MPAndroidChart 教程:动态和实时数据 Dynamic & Realtime Data(八)
- 通过动态对象(DynamicObject)实现不定数量列的数据存储与展示
- 11G Concept 第六章翻译 Data Dictionary and Dynamic Performance Views(数据字典和动态性能试图)
- Android官方DataBinding(二):动态数据更新notifyPropertyChanged
- viewpager动态更新数据重新setAdapter(FragmentPagerAdapter)不起作用
- Dynamic Data——动态数据