GameByro引擎介绍
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
GameByro引擎介绍
引言:
GameByro是一款成熟的商业引擎,已经被许多成功的商业项目所使用,不仅包括文明4、上古卷轴4,辐射3等跨平台知名单机游戏,还有EA的大型3DMMORPG战锤online。GameByro 完全基于面对对象设计,结构清晰,便于使用和扩展。灵活的可编程渲染架构使它比较容易支持最新的图形技术。另一方面,由于强调通用性,GameByro并没有对上层应用做太多的支持,其工具和插件大多仅具有一些通用功能,所以它更像是一个游戏开发套件而不是一个完整的FrameWork。
引擎特性概览:
∙跨平台(PC,XBOX360,PS3)
∙场景图表现为层次化的结构
∙同目前主要的建模工具集成(插件支持)
∙高效的可视性裁剪
∙在所有的平台上支持高级3D硬件加速
∙高级纹理和着色效果
∙动态碰撞检测
∙细节分级表现(LOD)
∙灵活的渲染,排序和裁剪算法
对象系统:
GameByro的对象系统的使用遍及整个引擎,其主要实现如对象管理,引用计数,对象生存期等功能。可以通过对几个基类的继承来使用对象系。
其主要特性主要有:
1.智能指针(引用计数)
2.运行时类识别(RTTI)
3.场景对象复制
4.序列化(对象文档化)
5.对象命名
6.对象扩展数据的管理
7.定时器(主要用于动画)
8.多线程操作
驱动层:
GameByro对图形接口进行了封装,将图形API从引擎的渲染系统中剥离出来,在PC系统上,GameByro同时支持DX9和DX10两种接口。
DX9渲染器特性:
GameByro不允许多个DX9Renderer对象同时存在,且不能与DX10Renderer共存。
但在同一帧内,GameByro的DX9Renderer可以同时渲染多个窗口。
●GameByro的DX9渲染器支持对资源的多线程访问,同时也支持对资源的预载,但
是多线程的操作仍然受到严格的限制。
●DX9Renderer 的固定管线蒙皮操作最少支持4块骨骼(矩阵),同时基于shader
的蒙皮操作支持30块骨骼。
●DX9Renderer通过对后台缓冲的多重采样支持全屏抗锯齿,范围在2倍到4倍之间。
●大多数硬件在DX9下对几何体的一个单一的piece所能接受的光照数量都有一定的
限制(指渲染的一个批),如果超过这个限制,GameByro会根据距离或者是影响因
子放弃一些光照。正因如此,在应用程序中,当8个以上的逐顶点光照作用于同一
对象时,就会有一些被抛弃。
●DX9Renderer提供了视口的左右反向功能,用于实现后视镜、立方体贴图表面绘制
等功能。
●DX9Renderer支持顶点雾,可以通过相关接口设置雾的最大值。
●DX9Renderer完全支持DX的纹理格式。应用程序可以将自己的Direct3D textures
提供给GameByro,引擎会自动将其封装到自己的材质对象中并允许添加属性和特
效。通过提供自己的DX的纹理格式,GameByro能够正确的使用自并非天然支持的
纹理格式。
●纹理相关特性和限制:DX9Renderer需要显卡支持在同一pass中至少使用两个纹
理,否则渲染器则不会创建成功。此外受限于硬件的功能还有:
1.Cube Mapping(立方体纹理)
2.Specular Bump Mapping(凹凸镜面贴图)
3.Diffuse Bump Mapping(凹凸反射贴图)
4.Non-Power-of-Two Texture Size(编长非二整数幂的纹理):使用这种纹理
有如下限制:纹理寻址模式必须设置为clamp,Mipmapping不能使用。
5.Texture Downsizing(纹理精度缩减)
6.Texture Compression(压缩纹理),DX9Renderer支持载入经过压缩的纹理格
式,并提供了纹理即时压缩的功能。如果硬件支持压缩纹理,DX9Renderer
可以将经过压缩的纹理数据直接交给硬件处理,否则DX9Renderer会自动将
数据解压后再交给硬件。
7.Texture Apply Modes Supported:DX9Renderer不支持APPLY_DECAL纹理应
用模式。
8.Texture Format Requests(纹理格式要求):精确的纹理像素映射依赖于目
标硬件和显示器像素位宽。
9.Palettized Texture Formats(调色板纹理格式的支持)。
10.Sphere Mapping(球面映射):GameByro中所有的渲染器都支持世界空间中的
球面映射。
11.DX9Renderer支持加载包括DDS、TGA、BMP格式的文件。Cube textures和
volume textures都能被正确的加载,但是只能通过三维坐标寻址。
12.GameByro的编辑器支持导出DX原格式的纹理,并在加载的时候不进行格式转
换。将DX格式的纹理直接交给DX处理。
引擎渲染系统分析
GameByro的渲染是由帧渲染系统(Frame Rendering System) 控制的,帧渲染系统封装了每一个批次的绘制过程,这样可以方便的控制整个渲染流程。
阴影系统:
GameByro的阴影系统是使用帧渲染系统的典范,通过对已有的类以继承的方式进行功能扩展,实现了灵活的阴影渲染功能。GameByro自身支持三种光源的阴影图生成,分别为点光源(全方向光)、平行光、聚光灯。
阴影系统统一由一个管理器负责控制。阴影的算法被封装成了一个个类对象中。系统中同时存在着几种阴影技术,即可以选择使用,也可以同时使用几种阴影技术作用于同一几何体。阴影系统会自动裁剪掉那些没有阴影接受体的光源,同时在计算每个光源所产生的阴影时,会裁剪掉那些不受此光源影响的几何体,达到性能优化的目的。用户很容易对阴影系统进行扩展,实现自己的阴影算法。
GameByro的阴影主要是基于shadowMap技术,点光源使用了立方体阴影图,软阴影则使用了方差阴影图技术(VSM)。
GameByro的阴影系统集成到了场景编辑器中,可以在编辑器中直接为光源指定阴影效果,所见即所得,提高了开发效率。
(如图所示,在编辑器中同时使用点光源阴影和方向光产生的软阴影)
地形系统:
GameByro的terrain是简单易用的,并且方便为其扩展,用以满足项目的其他功能需求。
地形系统由以下几部分组成: