一,概述
Scene graph 的目的是组织物体。
两个原则: 1 。空间从属关系(树)
2 . Render State 的相似性。
原则一是为了快速剔除大批不可见物体。
原则二是为了减少 RenderState 的频繁改变。
二者均可使游戏速度大大提高。
原则一通过空间划分实现( bounding volumes ),原则通过排序实现。
然而两个原则是互不兼容的。若按 RS 排序,物体必然会分散于各个空间。理论上讲,两个原则那个更快就以那个为排序标准。
事实上 通常以原则一为准,即先将所有物体按空间从属关系分块,确定出可见物体后,再按 RS 排序。
以下为 scene graph 管理系统的宏观结构:
更新 Geometric State
(如顶点数据,变换,空间从属关系等)
更新 Render State
( global state , lights , effects 等)
剔除不可见物体
绘制(调用渲染系统)