(通信与信息系统专业论文)面向移动终端的linux三维图形硬件渲染技术与应用研究.pdf_第1页
(通信与信息系统专业论文)面向移动终端的linux三维图形硬件渲染技术与应用研究.pdf_第2页
(通信与信息系统专业论文)面向移动终端的linux三维图形硬件渲染技术与应用研究.pdf_第3页
(通信与信息系统专业论文)面向移动终端的linux三维图形硬件渲染技术与应用研究.pdf_第4页
(通信与信息系统专业论文)面向移动终端的linux三维图形硬件渲染技术与应用研究.pdf_第5页
已阅读5页,还剩70页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

独创性( 或创新性) 声明 本人声明所呈交的论文是本人在导师指导下进行的研究工作及取得的研究 成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不 包含其他人已经发表或撰写过的研究成果,也不包含为获得北京邮电大学或其他 教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任 何贡献均已在论文中作了明确的说明并表示了谢意。 申请学位论 本人签名: 处,本人承担一切相关责任。 日期:迎z 翌:圣! ! 丝 关于论文使用授权的说明 学位论文作者完全了解北京邮电大学有关保留和使用学位论文的规定,即: 研究生在校攻读学位期间论文工作的知识产权单位属北京邮电大学。学校有权保 留并向国家有关部门或机构送交论文的复印件和磁盘,允许学位论文被查阅和借 阅;学校可以公布学位论文的全部或部分内容,可以允许采用影印、缩印或其它 复制手段保存、汇编学位论文。( 保密的学位论文在解密后遵守此规定) 保密论文注释:本学位论文属于保密在年解密后适用本授权书。非保密论 文注释:本学位论文不属于保密范围,适用本授权书。 本人签名:丞冬整 日期:超生:圣:肇 导师签名:二司啦 日期: 勿z 口。主。2 甾 北京邮电大学硕上研究生学位论文面向移动终端的l i n u x 三维图形硬件渲染技术与应用研究 面向移动终端的l i n u x 三维图形硬件渲染技术与应用研究 摘要 随着多媒体技术的发展,三维图形应用的日益广泛,人们对个人 电脑特别是手持设备的三维图形处理能力提出了更高的要求。原有的 三维图形处理方式通常占据了大量的c p u 资源,对于较大型三维图 形应用不能提供流畅的三维图形渲染效果,同时也给系统带来较大的 功耗。为了显著的提高三维图形渲染性能,伴随硬件芯片技术的革新, 三维图形硬件加速技术的研究成为热点,其迅速发展与深入研究亦将 为实现三维图形大型应用的流畅渲染、提高系统性能提供重要的技术 支撑。相比个人电脑,手持设备对系统资源和功耗的要求更加严格, 使用低功耗的g p u 去实现三维图形硬件渲染将是一个比较好的选 择。 基于w i n d o w s 环境的三维图形硬件渲染技术发展较早,但基于 l i n u x 环境的相关技术尚研究不够,因此没有相对成熟和业界普遍认 可的解决方案。本课题通过对g p u 硬件加速技术的研究,以基于 l i n u x 系统的o p e n g l 应用程序接口为基础,深入分析l i n u x 三维图 形硬件渲染技术,并以i 公司的p 显卡芯片组为硬件环境,设计和实 现了l i n u x 三维图形硬件渲染驱动程序。 本文分析了g p u 硬件加速技术的基本原理和工作机制;重点研 究了三维图形显卡驱动的系统架构,顶点处理单元以及显存管理单元 原理与功能;最后进行了较为详尽的测试工作,并探讨了三维图形硬 件渲染技术的应用领域,并通过设计与实现本系统模型,证明了此系 统在移动终端设备上进行三维图形处理的可行性和优势。 关键词:三维图形硬件渲染l i n u xg p u d e e p l ys t u d i e dg p u h a r d w a r ea c c e l e r a t i o nt e c h n o l o g ya n do p e n g l3 d a p ii nl i n u xs y s t e m ,a n da l s od e s i g n da n da c h i e v e d3 dg r a p h i c sd r i v e r o fl i n u x s y s t e m t h i sp a p e rh a v ea n a l y z e dt h eb a s i ct h e o r ya n dm e c h a n i s m ;h a v e s t u d i e dt h e3 dg r a p h i cd r i v e r ss y s t e ma r c h i t e c t u r ea n df u n c t i o no fv e r t e x p r o c e s su n i ta n dg r a p h i cm e m o r ym a n a g e m e n tu n i t ;f m a l l yh a v ed o n e s o m et e s tj o b sa n dt o u c h e dt h ea p p l i c a t i o nf i e l do f3 dh a r d w a r er e n d e r i n g a c c o r d i n gt o t h i sr e s u l t si t p r o v e dt h es t r e n g t ha n df e a s i b i l i t yo ft h i s s y s t e m k e yw o r d s :3 dh a r d w a r er e n d e r i n gl i n u xg p u 北京邮电大学硕士研究生学位论文面向移动终端的l i n u x 三维图形渲染技术与应用研究 目录 第一章绪论。l 1 1 课题背景。1 1 2 工作内容和成果2 1 3 论文结构。 第二章系统原理概述4 2 1 三维图形绘制成像原理4 2 1 1 三维图形渲染模型4 2 1 2 三维图形渲染流程6 2 2g p u 硬件加速技术。6 2 2 1g p u 硬件加速技术的产生和发展。7 2 2 2g p u 硬件加速技术在三维图形处理中的应用7 2 2 3g p u 三维图形硬件加速原理8 2 3i 删) ( 下的三维i 蛩形应用程序接口1 0 2 3 1x 图形系统原理1 0 2 3 2l i n u x 操作系统下的三维图形系统架构1 1 2 3 3o p e n g l 三维绘图规范。1 2 2 3 4d r i e c tr e n d e r i n gi n f r u s t r u c t u r e 原理1 4 2 3 5f r a m e b u f f e r 原理。1 5 2 4i 舢j x 下的显卡驱动开发体系。1 6 2 4 1l i n u x 驱动开发体系1 6 2 4 2l i n u x 驱动与上层应用程序的通信机制1 8 2 4 3g a l l i u m 3 d 显卡驱动架构2 0 2 4 4d r m 管理架构。 第三章l i n u x 三维图形显卡驱动程序的设计和实现。2 3 3 1 显卡处理单元功能与架构分析2 3 3 1 1 显卡处理单元功能分析。2 3 3 1 2 显卡处理单元架构分析2 4 3 2 驱动程序体系结构设计2 5 3 2 1 总体体系结构设计2 5 3 2 2 三维图形处理模块的体系结构设计2 6 3 2 3 内存管理体系结构设计2 7 3 3 三维图形处理模块的原理与实现2 7 3 3 1 三维图形处理模块的数据结构。2 7 3 3 2 三维图形渲染管道线的原理与实现2 8 3 3 3 鞠点渲染阶段流程3 l 3 3 4 顶点渲染阶段的编译过程3 2 3 3 5 顶点渲染阶段的装载过程3 7 3 4 显存管理模块的原理与实现4 1 3 4 1 显存管理原理4 1 h i 北京邮电大学硕士研究生学位论文面向移动终端的l i n u x 三维图形渲染技术与应用研究 3 4 21 口订显存管理原理4 2 3 4 3t im 显存管理的数据结构。4 4 3 - 4 4t im 显存管理的同步机制 第四章系统实现结果与应用研究。4 9 4 1 系统实现结果分析4 9 4 1 1 测试用例的设计与选择4 9 4 1 2 测试结果与分析4 9 4 2l i n u x3 d 硬件加速驱动程序测试技术研究 4 2 1 测试工具研究5 0 4 2 2 自动化测试原理。 5 2 4 33 d 硬件加速技术的应用领域5 2 4 3 1 在移动终端上的应用。5 2 4 3 2 基于硬件渲染的桌面窗口系统的应用5 3 4 3 3 在3 d 游戏中的应用5 4 第五章结论与展望。 5 1 本文总结 5 2 发展与展望5 6 参考文献5 7 附录1 测试数据 5 8 j l j 【谢6 4 攻渎学位期间发表的学术论文目录。6 5 i v 北京邮电大学硕士研究生学位论文面向移动终端的l i n u x 三维图形渲染技术与应用研究 第一章绪论 1 1 课题背景 随着移动互联网和多媒体技术的发展,以及三维图形渲染技术不断演化完 善,三维图形的应用日益广泛,人们对个人电脑特别是手持设备( 基于a r m 或 x 8 6 架构) 的3 d 处理能力提出了更高的要求。传统的三维图形处理方式通常使 c p u 处于满负荷状态,在多任务并行运转的情况下导致c p u 的处理能力不能完 全满足需要,同时也给系统带来较大的功耗。为了显著的提高三维图形渲染性能, 随着三维图形处理芯片技术的不断更新,三维图形硬件加速技术得到迅速发展。 三维图形硬件加速技术,即由g p u ( g r a p h i c sp r o c e s s i n gu n i t ,图形处理器) 分担c p u ( c e n t r a lp r o c e s s i n gu n i t ,中央处理器) 的工作,使用硬件解码单元进 行三维图形的渲染与运算操作。c p u 只负责对顶点文件进行前期处理,并将顶 点数据交给g p u ,由g p u 渲染操作。 当前,主流显示器的最高分辨率达到了1 9 2 0 x 1 0 8 0 ,所需要的数据码率高达 3 0 m b p s 至4 0 m b p s ,如果g p u 无法提供对硬件渲染的支持,则渲染工作将完全 由c p u 来承担。事实上,即便是主流配置的双核处理器,在执行硬件渲染任务 时,都会导致1 0 0 的高c p u 占用率。如果处理器能力较低,就无法保证三维图 形游戏流畅运行,甚至导致无法启动。为此,当前主流的图形芯片厂商( 如 n v i d i a 、a t i 等) ,都对三维图形加速硬件及其驱动程序的开发极为重视,并 相继开发出p u r e v i d e o 、a v i v o 作为各自显卡的三维图形引擎,用于分担c p u 三 维图形渲染的工作。 相比个人电脑,手持设备对系统资源和功耗的要求更加严格,并且一般都不 会配备高端的c p u 。为了在运行三维图形游戏时达到系统性能和资源消耗上的 平衡,使用三维图形硬件渲染技术将是一个最好的选择。 在三维图形方面,w i n d o w s 操作系统下的三维图形硬口加速技是发展较早, 由微软和图形芯片厂商联合定义的硬件视频加速接口d r i d c t3 d 巢相对成熟完 善。而l i n e x 操作系统下的三维图形硬件加透技术还处于起步阶段,相关接口和 驱动程序尚有提高和改善的空间。由于l i n u x 操作系统及其丰嫌的开源项目的众 多优点,成为了多数手持设备未来的首选操作系统,研究针对l i n u x 操作系统的 视三维图形硬件加速技术也成为当务之急。 第1 页 北京邮电大学硕士研究生学位论文面向移动终端的l i n u x 三维图形渲染技术与应用研究 1 2 工作内容和成果 本选题针对移动终端的三维图形绘制应用,以p o w e r v r 公司的s 系列处理 器和i 公劫的p 芯片组为硬件环境,对l i n u x 三维图形硬件加速技术进行深入研 究。基于w i n d o w s 环境的三维图形硬件加速技术发展较早,但基于l i n u x 环境 的相关技术研究并不够。通过对l i n u x 三维图形硬件渲染技术的研究,利用p 芯 片组提供的硬件加速功能,可以大幅度地提高三维图形游戏运行的流畅程度,有 效地降低c p u 负载从而降低功耗,使整个手持系统具有更好的性能和更长的续 航时间。 本文通过对三维图形学原理、g p u 硬件加速技术、l i n u x 下三维图形硬件加 速接口以及l i n u x 显卡驱动开发流程的探讨和研究,掌握了l i n u x 三维图形驱动 原理与流程,以顶点处理阶段为重点,对l i n u x 三维图形硬件加速驱动程序进 行了设计和实现,并统计了测试结果以及对应用领域进行了探讨。 本文主要包括的工作有: ( 1 ) 基础性的工作 讨论三维图形驱动设计与开发相关的理论知识,并对这些知识进行了研究与 探讨;研究了三维图形学的成像原理,g p u 的硬件加速技术原理,l i n u x 下三维 图形应用程序接口以及l i n u x 下驱动程序的开发流程以及所使用的显卡开发体 系结构。 搭建开发与测试环境,调研平台信息,芯片组信息以及显卡g p u 信息与参 考文档;调研开发工具,集成开发环境,版本控制系统等;调研测试工具,收集 测试信息等,为之后的开发工作进行初期的准备工作。 ( 2 ) 设计与开发相关工作 进行了系统架构的设计,包括顶点渲染的架构以及显存管理模块的架构,并 分别进行了数据结构与调用流程的讨论与总结。 ( 3 ) 测试相关工作 研究了测试流程与测试工具,进行了一系列测试工作,统计了测试信息与结 果;并对本系统所适用的场合进行了探讨与分析。 1 3 论文结构 本文共分为五章: 第一章简要介绍论文的课题背景和作者在课题工作中所完成的主要任务; 第二章:对三维图形显卡驱动系统的原理和关键技术做简要介绍; 第三章:介绍了三维图形显卡驱动系统的设计思路和实现原理; 第2 页 。 北京邮电大学硕士研究生学位论文 面向移动终端的u n u x 三维图形渲染技术与应用研究 第四章:统计了测试结果,对结果进行分析,并对本系统使用的应用场合进行 了探讨; 第五章:对本文进行总结并对未来的工作进行了展望: 最后一部分是参考文献和附录。 第3 页 北京邮电大学硕士研究生学位论文面向移动终端的l i n u x 三维图形渲染技术与应用研究 第二章系统原理概述 三维图形硬件加速是利用显卡中具有硬件加速能力的处理,进行硬件计算和 处理,由软件层进行控制。通过硬件加速实现三维图形渲染可以降低c p u 的负 荷,从而实现三维图形游戏流畅运行并提升c p u 多任务的能力。显卡制造商在 显卡芯片上提供了一些支持主流管道线的算法来分担c p u 的计算任务。 2 1 三维图形绘制成像原理 接下来主要介绍下三维图形的渲染模型以及三维图形的渲染管道线与原理。 2 1 1 三维图形渲染模型 创建三维计算机图形的过程可以顺序分为三个基本阶段:建模,场景布局,绘 制 ( 1 ) 建模 建模阶段可以描述为确定后面场景所要使用的对象的形状的过程。有很多建 模技术,他们包括( 但不仅仅是) :构造实体几何,n u r b s 建模,多边形建模, 子分曲面,隐函数曲面,建模过程可能也包括编辑物体表面或材料性质( 例如, 颜色,荧光度,漫射和镜面反射分量一经常被叫做粗糙度和光洁度,反射特性, 透明度或不透明度,或者折射指数) ,增加纹理,凹凸映射和其它特征。 建模可能也包括各种和准备动画的三维模型相关的各种活动( 虽然在复杂的 任务建模中,这将自己成为一个阶段,称为索具( r i g g i n g ) ) 。对象可能用一个 骨架撑起来,一个物体的中央框架,它可以影响一个对象的形状或运动。这个对 动画构造过程很有帮助,骨架的运动自动决定模型相关部分。参看正运动动画和 逆运动动画。在索具阶段,模型也可以给定特定的控制,使得运动的控制更为简 便和直观,例如用于声音嘴唇同步的面部表情控制和嘴形( 音素) 。 建模可以用以此为目的设计的程序( 例如,l i g h t w a v e 建模软件,r h i n o c e r o s 3 d , m o r a y ) ,应用的模块( s h a p e r ,3 ds t u d i om a x 的l o f t e d 或者某些场景 描述语言( 例如p o v r a y ) 。在有些情况,这些阶段之间没有严格的区别;在 这些情况下,建模只是场景创建过程的一部分( 例如c a l i g a r it r u e s p a c e 就属于这 种情况) 。 ( 2 ) 场景布局设置 第4 页 北京邮电大学硕士研究生学位论文面向移动终端的l i n u x 三维图形渲染技术与应用研究 场景设置涉及安排一个场景内的虚拟物体,灯光,摄像机和其他实体,它将 被用于制作一幅静态画面或一段动画。如果用于动画,该阶段通常采用叫做“关 键帧”( k e yf r a m e ) 的技术,它使得场景内复杂的运动的创建变得简单。使用关 键帧的帮助,而不是必须对于动画中的每一帧设定对象的位置,方向或比例,只 需设立一些关键的帧,它们之间的状态可以用插值得到。 照明是场景布置中一个重要的方面。就象在实际场景布置的时候一样,光照 是最终作品的审美和视觉质量的关键因素之一。因而,它是一项很难掌握的艺术。 光照因素可以对一个场景的氛围和情绪反映作出重大贡献,这是为摄影师和舞台 照明师所熟悉的事实。 ( 3 ) 绘制 渲染是从准备的场景创建实际的二维景象或动画的最后阶段。这可以和现实 世界中在布景完成后的照相或摄制场景的过程相比。 用于诸如游戏或模拟程序这样的交互式媒体的绘制需要实时计算和显示,速 度约为2 0 到1 2 0 帧每秒。非交互式媒体( 譬如录象或电影) ,绘制的慢得多。 非实时绘制使得有限的计算能力得以放大以获得高质量的画面。复杂场景的单帧 的绘制速度可能从几秒到一个小时或者更多。绘制完成的帧存贮在硬盘,然后可 能转录到其它媒介,例如电影胶卷或者光盘。然后这些帧以高帧率播放,通常为 2 4 ,2 5 ,或3 0 帧每秒,以达成运动的假象。 砖 最后的作品经常会需要达到真实感图形质量,要达到这个目的,很多不同和 专门的绘制技术被发展出来。这些技术的范围包括相当非真实感的线框模型绘制 技术,到基于多边形的绘制,到更高级的技术,例如:扫描线渲染、光线跟踪或 者辐射着色。 绘制软件可以模拟例如镜头光晕、景深或者运动模糊这样的视觉效果。这些 技术试图模拟镜头和人眼的光学特性所造成的视觉现象。这些技术可以增加场景 的真实程度,虽然该效果可能只是镜头的人造模拟现象。 为模拟其他自然发生的效应的各种技术被发展出来,例如光和不同形式的物 质的相互作用。这些技术的例子包括粒子系统( 它可以模拟雨,烟,或者火) , 体采样( 用于模拟雾,尘或者其它空间大气效果) ,焦散效果( 用于模拟光被 不均匀折射性质的表面所聚焦的现象,例如游泳池底部的光的涟漪) ,还有次 表面散射( s u b s u r f a c es c a t t e r i n g ) ( 用于模拟光在人的皮肤这样的实体对象内部 反射的现象) 。 绘制过程计算上很昂贵,特别是所模拟的物理过程复杂且多样时。计算机的 处理能力逐年上升,使得真实感绘制的质量渐进的提高。生产计算机动画的电影 第5 页 北京邮电大学硕士研究生学位论文面向移动终端的l i n u x 三维图形渲染技术与应用研究 工作室可能用渲染农场( r e n d e rf a r m ) 来进行及时的绘制。但是,硬件费用的下 降使得在家庭计算机系统上产生少量的三维动画完全成为可能。 绘制器经常包含在三维软件包中,但是有一些绘制系统作为流行三维应用程 序的插件使用。这些绘制系统包括f i n a l r e n d e r ,b r a z i lt s ,v r a y ,m e n t a lr a y , p o v - r a y ,和p i x a rr e n d e r m a n 。 这些绘制程序的输出经常用于最终电影场景的- d , 部分。很多材料的层次可 以分别绘制,然后采用合成软件集成到最终的画面中。 2 1 2 三维图形渲染流程 三维图形的绘制已经有了一套通用的流程,用户需要告知处理程序物体有几 个顶点,顶点的位置,物体的类型等,处理程序便可以根据这些信息,将几个顶 点最终绘制成相应的三维图像。三维图像的绘制主要经过两个阶段:顶点处理阶 段与像素处理阶段,顶点处理阶段处理的数据是顶点,而像素阶段处理的是像素 的数据,接下来的图就是三维图形渲染的整个流程,在接下来的章节还会对整个 流程做详细的介绍。 髟赢覆 已一一l 一墨丁一一二:l , 帮j导孕 1v 气锄nr 矾一 睁嘲哪嘞蜘o 鼢潞, k 0 - 3 k 一一缸* 学p y 荔 l4翼r = 爹兽芦壬掣日睥_ 习 一 i,j 瞄罂泛 1 乙。翩 l l t l j t 曼j 竺g 呷力删蝴 图2 1 三维图形渲染流程图 2 2g p u 硬件加速技术 本文接下来主要介绍g p u 硬件加速技术的产生,发展与原理。 第6 页 北京邮电大学硕上研究生学位论文 面向移动终端的l i n u x 三维图形渲染技术与应用研究 2 2 1g p u 硬件加速技术的产生和发展 1 9 9 9 年n v i d i a 公司提出了g p u 的概念,并在g e f o r e e 2 5 6 中实现了硬件 变换和光照计算。随着芯片技术的发展和强大的市场推动,近年来g p u 性能得 到大幅度提高,尤其引人注意的是其具有的可编程特性。可编程性使得人们可以 充分利用g p u 上提供的运算器来设计一些算法,通过渲染整个流水线来完成一 定的任务。由于这些运算器本身设计的技术因素及技巧原因,使得在流水线中存 在多个处理单元,即存在一定的并行处理单元,从而使某些运算可以得到加速。 起初人们只能书写汇编指令,通过a p i ( a p p l i c a t i o ni n t e r f a c e ,应用程序接 口) 指令传给g p u 进行编程。为了方便g p u 编程,硬件厂商n v i d i a 推出了 c g 实时绘制语言,微软推出了h l s l 语言,3 d l a b s 也推出了g l s l 语言。这些实 时绘制语言的发展,极大地方便了人们利用g p u 做一些计算方面的工作。g p u 的整个流水线全面支持浮点数运算,这一特性使得计算的精度得到显著提高,而 无需通过设计复杂的操作来达到一定的精度。 面对日益强大的g p u ,人们首先开始将图形流水线的某些处理阶段以及某 些图形算法从c p u 向g p u 转移,如局部光照计算、凸凹映射绘制等。除了计算 机图形学本身的应用,还涉及到其它领域的计算,基于图形硬件的通用计算已经 成为g p u 的应用之一,并成为一个研究热点。 目前已经存在的应用诸如: 1 ) 代数计算; 2 ) 几何处理; “ 3 ) 偏微分方程数值求解,如流体模拟,冰晶体生成; 4 ) 数据库操作; 5 ) 频谱变换和滤波,图像处理; 6 ) 碰撞检测、运动规划; 7 ) 优化计算; 8 ) 声音合成。 2 2 2g p u 硬件加速技术在三维图形处理中的应用 随着硅技术的不断发展,越来越多廉价但功能强大的g p u 在主流个人电脑 和游戏控制台中出现。g p u 定位于针对2 d 、3 d 图形操作和面向图形的应用程 序的特定处理器。内部流水线处理方式使g p u 还适用于流处理。一个g p u 通常 包括多个( 一般是4 或8 个) 并行管道和一个s i m d 处理器。当前多数g p u 的 另一个重要特点是其图形流水线的可编程性。 第7 页 北京邮电大学硕士研究生学位论文面向移动终端的l i n u x 三维图形渲染技术与应用研究 在3 d 领域,g p u 的用途很简单,就是为了更好地渲染3 d 场景,减轻c p u 在图形运算方面的负担。g p u 的核心逻辑单元包含顶点渲染单元和像素处理单 元,最大的作用就是进行各种绘制计算机图形所需的运算,包括顶点设置、光影、 像素操作等。g p u 实际上是一组图形函数的集合,而这些函数都由硬件实现。 为了平衡c p u 和g p u 的负载,在c p u 负载很重而g p u 空闲的情况下,也 可以由g p u 处理一些非图形应用,例如视频解码。通过使用g p u 的可编程图形 流水线,可以对数字视频解码进行加速。 近年来,市场多方位的应用需求刺激着g p u 以超越摩尔定律的速度飞速发 展,g p u 的浮点运算能力远超于c p u ,芯片厂商开始尝试在现有g p u 的基础上 进行软硬件改造,将其强大的浮点运算能力应用于更广泛的领域,让它变得像 c p u 那样更加通用化,在一定程度上取代c p u 的部分功能。其中,用g p u 来 加速视频解码是g p u 应用的热点之一。 2 2 3g p u 三维图形硬件加速原理 g p u 英文全称g r a p h i cp r o c e s s i n gu n i t ,中文翻译为“图形处理器”。g p u 是 相对于c p u 的一个概念,由于在现代的计算机中( 特别是家用系统,游戏的发 烧友) 图形的处理变得越来越重要,需要一个专门的图形的核心处理器。 g p u 是显示卡的“心脏”,也就相当于c p u 在电脑中的作用,它决定了该显 卡的档次和大部分性能,同时也是2 d 显示卡和3 d 显示卡的区别依据。2 d 显示 芯片在处理3 d 图像和特效时主要依赖c p u 的处理能力,称为“软加速”。3 d 显 示芯片是将三维图像和特效处理功能集中在显示芯片内,也即所谓的“硬件加速” 功能。显示芯片通常是显示卡上最大的芯片( 也是引脚最多的) 。现在市场上的 显卡大多采用n v i d i a 和a t i 两家公司的图形处理芯片。 于是n v i d i a 公司在1 9 9 9 年发布g e f o r c e2 5 6 图形处理芯片时首先提出g p u 的概念。g p u 使显卡减少了对c p u 的依赖,并进行部分原本c p u 的工作,尤 其是在3 d 图形处理时。g p u 所采用的核心技术有硬体t & l 、立方环境材质贴 图和顶点混合、纹理压缩和凹凸映射贴图、双重纹理四像素2 5 6 位渲染引擎等, 而硬体t & l 技术可以说是g p u 的标志。 简单说g p u 就是能够从硬件上支持t l ( t r a n s f o r ma n dl i g h t i n g 。多边形转 换与光源处理) 的显示芯片,因为t & l 是3 d 渲染中的一个重要部分,其作用 是计算多边形的3 d 位置和处理动态光线效果,也可以称为“几何处理”。一个好 的t & l 单元,可以提供细致的3 d 物体和高级的光线特效;只不过大多数p c 中, t l 的大部分运算是交由c p u 处理的( 这就也就是所谓的软件t l ) ,由于c p u 的任务繁多,除了t & l 之外,还要做内存管理、输入响应等非3 d 图形处理工 第8 页 北京邮电大学硕士研究生学位论文面向移动终端的l i n u x 三维图形渲染技术与应用研究 作,因此在实际运算的时候性能会大打折扣,常常出现显卡等待c p u 数据的情 况,其运算速度远跟不上今天复杂三维游戏的要求。即使c p u 的工作频率超过 1 g h z 或更高,对它的帮助也不大,由于这是p c 本身设计造成的问题,与c p u 的速度无太大关系。 g p u 在几个主要方面有别于d s p 架构。其所有计算均使用浮点算法,而且 目前还没有位或整数运算指令。此外,由于g p u 专为图像处理设计,因此存储 系统实际上是一个二维的分段存储空间,包括一个区段号( 从中读取图像) 和二 维地址( 图像中的x 、y 坐标) 。此外,没有任何间接写指令。输出写地址由光 栅处理器确定,而且不能由程序改变。这对于自然分布在存储器之中的算法而言 是极大的挑战。最后一点,不同碎片的处理过程间不允许通信。实际上,碎片处 理器是一个s i m d 数据并行执行单元,在所有碎片中独立执行代码。 尽管有上述约束,但是g p u 还是可以有效地执行多种运算,从线性代数和 信号处理到数值仿真。虽然概念简单,但新用户在使用g p u 计算时还是会感到 迷惑,因为g p u 需要专有的图形知识。这种情况下,一些软件工具可以提供帮 助。两种高级描影语言c g 和h l s l 能够让用户编写类似c 的代码,随后编译成 碎片程序汇编语言。b r o o k 是专为g p u 计算设计,且不需要图形知识的高级语 言。因此对第一次使用g p u 进行开发的工作人员而言,它可以算是一个很好的 起点。b r o o k 是c 语言的延伸,整合了可以直接映射到g p u 的简单数据并行编 程构造。经g p u 存储和操作的数据被形象地比喻成“流”( s t r e a m ) ,类似于标 准c 中的数组。核心( k e r n e l ) 是在流上操作的函数。在一系列输入流上调用一, 个核心函数意味着在流元素上实施了隐含的循环,即对每一个流元素调用核心 体。b r o o k 还提供了约简机制,例如对一个流中所有的元素进行和、最大值或乘 积计算。b r o o k 还完全隐藏了图形a p i 的所有细节,并把g p u 中类似二维存储 器系统这样许多用户不熟悉的部分进行了虚拟化处理。用b r o o k 编写的应用程序 包括线性代数子程序、快速傅立叶转换、光线追踪和图像处理。利用a t i 的 x s 0 0 x t 和n v i d i a 的g e f o r c e6 8 0 0u l t r a 型g p u ,在相同高速缓存、s s e 汇编优 化p e n t i u m4 执行条件下,许多此类应用的速度提升高达7 倍之多。 对g p u 计算感兴趣的用户努力将算法映射到图形基本元素。类似b r o o k 这 样的高级编程语言的问世使编程新手也能够很容易就掌握g p u 的性能优势。访 问g p u 计算功能的便利性也使得g p u 的演变将继续下去,不仅仅作为绘制引擎, 而是会成为个人电脑的主要计算引擎。 第9 页 北京邮电大学硕士研究生学位论文面向移动终端的l i n u x 三维图形渲染技术与应用研究 2 3u n u x 下的三维图形应用程序接口 l i n u x 下的图形管理是由x 窗口管理系统来实现的,同时三维图形渲染主要 有m e s a 层来实现,而提供给用户的编程语言是o p e n g l ,接下来本文会详细介 绍下各个部分的原理。 2 3 1x 图形系统原理 x 是工作站图形系统的工业标准,它有多种不同的实现,u b u n t u 系统中使用 的为x o r g 。xw i n d o w 使用服务器一客户端架构。无论本地图形界面,还是远程 图形界面,都以同样的流程工作。这样便不需要分别进行设计和维护,极大的提 高了网络透明性。 本地x 客户端+ 键盘 远程x 客户端+ x 协议x 服务器硬件规范+ 鼠标 远程x 客户端+ 显示器 因此xw i n d o w s 包含x s e r v e r 和x c l i e n t 两部分。其中x s e r v e r 是x w i n d o w 系统 服务器端,x c l i e n t 是x w i n d o w 系统客户端。 ( 1 ) x s c r v e r 系统服务器端 x s e r v e r 通过驱动程序( 硬件规范) 来管理硬件资源。 例如:当我们移动鼠标时,通过驱动程序,向x s e r v e r 发送信息:“向右移动2 0 0 点,向上移动1 0 0 点”( 向右上移动) ;“按下左键”,x s e r v e r 作出如下响应: 上一次鼠标停止的坐标为6 0 0 ,5 0 0 ,向右2 0 0 ,向上1 0 0 ,现在鼠标位于坐标8 0 0 ,6 0 0 , 坐标8 0 0 ,6 0 0 处,为窗口h r e f o x 的“关闭”按钮,根据预设动作,将“点击f i r e f o x 窗口的关闭按钮”翻译为“关闭窗口f i r e f o x , 向x 客户端h r e f o x 发送一个“退 出”消息,x s e r v e r 通过显示子系统( 显卡、显示器) ,全程显示鼠标的位置和移动。 ( 2 ) x c l i e n t 系统客户端 x c l i e n t 通过x 协议,实现与x s e r v e r 的交互。例如:x c l i e n t ( 假设f i r e f o x ) 接收x s c r v c r 的消息:输入焦点在地址栏的范围内,“u b u n t u o r g c n ,回车;f i r e f o x 根据预设动作,将这些消息识别为“打开链接u b u n t u o r g c n ”;f i r e f o x 向域名服务 器请求链接“u b u n t u o r g c n ”。域名服务器将这个请求转换为 “h t t p :u b u n t u o r g c n 和口地址2 1 1 1 4 8 1 3 1 7 ,发送回f i r c f o x ;f i r e f o x 将 “h t t p :u b u n t u o r g c n 显示在地址栏( 向x s c r v e r 发送请求,在地址栏位置显示这 个地址) ;f i r e f o x 向地址2 1 1 1 4 8 1 3 1 7 请示显示页面;f i r e f o x 将服务器发送回的 页面显示在主窗口中 第l o 页 北京邮电大学硕士研究生学位论文面向移动终端的i j m j ) ( 三维图形渲染技术与应用研究 ( 3 ) x p r o t o c o l x p r o t o c o l 是x w i n d o w 系统协议,x s e r v e r 和x c l i e n t 之间进行通信的规则。 2 3 2l i n u x 操作系统下的三维图形系统架构 相对于w i n d o w s 平台的d r i e c t3 d 渲染架构,l i n u x 平台也有类似的渲染架 构供上层3 d 应用开发人员和底层驱动人员来实现快速的程序设计与实现。m e s a 和d r 实现了o p e n g l 的程序接口和下层驱动上层接口,以实现应用层与底层 的快速开发。下图主要是介绍l i n u x 下三维图形的层次结构: 图2 - 2l i n u x 下三维图形层次结构 这里有两种三维图形渲染的调用路径:x 窗口管理系统路径与d r i 路径。通 过x 窗口管理系统的路径是比较传统的方式,这种方式要求上层应用程序需要 首先获得x 的同意,然后将数据与指令首先传递给x 窗口系统,再由x 窗口系 统传递给下层的m e s a 层,由于每次渲染都要经过x 窗口系统,这样效率并不高, 因此就出现了d r i 路径。d r i 路径指并不需要将数据传递给x 窗口系统,而是 直接就传给了m e s a 层,这样减少了损耗,提高了效率。这两种路径在现在的l i n u x 第1 1 页 北京邮电大学硕士研究生学位论文面向移动终端的l i n i p a 三维图形渲染技术与应用研究 三维图形渲染中都是存在的,第一种虽然效率低,但更加通用,第二种虽然效率 高,但需要驱动提供较好的支持。 2 3 3o p e n g l 三维绘图规范 o p e n g l ( 全写o p e ng r a p h i c sl i b r a r y ) 是个定义了一个跨编程语言、跨平台 的编程接口的规格,它用于三维图象( 二维的亦可) 。o p e n g l 是个专业的图形 程序接口,是一个功能强大,调用方便的底层图形库。 o p e n g l 是行业领域中最为广泛接纳的2 d 3 d 图形a p l 其自诞生至今已 催生了各种计算机平台及设备上的数千优秀应用程序。o p e n g l 是独立于视窗操 作系统或其它操作系统的,亦是网络透明的。在包含c a d 、内容创作、能源、 娱乐、游戏开发、制造业、制药业及虚拟现实等行业领域中,o p e n g l 帮助程序 员实现在p c 、工作站、超级计算机等硬件设备上的高性能、极具冲击力的高视 觉表现力图形处理软件的开发。 ( 1 ) o p e n g l 函数库的主要功能 o p e n g l 是一个开放的三维图形软件包,它独立于窗口系统和操作系统,以 它为基础开发的应用程序可以十分方便地在各种平台间移植;o p e n g l 可以与 v i s u a lc + + 紧密接口,便于实现机械手的有关计算和图形算法,可保证算法的正 确性和可靠性;o p e n g l 使用简便,效率高。它具有七大功能: 建模:o p e n g l 图形库除了提供基本的点、线、多边形的绘制函数外,还提 供了复杂的三维物体( 球、锥、多面体、茶壶等) 以及复杂曲线和曲面绘制函数。 变换:o p e n g l 图形库的变换包括基本变换和投影变换。基本变换有平移、 旋转、变比镜像四种变换,投影变换有平行投影( 又称正射投影) 和透视投影 两种变换。其变换方法有利于减少算法的运行时间,提高三维图形的显示速度。 颜色模式设置:o p e n g l 颜色模式有两种,即r g b a 模式和颜色索引( c o l o r i n d e x ) 。 光照和材质设置:o p e n g l 光有辐射光( e m i t t e dl i g h t ) 、环境光( a m b i e n t l i g h t ) 、漫反射光( d i f f u s el i g h t ) 和镜面光( s p e c u l a rl i g h t ) 。材质是用光反 射率来表示。场景( s c e n e ) 中物体最终反映到人眼的颜色是光的红绿蓝分量与 材质红绿蓝分量的反射率相乘后形成的颜色。 纹理映射( t e x t u r em a p p i n g ) 。利用o p e n g l 纹理映射功能可以十分逼真地 表达物体表面细节。 第1 2 页 北京邮电大学硕士研究生学位论文面向移动终端的l i n u x 三维图形渲染技术与应用研究 位图显示和图象增强图象功能除了基本的拷贝和像素读写外,还提供融合 ( b l e n d i n g ) 、反走样( a n t i a l i a s i n g ) 和雾( f o g ) 的特殊图象效果处理。以上三 条可使被仿真物更具真实感,增强图形显示的效果。 双缓存动画( d o u b l eb u f f e r i n g ) 双缓存即前台缓存和后台缓存,简言之,后 台缓存计算场景、生成画面,前台缓存显示后台缓存已画好的画面。 此外,利用o p e n g l 还能实现深度暗示( d e p t hc u e ) 、运动模糊( m o t i o nb l u r ) 等特殊效果。从而实现了消隐算法。 m e s a 是o p e n g l 规范在l i n u x 操作系统下的具体实现,它为上层软件实现 了众多o p e n g la p i ,用来实现各种3 d 应用。各种类型的显卡均利用m e s a 来实 现3 d 模型的软件渲染。 ( 2 ) o p e n g l 建模流程 接下来我会介绍一下o p e n g l 语言建立三维模型的步骤。实际上,从三维空 间到二维平面,就如同用相机拍照一样,通常都要经历以下几个步骤( 括号内表 示的是相应的图形学概念) : 第一步,将相机置于三角架上,让它对准三维景物( 视点变换,v i e w i n g j t r a n s f o r m a t i o n ) ; 第二步,将三维物体放在适当的位置( 模型变换,m o d e l i n g t r a n s f o r m a t i

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论