精彩专题

文档资料

南大先腾3D游戏引擎主要技术特点

南大先腾3D游戏引擎主要技术特点

2015-10-31 10:25:39

摘要:本文对南大先腾3D游戏引擎主要技术特点进行简要介绍

 

新一代图形图像技术都是基于不断升级的显示硬件可编程技术上实现的,新一代的显示硬件程序代码形式已经由汇编代码升级到高级语言代码,D3D使用的称为HLSLHigh Level Shader Language),OpenGL使用的称为GLSLOpenGL Shader Language),利用该技术,开发人员可以对整个三维图形图像流水线的每一个环节做细致的控制。本引擎的图形图像模块基于OpenGL图形API,采用GLSL着色程序控制输出图像。
新一代的图形图像技术有一个共同的特点,就是越来越多将图形处理工作从CPU转移到GPU上进行,令图形图像运算获得高度的硬件加速,同时使CPU有更多空闲去进行物理运动、人工智能等图形图像之外的数据运算。越来越多的技术脱离了几何框架的限制,转而采用渲染成贴图材质的方式来实现,这使得很多原先依靠CPU计算,只能用于离屏渲染的图像技术能够转入GPU进行,获得显示硬件的加速,从而达到实时渲染的性能。
引擎还使用了一些硬件优化技术来提升渲染性能:
1.         顶点缓存对象(Vertex Buffer Object)技术,使用该技术将三维几何数据直接放入显示硬件的存储器,省去了大量数据从主存到显存的传输消耗,大大提高渲染性能。
2.         帧缓存对象(Frame Buffer Object)技术,以往渲染的结果都是保存在默认的帧缓存中,要实现后加工特效必须截屏成贴图材质。使用该技术可以直接将渲染结果输出到贴图材质中,就省去了以往截屏的像素填充消耗;该技术还支持设置多个渲染目标缓存,结合硬件编程技术可以在一次渲染中同时向多个目标输出色彩,使得原先需要渲染多个层次才能实现的特效只需要一次渲染就能实现。本引擎的HDR效果、阴影贴图以及各种后加工特效都是通过FBO技术实现的
2.1.    DOT3凹凸映射贴图技术
预生成精细法线图,利用顶点着色程序(Vertex Shader Program)进行DOT3矩阵变换,将其映射到粗糙三维模型的表面,通过片断着色程序(Fragment Shader Program)应用精细法线图和Phong光照算法模型进行光照处理,从而在低精度的模型表面实现高细节度的光照效果。这是降低几何细节度要求,实现高细节图像效果的代表技术之一。
扩展:在此基础上引入高度图,结合视点位置对输出纹理作进一步的调整,可实现更加立体的效果,该技术称为视差贴图技术(Parallax Mapping)。如果对高度图作进一步应用,在顶点着色程序中根据高度图内容进行相关运算,生成并向几何流水线中加入新的几何信息,同时对几何和像素细节度进行双管齐下的充实,甚至可为平面纹理生成相应的自身投影(Self Shadow),实现更为真实的光照效果,该技术称为位移贴图技术(Displacement Mapping)。
随着计算机硬件的发展,由于计算量庞大而一直无法实现实时渲染的光线跟踪模型,如今也逐渐成为实时三维光照算法模型的选择之一。光线跟踪算法以计算光能传递为思路,遵循直线传播、反射及折射等物理规律,以一定密度跟踪光源发射出的光线路径,近似计算所有几何表面接受到的光线能量,从而获得每个几何表面被照亮的程度。该技术能够实现全局光照(Global Illumination),间接光照(Indirect Lighting),区域光照(Area Lighting),近似的无限反射(Infinite Light Bounces),光线透射(Light Bleeding),并能自然的实现柔和阴影,从而获得最接近真实的光照效果。这是下一步准备加入引擎的技术之一。
 
未使用凹凸映射贴图的图像      使用了凹凸映射贴图的图像
 

[1] [2] [3] [4] [5] [下一页]