PagedLOD 列表 __ 是 否
该节点当前倾 ^ 移至不活动该节点当前中贞
\\^是否在使用PagedLOD节点 是否乂使用
从末尾开始移除蘧^
过期子节点— _^
否
资湄送入删除列- 表 T
等待线程删除资 源
~~F=^ 结束
V-
图3-2超过数量删除模式
Fig. 3-2 Delete Mode — More Than Number 17
日制工程硕士学位论文 基于OGRE的海量三维模型动态调度技术的研究与实现
二、过期删除模式(_targetMaximumNumberOfPageLOD=0):
1、过期时间=引用时间-设定过期延迟。
2、过期顿数=引用巾贞编号-巾贞数延迟。
3、遍历活动PagedLOD节点列表,超过时间和顿数的子节点删除。
4、标记子节点列表中是PagedLOD节点的。
5、把子节点送入删除队列,等线程删除。
6、如果子节点还是PagedLOD节点,就直接删除子节点。
开始 ^ ‘ I
)%踪 PagedLOD 节点 Li 一丨.丨^ I
PagedLOD节点否
否进入场
I添加到活动PagedLOD列表
; r
从末尾移除过期子节点 ; ,? n i irtii
—I
~资源送入删除列表
巧待线程删除资源r i ‘ s % ▼ 结東
图3-3过期删除模式
Fig. 3-3 Delete Mode - Expired 18
硕士学位论文 基于OGRE的海量三维模型动态调度技术的研究与实现
3.1.4 DatabasePager 的基本结构
表 3-1 DatabasePager 类 public 的主要函数
Table 3-1 The Main Fuction Of DatabasePager's Public
☆ DatabasePager。 默认构造函数
void requestNodeFile( 请求加载数据的虛函数。filename是需要加
const std::string& filename, 载的文件数据名。group是需要合并到的
Group* group,
PagedLOD 节点或其他节点。FrameStamp noat丨 * 指的是当前的帕标记,内部有顿编号、时
是一个空指针,用于后
const Referenced*)
面保存各种力口载佶息。
void setDatabasePagerThreadPause(bool) 设置 / 查询线程的暂停
bool getPatabasePagerThreadPauseQ const
void setAcceptNewdatabaseRequests(bool) 设置/齊询能否添加新的数据需求
☆ void signalBeginFrame( 设置倾开始或者顿结束,保持与主进程同
const FrameStamp*) 步。
void signalEndFrameQ
voidsetDoPreCompile(bool) 设置/获取是否用线程来进行数据的预处理
bool getDoPreCompi 1 eQ const 厂作
☆ void setTargetFrameRate(double) 设置/获取目标喊速率,系统会0行调整来
double getTargetFrameRateO const
匹配
☆ void setTargetMaximumNumberOfPageLOD(设置/获取 PagedLOD 的 B 标最大值,超过
unsigned int)
这一数值将会进行删除,如果设为0将进
unsigned int
入过期过顿判断模式
getTai^etMaximumNumberOfPageLODO
const
static DatabasePager* createQ
分页数据库的对象初始化函数
virtual void updateSceneGraph(const 更新场景图
osg::FrameStamp& frameStamp)
表 3-2 DatabasePager 类 protected 的主要内容
Table 3-2 The Main Content Of DatabasePagefs Protected
struct DatabaseRequest:
数据请求结构体,用来保存请求的内容和
public osg;-.Referenced 信息
struct RequestQueue : public osg::Referenced 数据请求的队列的结构体
struct ReadQueue : public RequestQueue 读取队列结构体
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库基于OGRE的海量三维模型动态调度技术的研究与实现 - 李雷(7)在线全文阅读。
相关推荐: