版权归原作者所有,如有侵权,请联系我们

[科普中国]-图形引擎

科学百科
原创
科学百科为用户提供权威科普内容,打造知识科普阵地
收藏

概述引擎

引擎,是借用机器工业的同名术语,表明在整个系统中的核心地位。也可以称之为“支持应用的底层函数库”或者说是对特定应用的一种抽象。

产生背景随着科学技术的发展和社会生产力的提高,虚拟仿真技术得到人们的日益重视,并逐渐成为一个新的科学技术领域。目前虚拟仿真系统大多以图形引擎为基础,再封装构建上层应用系统。图形引擎中比较出色的有OGRE、OpenGVS、Vtree、OSG等。1而视频压缩技术的进步以及数字电视技术的成熟,使各种视频解码或处理芯片大量涌现,如MPEG-2 解码 H.264 解码等然而要使应用芯片的产品能具有良好的人机交互界面,就需要图形引擎的支持。

三维图形引擎由于三维图形涉及到许多算法和专业知识,要快速的开发三维应用程序是有一定困难的。当前在微机上编写三维图形应用一般使用OpenGL或DireetX,虽然OpenGL或DirectX在三维真实感图形制作中具有许多优秀的性能,但是在系统开发中直接使用它们仍存在一些缺点:1、都是非面向对象的,设计场景和操作场景中的对象比较困难。2、主要使用基层图元,在显示比较复杂的场景时编写程序相对困难。3、没有与建模工具很好的结合。4、缺乏对一些十分重要的关键技术如LOD(Level of Detail)、动态裁剪等的支持。基于以上情况,应用程序开发人员非常需要一个封装了硬件操作和图形算法、简单易用、功能丰富的三维图形开发环境,这个环境可以称作三维图形引擎。

OGRE图形引擎OGRE是用C++开发的面向对象且使用灵活的3D图形引擎,对底层Direct3D和OpenGL系统库的全部使用细节进行了抽象,并提供了基于现实世界对象的接口,使用少量代码就能构建一个完整的三维场景,使开发人员更方便、更直接地开发基于三维硬件设备的应用程序。

OGRE引擎采用可扩展的程序框架,拥有高效率和高度可配置的资源管理器,支持多种场景类型,支持高效的插件体系结构,采用高效的网格资料格式储存模型数据,并且具有清晰、整洁的设计以及全面的文档支持。而且OGRE是一款开源引擎,更新迅速,功能日益强大,采用MIT授权,使用时不会产生授权费用,OGRE引擎在涉及到三维图形绘制的仿真、游戏等方面有着极为广泛的应用前景。

OGRE引擎的场景管理结构如图所示。

根节点(Root)是整个三维场景的入口点,用于配置系统内的其它对象,必须最先创建和最后释放。渲染系统(Render System)设置场景的渲染属性并执行渲染操作。场景管理器(Scene Manager)负责组织场景,生成并管理灯光、摄像机、场景节点、实体、材料等元素。灯光(Light)为场景提供照明,有点光源、聚光源和有向光源三种类型。摄像机(Camera)用来观察所创建的场景,通过视口可将渲染后场景输出到屏幕。实体(Entity)为场景中的几何体,一般通过网格(Mesh)创建。材质(Material)为场景中几何体的表面属性,支持从多种格式的图片文件加载纹理(Texture),并可拥有足够多的纹理层,每层纹理支持各种渲染特效,支持动画纹理。场景管理器通过场景节点(Scene Node)来确定实体、摄像机、灯光等元素的位置和方向。OGRE场景组织原理是将场景划分成抽象的多个空间,这些空间还可以划分成多个子空间,每个空问由一个场景节点来管理,实体、灯光等场景元素本身并不负责与空间位置相关的行为,全部交给场景节点来做。OGRE将大量场景节点按照空间的划分层次组织成树状结构,从而完成对整个场景的有序组织。

在利用OGRE引擎创建三维图形系统时,首先需要创建根节点,然后对系统进行初始化并创建场景,之后处理输入响应,进行帧循环更新图形。主程序可见图2所示,其中帧循环更新图形一般由OGRE引擎自动完成,开发人员需要处理主要有创建场景和处理输入响应两部分。1

