【转】Ogre的八叉树场景管理器Octr…


        上面是我绘制的一张图。

        关于八叉树场景管理器主要需要关注两个类,其一是松散八叉树的数据结构Ogre::Octree,其二是八叉树场景管理器Ogre::OctreeSceneManager。

        下面摘录图片中的文字:

      

      提问:为何要做场景管理器,硬件不是可以自动的裁剪么?

      回答:硬件裁剪的局限性在于只能逐图元的裁剪,即判断某个顶点是否是在视锥之外。这个通常是在发生在光栅化之前。举个例子,如果在视锥外有一个由300万个面组成的模型,若是让硬件去裁剪的话,要多久?如果这个模型恰好位于一个八叉树的节点当中,我们首先判断就可以得到这个节点的包围盒不在视锥内,那么这个包围盒内部的图元是不是也肯定不在视锥内了呢?相比较这个速度吧。

      至于相交检测也是同样的道理。以FPS游戏中的狙击枪为例,我们可以将弹道视为一条射线,如果这条射线与整个包围盒都不相交,那么你怎么可能打中位于包围盒中的敌人呢?由于包围盒通常是规则的图形,而敌人是由不规则的模型构成的,因此测试效率天差地别。把这条设想放到八叉树场景管理器中,通过对八叉树及其子树的包围盒的相交检查就可以一片一片的排除,这岂不是要快很多?

      当然,这只是一个加速的方法而非替代硬件裁剪的过程,当使用场景管理器的时候可以显著减少传递到图形硬件的数据量。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值