Ogre::OctTreeSceneManager 阅读心得

来源:互联网 发布:stc单片机选型手册 编辑:程序博客网 时间:2024/05/20 04:50

Portal和Octtree是目前比较流行的场景管理方式.

Portal-Based Culling

可以再 http://www.visualizationlibrary.com/documentation/pagguideportals.html 看到他的原理

Octtree,八叉树...记得第一个项目就是用的八叉树 那会我完全不能理解呢... 好怀念

OcttreeSceneManager的创建方式:

Root->CreateSceneManager( OctreeSceneManagerFactory::FACTORY_TYPE_NAME );

每当一个SceneNode::_update() 的时候 OcttreeSceneManager::_addOctreeNode()就会被调用

Octtree::_getChildIndexes() 会根据SceneNode的外接盒来计算这个节点属于哪个子节点,直到深度为8 或者Octtree只有外接盒的2倍大的是很就停止下来

这一步每次更新都会调用,目的是在后面为了cull而做准备.

因此Ogre并不是静态的八叉树,而是动态分配的

OctTreeCamera 这个相机唯一不同的地方就是

OctreeCamera::Visibility getVisibility( const AxisAlignedBox &bound );

他用来判断一个外接盒是不是和相机的Frustum相交
原创粉丝点击