HDTV SoC图形引擎整体设计HDTV SoC 图形引擎主要由两部分构成 一是BLT Biitter 模块 主要完成对图形进行的各种编辑操作,另一块是图形显示模块GDU( Graphic Dis-pIay Unit),主要完成三路图形层显示前的处理及混合 操作的指令和地址由Host IF 相关的寄存器提供,操作数据从系统总线读入,BLT 根据寄存器提供的地址读取SDRAM 指定位置的图形, 进行操作然后写至目标地址 GDU 根据三层图形的目标地址分别读取三层图形,进行放大处理或直接与视频层混合输出。图形引擎的整体结构如图所示。2

BLT 设计BLT 是图形引擎的核心处理模块, 由它提供的逻辑操作、矩形剪切、色键(COIOF Key)、固定颜色填充、单图源复制、双图源操作、α混合,加上GDU 中的2 倍图形放大操作,使得图形引擎功能强大。

BLT 处理的图形源l1和2 的数据可以是8 Dpp,16Dpp,32 Dpp 的RGB 格式或32 Dpp 的YCDCF 格式, 这时需要进行CLUT 扩展或者YCDCF 到RGB的色度空间转换(COIOF Space COnveFsiOn,CSC)统一到32 Dpp 的RGB 格式进行处理 BLT 可以对两幅图形进行操作, 也可以仅对一幅图形进行操作算术逻辑运算单元(ALU)可以对两幅图源的对应像素进行与、或、非、异或等16种布尔运算(BOOIeanOpeFatiOn),也可以对它们进行α混合,使两幅图形产生相互覆盖或者半透明浮现等效果 COIOF Key 功能模块可以用来对图形中特定颜色值范围的像素进行选择性操作,比如对! 分量大于Rmin并且小于Rmax的像素进行提取或者替换, 这种操作对于根据色度特征提取图形中的特定对象非常有效。矩形剪切模块对于图形中的任意矩形区域(或者反向区域)进行选择,并对选中区域中的像素提供写使能信号 值得注意的是矩形操作也可以退化为对点和直线的操作,方便地满足了对二维图形任意像素点集的处理 颜色填充模块在其使能的情况下,颜色填充模块代替图源2 产生连续固定的颜色值,对COIOF Key 或者矩形剪切选择的区域(或反向区域)进行单色填充。2

GDU 结构图形显示单元(GDU)完成三层图形层和一层视频层的叠加输出, 其中图形层从内存中取出,视频层由视频处理模块输入 叠加的顺序由下至上依次为:视频层、图形层l、图形层2、图形层3 视频层的输入可以逐行也可以隔行, 格式为YCbCr4:2:2图形层l1和图形层2 都具有两倍放大的功能,最大支持的显示分辨率为1920*1080。图形层3 主要用作光标层,分辨率一般为32*32 层之间的混合依旧采用BLT 中使用过的α混合,视频层先和图形层1混合,结果再与图形层2 混合,最后是光标层,也可以产生覆盖或半透明浮现等不同显示效果。2

三维图形引擎简介最能体现三维图形引擎各方面技术的无疑是游戏引擎,三维游戏引擎总是各种最新图形技术的尝试者和表现者,总是站在图形学技术的最高峰,并不断通过更高的速度、更逼真的效果推动三维技术的发展。下面就简要介绍一下游戏引擎。

游戏引擎犹如汽车的引擎,决定着游戏的速度、真实感、吸引力等,玩家所体验到的剧情、关卡、美工、音乐、操作等内容都是由游戏的引擎直接控制的。按照3D引擎所要其有的功能,可以把3D引擎系统划分为以下个功能模块:系统模块、底层渲染模块、控制台模块、数据存储模块、游戏接口模块与游戏插件模块。3

研究意义和应用游戏娱乐、军事、航空航天、地质勘探、实时模拟等方面有着十分广泛的应用。特别是游戏娱乐方面已经成为当今三维图形发展的重要应用领域。2003年,国家863计划将三维游戏引擎的研发纳入了高技术发展计划,这使得多年来倍受各界非议的游戏产业获得了解放,金山公司是承担此项目的单位,他们已经在三维游戏方面获得了较大的进步。每年,游戏产业带动服务、互联网、餐饮等行业获得巨大的利润,对国民经济的发展起到了积极的作用。当前,三维图形已在计算机辅助设计与制造(CAD/CAM)、动画影视制作、

