osgDB.DatabasePager
是一个OpenSceneGraph库中的类,它是一个实现了分级多线程加载场景数据的机制,用于在运行时动态加载场景数据以提高渲染性能。
OpenSceneGraph使用场景图来表示复杂的三维场景,然而在处理大型场景时,这个图可能会变得相当大。如果所有的场景数据都一次性加载到内存中,可能会导致内存不足的情况发生。因此,为了避免这种情况,OpenSceneGraph使用了一种分级多线程加载场景数据的机制,即osgDB.DatabasePager
类。
osgDB.DatabasePager
维护了一个场景数据的队列,场景数据对应的场景图节点会根据其可能性排序加入队列中。然后,多个线程会同时尝试从队列中取出场景数据,并将其加载到内存中。同时,osgDB.DatabasePager
还维护了一个可用内存列表,如果应用程序需要更多的内存,osgDB.DatabasePager
可以卸载一些较早的场景数据,以便为新的场景数据腾出空间。
DatabasePager();
用于设置场景数据加载后是否需要释放图像数据的策略,默认为UNREF_IMAGE_DATA_AFTER_APPLY
。
用于设置是否对模型进行编译以提高渲染性能,默认为开启。
用于获取是否对模型进行编译。
用于设置当前帧的时间戳,以便判断哪些场景数据需要优先加载。
用于获取当前帧的时间戳。
用于设置分级多线程加载场景数据的最大数量,默认为0。
用于获取分级多线程加载场景数据的最大数量。
用于设置用于编译模型的操作对象。
用于获取用于编译模型的操作对象。
用于设置允许进行模型GL编译和删除的最小时间,默认为0.02秒。
用于获取允许进行模型GL编译和删除的最小时间。