4.7 Scene Graph Compilers

说明: Scene Graph 最终是以数据结构的形式呈现的,此种数据结构是为了方便场景的管理, 即为了方便从 3D 建模工具导出这样的结构,以方便游戏的开发。但有得必有失,管理的方便使得这种数据结构并不适合计算机的图形系统,如内存上的分散,不能很好的支持 chche 等。因此有必要使用一些工具对数据结构进行优化以适应各种各样的要求。这些工具统称

Scene graph compilers

 

 

Compiler 有多种用途,现简述如下:

(1)       提前计算 VisibleSet 。在室内,可以通过 compiler 提前计算房间内能看到的所有物体,以合适的格式存到硬盘,游戏中实时加载即可。

(2)       Scene graph 中包含很多 Node ,如果每个 Node 都是动态分配内存,则整个 Scene graph 不是连续的,而是分散于堆中,这一方面使堆结构破碎,一方面不利于 chche ,影响速度,因此有必要将 scene graph 转换成连续存储的结构,对于单线程,一个内存块即可,对于多线程或多核 CPU ,可将一个 scene graph 分为多块连续内存,并行处理。

(3)       用于数据存储格式的转换。不同的平台数据存储格式可能不同,既可以用 compiler 提前处理,也可以在游戏安装时转换。

(4)       Culling ,对于 cell-based visibility ,可以通过 ComputeVisibleSet 在游戏“开发”阶段计算每个 cell visibleset ,游戏运行时实时加载即可。

(5)       另外,可能需要向 scene graph 中添加标记,这些标记可能很简单,也可能十分复杂,例如用于 protal-system 的半自动生成或寻路算法。

你可能感兴趣的:(数据结构,游戏,存储,Graph,工具,compiler)