三维引擎是虚拟现实技术的基础,作为虚拟现实技术的一部分,其应用领域主要有如下几个方面:

①军事训练:军事训练应用为VR技术提供了最早的市场,主要集中在座舱式虚拟现实模拟器等方面的应用。座舱式虚拟现实模拟器可以是一个宇宙飞船模拟器、飞行模拟器、坦克模拟器、汽车模拟器、气垫登陆艇模拟器、潜艇模拟器等。将其安装在室内,用来培训宇航员、飞行员、坦克手、汽车司机、船员和艇长等。飞行模拟器在室内训练飞行员,不受外界气象条件、场地和空域的限制,飞行员和飞机均无风险,可以节约训练费用。同时,模拟器还可以生成各种险情和设备故障,例如模拟失火、大仰角失速、发动机停转、与另一飞机擦身而过等,使飞行员得到真实飞行时难以得到的应急训练。因此,国际航空界已把飞行模拟器作为正式的训练方法。

②企业生产:虚拟现实在企业生产方面的应用主要体现在四个方面——虚拟生产、产品设计、培训工人和产品促销。虚拟生产通过建模和模拟的方法,使方案论证、设计、研制、生产、使用和维护等,都可以在人工合成的环境中进行模拟。这样可以减少样机生产数目,缩短设计周期,获得性能更好的产品,降低成本,提高产品的市场竞争能力。为了满足用户多样化的需求,VR提供给用户参与设计的机会。使不懂设计也看不懂图纸的用户也可以在虚拟的环境感受效果,通过用户的参与,真正体现了用户为上帝的原则,达到用户满意的效果。Sun维系统公司实现了可以进行车削加工的虚拟车床系统,只需使用三维鼠标、头盔式跟踪器以及液晶立体显示器,就可以用来培训车工。IBM公司为福特公司设计了一种“虚拟现实经验系统”,让用户在新型福特汽车中进行虚拟驾驶,对促销车辆、活跃市场起到了很好的作用。

③科研方面:VR应用于科研,其核心是建立数学模型和科学可视化技术。科学可视化技术将来自数据源的大量数据,按照数据模型转换成容易理解的三维图像,且允许研究者在可视场景中有一定的交互。例如,建立虚拟植物模型生成虚拟植物,预测真实植物在不同试验条件下的生长情况,井以旋转三维图像来模拟显示其结构生长动态,这一过程只需几秒钟就可以完成。虚拟植物实验不需花数月、数年的时间去种植真实植物,科学家可以建立虚拟植物实验室,创造新的人造植物品种。

④娱乐方面:利用VR技术创造的虚拟环境,可以逼真的模拟“太空旅行”,使人感到身临其境,具有极强的趣味性、惊险性和知识性。目前,该方面的应用是VR应用最丰富的领域。VR游戏在室内进行,游戏内容通过软件可以无限的变换和翻新。我国于1996年研制成功“虚拟故宫”。将长961米、宽753米的真实故宫建筑和景物,变成可以再现的数字化数据输入电脑,对虚拟故宫赋予了色彩、音响特征,游客只需戴上头盔显示器,骑上固定的自行车,就可以在故宫中畅游了。

⑤商业应用

VR技术商业领域最早也是最成功的应用是产品广告宣传。VR 广告比传统广告更易于制作和更改,也更具有感染力。由此,许多公司已认识剑到率先使用VR技术使他们的产品领导潮流。已有的一些应用包括:

·Maxus证券交易可视化系统,如哥伦比亚大学研制的n—Vision系统。

·体验广告,这类广告在美国多附着于公共场所的VR娱乐设施;在欧洲则独立开发出不少独立的VR广告系统,如KingstonMicro Electronies、Callscan、Madrid City Council等。

·室内装潢设计,如Light—space Software公司丌发的灯饰可视化系统LVS(Lightcape Visualization System)和LEL模拟系统(The LivingEnvironmental System)等。3