2007年5月8日星期二

3D引擎_摘抄

3D (Game) Engine运行在底层平台软件(WIN32 API,OPEN GL ,Direct Sound ,D3D...)上,属于上层的平台软件。对更上层的用户(游戏内容制作者而非程序员)提供一个接口,此类接口使得游戏内容制作者可以通过数据方式(比方表格)而非编程方式,或仅简单的脚本编程,制作游戏。
在3D方面,要将物体数据有组织地存储起来,通常使用DAG(有向无环图)数据结构。要将物体高效的显示出来,就有决定那些是无须画的(不画当然最快),就有BSP法、Portal、普通的CLIP方法等等大量的Culling算法。而物体之间的物理位置信息则要用碰撞检测去处理。
处理表格或脚本要Game Logic单元。预处理游戏者输入要事件响应单元...
可见3D Engine在D3D等上提供了大量的东西。目前的3D Engine仍留有很大的改进余地。全局光照仍无法实时实现。目前的碰撞检测的精度仍太粗糙。阴影的绘制尽管由于硬件的发展而产生了长足的进步,但仍无法做到速度与质量双满意...
总之,画三角形不难;把软件面对芯片架构优化以画的快一些也不是大题目。难得是能管理复杂场景,并将其高效、漂亮地画出来。这就是3D Engine要干的。

没有评论: