1. 创建PagedGeometry
PagedGeometry *trees = new PagedGeometry();
trees->setCamera(mCamera);
trees->setPageSize(50);
trees->setInfinite(); // default
// 设置显示细节
// 从相机开始150个单位里使用批页面(比实体渲染快),
// 这种细节在超过150单位的30个单位里衰减(可选,可能会影响性能)。
trees->addDetailLevel<BatchPage>(150,30);
// 从相机开始400个单位里使用虚假页面(就是一个平面),
// 之后50个单位里衰减或消失。
trees->addDetailLevel<ImpostorPage>(400,50);
2. 添加树:
TreeLoader3D *treeLoader = new TreeLoader3D(trees,TBounds(0,0,1500,1500));
treeLoader->addTree(ent,pos,yaw,scale);
trees->setPageLoader(treeLoader);
3. 每帧更新几何页面
trees->update();
Note:
1. 相机用来计算细节级别和缓冲集合页面。
2. 所有东西都存储在页面单元(如,50x50)组成的网格里,
大页面可以提高帧率,但太大的话动态加载时会不流畅。
3. 细节设置要按次序,由近及远。
4. 直接由Ogre标准函数添加的实体不被PG引擎优化。
5. TreeLoader会在addTree时自己复制实体,所以不必手动复制。
PagedGeometry 笔记01
最新推荐文章于 2012-08-16 10:37:18 发布