4.7 Scene Graph Compilers

来源:互联网 发布:移动电玩城源码 编辑:程序博客网 时间:2024/05/07 18:28

说明: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在游戏“开发”阶段计算每个cellvisibleset,游戏运行时实时加载即可。

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

原创粉丝点击