Scene Management - Scene Graph

 

Scene Graph故名思意就是场景图,或者说是用来组织场景的一种“图”数据结构,通常是以逻辑关系(比如整体-部分)划分数据,当然也有按照其它关系(比如空间关系,状态等)划分数据的。其特点是都是层次结构,层次结构的好处是某个层次的数据的规模相比整体数据能大规模衰减,缩小规模当然能提高效率。常见的Scene Graph实现有有向非循环图(DAG),无向非循环连通图(UDCG Tree)等结构。

 

来看看使用SG的好处是什么,先来看看别个的Scene Graph实现。

 

WildMagic (ver 1.07)

 

特点:

  • 场景图的结构方面:以Tree来实现,即Node0-1Parent Node0-*Child Node
  • 优点:使用Tree,非常简洁明了,方便Traverse,从上至下,从下至上。
  • 缺点:NodeGeometry共同继承自Spatial,容易造成基类Spatial的膨胀,无论是成员还是接口,实际上有些NodeSpatial属性不多,象Light
  • 缺点:使用Tree,造成某些Nodeshare上麻烦,比如Geometry EntityShare,类GeometryParent最多只有一个,如果想共享Geometry,必须生成多个Geometry挂到不同的Node下。
  • 几何实体与场景图的关系:Geometry Entity不是Node,挂在Node
  • 如何裁剪Cull:包含BVH
  • 渲染状态的处理:不支持State Sort
  • 其它细节:
  • Transform不是Node
  • LightNode
  • Camera Node (本人根据最新版本改动)

 

 

OSG (ver 2.8.1)

特点:

  • 场景图的结构方面:以DAG来实现,Node0-*Parent NodeGroup Node 0-*Child Node
  • 优点:使用DAG,能方便的共享Node,易于扩展。比如:Geometry的共享。
  • 缺点:包含多个Parent Nodes的时候不方便Traversal
  • 几何实体与场景图的关系:Geometry Entity不是Node,挂在Node
  • 如何裁剪Cull:包含BVH
  • 渲染状态的处理:支持State Sort,支持State Cache
  • 优点:State Sort,相同State Set的一块渲染,减少渲染State切换的开销。
  • 优点:State Cache,在State有必要的时候才去更新,减少State频繁的切换和查询。
  • 其它细节:
  • TransformNode
  • 优点:Transform作为NodeShare Transform Data,减小了Node的大小。

 

  • LightNode
  • Camera Node

 

 

OGRE (ver: v1-4-7)

 

 

 

 

 

 

 

 

 

 

 

 

 

特点:

  • 场景图的结构方面:以Tree来实现,以Tree来实现,即Node0-1Parent Node0-*Child Node
  • 优点:使用Tree,非常简洁明了,方便Traverse,从上至下,从下至上。
  • 几何实体与场景图的关系:Geometry Entity不是Node,挂在Node下,Geometry可以方便的被不同Node共享。
  • 如何裁剪Cull:包含BVH
  • 渲染状态的处理:支持State Sort
  • 优点:上层支持Render StrategySort,底层支持Material/Texture NameSort
  • 其它细节:
  • TransformNode
  • 优点:Transform作为NodeShare Transform Data,减小了Node的大小。

 

  • LightNode
  • Camera Node

 

 

可以说OGRE是composite模式的复杂化,可以看出entity和Node的关系是叶子(terminal)和节点的树结构关系,从某种意义上说,entity叶子是非平凡的,而节点是平凡的。

 

引用自 http://www.cnblogs.com/soroman/archive/2009/12/31/1637176.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值