分享
分销 收藏 举报 申诉 / 56
播放页_导航下方通栏广告

类型基于GPU编程的漫游系统实时优化技术研究.doc

  • 上传人:仙人****88
  • 文档编号:11246335
  • 上传时间:2025-07-10
  • 格式:DOC
  • 页数:56
  • 大小:1.18MB
  • 下载积分:10 金币
  • 播放页_非在线预览资源立即下载上方广告
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    基于 GPU 编程 漫游 系统 实时 优化 技术研究
    资源描述:
    分类号:TP391.9 单位代码:10220 UDC: 密 级:公开 东北石油大学 硕士研究生学位论文 论文题目: 基于GPU编程的漫游系统实时优化技术研究 硕 士 生: XX 指导教师: XXX 副研究员 学科专业: 计算机应用技术 2011年3月14日 Thesis for the Master degree in Engineering Real-Time Optimization Techniques Based on GPU Programming for Roaming System Candidate: Yuan Xugong Tutor: Ren Qingdong Specialty: Computer Applied Technology Date of oral examination: March 26, 2011 University: Northeast Petroleum University 东北石油大学硕士研究生学位论文 学位论文独创性声明 本人所呈交的学位论文是我在指导教师的指导下进行的研究工作及取得的研究成果。据我所知,除文中已经注明引用的内容外,本论文不包含其他个人已经发表或撰写过的研究成果。对本文的研究做出重要贡献的个人和集体,均已在文中作了明确说明并表示谢意。 作者签名: 日期: 学位论文使用授权声明 本人完全了解东北石油大学有关保留、使用学位论文的规定。学校有权保留学位论文并向国家主管部门或其指定机构送交论文的电子版和纸质版,允许论文被查阅和借阅,可以采用影印、缩印或扫描等复制手段保存、汇编学位论文,可以公布论文的全部或部分内容。东北石油大学有权将本人的学位论文加入《中国优秀硕士学位论文全文数据库》、《中国博士学位论文全文数据库》和编入《中国知识资源总库》。保密的学位论文在解密后适用本规定。 学位论文作者签名: 导师签名: 日期: 日期: 基于GPU编程的漫游系统实时优化技术研究 摘 要 随着计算机技术的飞速发展,三维漫游系统已经广泛的应用于仿真、教育、游戏等领域。随着人们对三维漫游系统的视觉效果和可交互性的要求越来越高,单纯的CPU处理模式已经很难维持漫游系统的实时性。而近些年来,可编程GPU的高速发展使很多学者开始研究如何利用GPU灵活的编程能力来对漫游系统中的视觉效果和可交互性进行优化,从而提高漫游系统的总体效率。 本文首先对目前三维漫游系统和可编程GPU的研究现状进行了阐述,然后对可编程GPU的产生、发展、特点、组成做了详细的介绍。针对可编程GPU对三维漫游系统的优化,重点研究了以下问题: 1.利用可编程GPU对漫游系统中湖面场景的视觉效果进行优化,建立适合GPU计算的湖面模型,设计湖面波动的数学模型,研究如何对湖面进行光照颜色的计算,并获得湖面的反射纹理,在像素处理阶段实现反射纹理的扰动映射; 2.利用可编程GPU对漫游系统中的大规模草地场景的视觉效果进行优化,分析草地的几何特点,建立运算简单而又能保证草地茂盛效果的草体模型,并针对草体随风摆动的视觉效果设计出相应的数学模型,生成高效、逼真的草地; 3.利用可编程GPU对漫游系统中常见的粒子系统算法进行优化,以喷泉效果为例,分析喷泉粒子运动的物理特性,提取出适合GPU运算的部分由GPU进行加速,并设计合理绘制程序来提高整个粒子系统的运算效率; 4.利用可编程GPU对漫游系统中常见的碰撞检测算法进行优化,对漫游系统中的物体进行合理的分类,提取出可并行计算的部分由GPU来处理,并与CPU合作,使碰撞检测算法达到最佳的处理效率。 本文结合东北石油大学漫游系统,利用可编程GPU进行优化,改善了漫游系统的视觉效果,并提高了漫游系统中非绘制问题的运算效率,取得了良好的实验效果。 关键词:GPU,漫游系统,湖面,草地,粒子系统,碰撞检测 Real-Time Optimization Techniques Based on GPU Programming for Roaming System ABSTRACT With the rapid development of computer technology, three-dimensional roaming system has been widely applied in simulation, education, games and other fields. The pure CPU processing mode can’t ensure real-time because of the increasingly demand on the visual effects and interactivity of the roaming system. In recent years, more and more scholars started to study how to optimize the visual effects and interactive of the roaming system with the flexible programmable GPU, and improve the overall efficiency of the roaming system. Firstly, the research of three-dimensional roaming systems and programmable GPU is elaborate by the paper, and then the development,characteristics and composition of programmable GPU is introduced in detail. the following question will be discussed for optimization of the roaming system with the programmable GPU. 1. How to improve the visual effects of the lake in roaming system with the programmable GPU, how to establish the model which is fit to GPU computing and design the mathematical model of the lake, and how to compute the light color of the lake and obtain the reflection texture, and map the reflection texture in pixel shader stage; 2. How to improve the visual effects of the lager lawn in roaming system with the programmable GPU, analysis the geometric characteristics of the lawn, establish the grass model which simple to operate but complex in visual effects, and design the mathematical model of the swinging grass, then get the efficient but realistic lawn effect; 3. How to Improve the efficiency of the particle system which is common in roaming system, the simulation of the Fountain as an example, analysis of the physical characteristics of particles in the fountain, extract the question which is fit to GPU and accelerate it with the programmable GPU, and design the reasonable drawing program the improve the overall efficiency of the particle system; 4. How to Improve the efficiency of the collision detection algorithm which is common in roaming system, classify the objects of the roaming system reasonably, extract the question which is fit to GPU and accelerate it with the programmable GPU, and cooreration with CPU to achieve the best efficiency of the collision detection algorithm. In this paper, with the roaming system of Northeast Petroleum University the programmable GPU is used to improve the the visual effects and increase the efficiency when solve the non-draw question in the roaming system, and achieve good experimental result. Keywords: GPU, roaming system, lake, lawn, particle system, collision detection 创新点摘要 本文通过可编程GPU对三维漫游系统进行加速,改善漫游系统的画面质量并提高漫游系统的交互实时性。创新点如下: 1.提出了基于像素处理的湖面模拟方法,改变以往的湖面几何模型的建立方法,仅利用四个顶点来建立湖面的模型,将湖面的光照颜色计算和反射纹理坐标计算由顶点处理阶段转移到像素处理阶段,减少了湖面模型占用的存储空间,降低了顶点处理的计算量,并可以合理的表现湖面的细节。 2.提出了草体随风波动的数学模型,建立了简单而又能体现大规模草地特点的三维模型,在顶点处理阶段通过风力的变化生成了草地波动的动态效果,并在像素处理阶段修正了像素的纹理坐标,实现了草体弯曲的效果。 3.提出了独立在GPU上执行的粒子系统算法,利用顶点纹理获取技术,直接在顶点处理阶段读取GPU计算出的属性数据,无需CPU参与运算,避免了GPU与CPU间大量的数据传输,设计了无需CPU参与的粒子绘制方法和死亡粒子的剔除方法,大大提高了粒子系统的运算效率。 III 目 录 学位论文独创性声明 I 学位论文使用授权声明 I 基于GPU编程的漫游系统实时优化技术研究 II 摘 要 II ABSTRACT III 创新点摘要 IV 第一章 绪论 1 1.1 论文研究背景及意义 1 1.2 国内外研究现状 2 1.2.1 三维漫游系统研究现状 2 1.2.2 GPU研究现状 2 1.3 本文研究的主要内容和结构 2 1.4 本章小结 3 第二章 可编程GPU与渲染技术 4 2.1 GPU的产生与发展 4 2.2 GPU的特点 5 2.3 GPU渲染管道介绍 7 2.3.1 固定渲染管道 7 2.3.2 可编程渲染管道 8 2.4 可编程GPU的结构 9 2.4.1 顶点着色器 9 2.4.2 像素着色器 9 2.5 GPU通用计算技术 10 2.5.1 GPU数据的存储 10 2.5.2 GPU程序的运行方式 11 2.5.3 GPU计算结果的获取 11 2.5.4 GPU通用计算的实现方法 11 2.5.5 GPU通用计算的不足 12 2.6 Shader语言简介 12 2.7 本章小结 13 第三章 基于可编程GPU的特效生成 14 3.1 可编程GPU生成的湖面特效 14 3.1.1 传统湖面特效的生成方法 14 3.1.2湖面特效实现的主要思想 15 3.1.3 湖面波浪的生成 16 3.1.4 湖面光照效果 16 3.1.5 湖面的反射 17 3.1.6 湖面的效果与结论 19 3.2 可编程GPU生成的草地效果 19 3.2.1 草体的建模 20 3.2.2 草体波动的特效生成 21 3.2.3 大规模草地的效果与结论 24 3.3 本章小结 24 第四章 可编程GPU加速的交互运算 25 4.1 可编程GPU加速的喷泉特效 25 4.1.1 粒子系统 26 4.1.2 GPU下喷泉粒子的数据组织 27 4.1.3 喷泉粒子状态的判定 27 4.1.4 喷泉粒子属性的计算 28 4.1.5 喷泉的绘制 30 4.1.6 喷泉效果与结论 31 4.2 可编程GPU加速的碰撞检测 32 4.2.1 包围盒的建立与更新 32 4.2.2 对不可能相交物体的快速剔除 33 4.2.3 包围盒之间的初步碰撞检测 35 4.2.4 精确的三维模型碰撞检测 36 4.2.5 实验结果与结论 38 4.3 本章小结 38 结 论 40 参考文献 41 发表文章目录 44 致 谢 45 第一章 绪论 1.1 论文研究背景及意义 随着虚拟现实技术的发展与计算机硬件性能的不断提高,三维漫游系统的研究已经取得了很大的成就,在教育、游戏、仿真、医学等领域有着十分广泛的应用。三维漫游系统以模拟的方式为使用者创造一个实时反映实体对象变化与相互作用的三维图像世界[1],使使用者能够直接参与和探索虚拟世界中各虚拟对象的变化和作用,与三维世界融为一体,仿佛置身其中。 三维漫游系统的建立包括虚拟场景建模和视景驱动两个部分,首先建立虚拟场景的三维模型,为漫游系统提供一个具有真实感的虚拟环境,然后通过视景驱动,响应用户的输入,让虚拟场景和角色做出相应的反应,最终绘制出当前场景的实时图像。虚拟场景建模要求体现出场景的真实美观,一个优秀的虚拟场景可以达到以假乱真的效果,具有很强的沉浸感,使用户仿佛置身于真实的环境中,有一种身临其境的感觉。视景驱动则要求漫游系统能够对用户的输入和场景中的其他消息作出快速的反应,并以实时图像序列的方式体现出来,体现了三维漫游系统的实时性。 近些年三维漫游系统的发展十分迅速,人们对漫游系统的效果和可交互性的要求也在不断提高。一方面,高质量的三维画面层出不穷,在很多三维游戏的场景中,程序员们设计了各种巧妙的绘制程序,建立了栩栩如生的人物、山水、草体等景物的模型,这些具有高度真实感的模型消耗了大量的存储和运算资源;另一方面,漫游系统中的视景驱动越来越复杂,越来越大的漫游场景使场景的规划越来越复杂,精细的三维模型使得动态LOD算法应用广泛,另外,场景中各物体的碰撞检测、越来越复杂的角色AI计算、高效的路径规划等算法都越来越多占用着计算机的运算资源,使得漫游系统的实时性受到了挑战,程序员在保证场景沉浸性和可交互性的同时,还要尽量的加快漫游系统的帧速率,提高整个系统的实时性。 最近几年来,图形处理单元GPU(Graphic Process Unit)得到了迅速的发展,家用GPU已经从以往的固定流水线操作模式发展成可编程流水线模式,其编程指令经过了四个版本的更新,逐步发展成为我们可以直接运用的功能强大且成本较低的并行程序处理器[2]。GPU对图形绘制提供硬件加速,而且GPU的可编程性使图形绘制变得更加灵活,程序员可以直接对显卡进行编程,针对不同的三维效果设计出自己的渲染程序,绘制出很多高质量的三维特效,所以可以用可编程GPU来提高三维漫游系统的画面质量。由于GPU运算性能强大,很多研究人员开创了一个新的研究领域[3]:基于GPU的通用计算(GPGPU:General-Purpose Computation on Graphics Processors)[4,5],其主要研究内容是在图形处理以外的方面,如何利用GPU来进行更为广泛的应用计算,这样可以利用GPU强大的计算能力,对漫游系统中的视景驱动部分进行加速,提高整个漫游系统的运算效率,在保证虚拟场景高度真实性的同时确保系统运行的实时性。所以,针对三维漫游系统存在的困难,本文围绕着如何利用可编程GPU对三维漫游系统进行优化展开了研究,一方面利用可编程GPU对三维漫游场景的视觉效果进行优化,另一方面将漫游系统中适合利用GPU加速的算法进行优化,以达到提高漫游系统整体效率的目的[6]。 1.2 国内外研究现状 1.2.1 三维漫游系统研究现状 国外对三维漫游系统的研究起步较早,在上世纪九十年代就已提出了非常严密的理论体系,包括三维场景建模技术、动态LOD算法、真实感光照模型、阴影算法以及场景空间管理的相关技术,但由于当时的硬件运算水平较低,这些技术只能应用到大型机和图形工作站上,无法普及。 随着硬件运算能力的提高,人们开始尝试将三维漫游系统运行在个人电脑上,95年ID Software公司推出了一款3D游戏Doom,成为了三维漫游系统在个人计算机上普及的开端。此后众多具有较高画面质量的3D游戏如雨后春笋一般诞生,这些游戏都利用三维漫游系统技术,实现了角色在虚拟场景中的自由漫游,同时也应用了光照贴图、凹凸贴图、环境贴图等技术。 进入21世纪,随着可编程GPU的发展,三维漫游系统的研究也进入了新的阶段,人们开始研究如何利用可编程GPU对三维漫游系统的视觉效果和交互速度进行优化。 1.2.2 GPU研究现状 随着可编程GPU的高速发展,很多学者利用可编程GPU开发出各种高质量真实感的三维特效,程序员们设计了各种渲染程序来模拟阴影、山水、云烟、植物等自然特效,同时,国内外研究人员在GPU通用计算领域的研究也有很大的成就,包括很多图形绘制以外的各种问题,包括偏微分数值计算[7]、代数计算[8]、运动规划、小波变换[9,10]、LOD算法[11]、图像压缩[12]、碰撞检测[13,14]等非绘制问题,这些算法都利用可编程GPU进行加速,得到了很大程度的优化。 1.3 本文研究的主要内容和结构 本文研究基于可编程GPU的漫游系统实时优化技术,一共分为四章。 第一章绪论,介绍三维漫游系统的发展和组成,分析三维漫游系统技术中存在的一些困难,并研究近些年三维漫游系统和可编程GPU的发展情况,讨论用GPU编程的技术对三维漫游系统进行加速的可行性、目的及意义。 第二章介绍可编程GPU与图形渲染的一些基础知识与技术、GPU的产生和发展情况,分析GPU的特点,介绍GPU渲染管道的工作过程,并着重介绍可编程GPU的顶点着色器和像素着色器,同时阐述将可编程GPU用来解决非绘制问题的技术——GPU通用计算技术,介绍GPU通用计算的实现方法及其优缺点以及GPU编程语言。 第三章从提高三维漫游系统的视觉效果方面出发,选取真实感湖面和大规模草地这两个漫游系统中经常出现的场景,利用可编程GPU对其三维效果进行优化,详细分析这两个三维特效的数学和物理的理论,介绍特效在顶点处理阶段和像素处理阶段的具体实现方法,并分析两种特效的实验结果。 第四章从漫游系统中的非绘制问题入手,研究如何利用GPU通用计算技术对三维漫游系统中的视景交互方面的问题进行优化。本论文选取了利用粒子系统和碰撞检测这两个漫游系统中常见的非绘制算法进行分析和讨论,详细剖析两种算法的特点,提取出适合利用可编程GPU进行优化的可并行处理的问题,设计适合GPU处理的数据存储结构,并与CPU配合,以最佳的方式对问题进行优化,并分析实验结果。 1.4 本章小结 本章首先介绍了三维漫游系统的两个主要组成部分:场景建模和视景驱动,并分别针对这两部分分析了三维漫游系统所遇到的问题,并然后提出了利用可编程GPU对漫游系统的场景建模和视景驱动进行优化,使漫游系统的视觉效果更加逼真,响应效率也得到了提高,然后介绍了三维漫游系统和可编程GPU的国内外发展现状,最后介绍了本文的主要研究内容和结构。 39 第二章 可编程GPU与渲染技术 2.1 GPU的产生与发展 计算机图形处理器(Graphics Processing Unit,简称GPU)自1999年首先由nVidia公司提出来后[15],多年来以大大超过摩尔定律的速度高速发展。其发展过程大致可以归纳为以下六个阶段[16,17]。 1.图形处理器之前的图形加速 在现代GPU概念出现以前,只有像Siliocn Graphies(SGI和Evna&Sutherland这样的公司设计了专用并且昂贵的图形硬件。由这些公司开发的图形系统引入了许多现在仍然认可的概念,例如基于硬件的顶点变换和纹理映射等。这些系统对计算机图形的开发过程非常重要,但是由于它们过于昂贵,做为个人计算机和视频游戏控制台设计的单一图形处理器,它们没有能够在市场上获得成功。 2.第一代图形处理器 第一代图形处理器出现在1998年后期,主要代表为nVIDIA TNT2,ATI Rage和3DFX Voodoo3。这些图形处理器能够光栅化变换前的三角形和使用1-2个纹理,还实现了DirectX6的特征集。当运行大部分的二维和三维应用程序时,这些图形处理器完全把中央处理器从更新到单独的像素中解脱出来。但是,这一代的图形处理器有两个明显的限制:首先,他们缺乏三维物体顶点变换的能力;相反,顶点的变换是在中央处理器中完成的;其次,它们只有一个有限的数学操作集合来结合纹理,以计算光栅化后像素的颜色。 3.第二代图形处理器 第二代图形处理器(1999年-2000年)包括Nvidia的GeForce256和GeForce2、ATI的Radeon7500以及S3的Savaga3D。这些图形处理器从中央处理器那里承担了顶点变换和光照的工作(Transform and Lighting,T&L)。而在这代之前,快速的顶点变换是高端工作站区别于个人计算机的关键性能之一。虽然用来结合纹理和给像素着色的数学操作在这一代包括了立方图纹理和带符号数学操作,但是能够完成的工作仍然很有限。换句话说,这一代的图形处理器能够进行更多的设置,但仍然不是真正的可编程。 4.第三代图形处理器 第三代图形处理器出现在2001年,主要代表有nVIDIA的GeForce3和GeForce4 Ti、Microsoft的Xbox以及ATI的Radeon8500。这一代图形处理器提供了顶点编程能力,而不是仅仅提供更多的可设置选项。这些图形处理器让应用程序制定一序列的指令来处理顶点,而不仅仅只是支持OpenGL和DirectX7制定的传统的变换和光照模型。虽然提供了相当多的像素级设置功能,但是这些模式还没有强大到可以被认为是真正的可编程。因为这些图形处理器支持顶点编程,但是缺乏真正的像素编程能力,在像素级程序中,访问纹理的方式和格式受到一定限制,只有定点数可用,所以说这代图形处理器是过渡期产品。DirectX8和OpenGL的ARB_vertex_program扩展都展示了提供给应用程序顶点级的可编程能力。DirectX8的像素着色引擎和各个开发商制定的OpenGL扩展展示了这代图形处理器处理片断级的可设置能力。 5.第四代图形处理器 第四代图形处理器主要包括nVIDIA使用CineFX体系结构的GeForce FX系列和ATI的Radeon9700/9800。这些图形处理器同时提供了顶点级和像素级的可编程能力,依赖纹理更为灵活,可以以索引方式访问数据,GPU具备了浮点功能,纹理中保存的值不再依赖于[0,1]范围,可以读写一般的浮点数。而这个级别的可编程能力使得复杂的顶点变换和像素着色操作从中央处理器转移到图形处理器成为可能。DirectX9和各种各样的OpneGL扩展功能显示了这些图形处理器的顶点级和像素级的可编程能力。 6.第五代图形处理器 最新的第五代图形处理器以nVIDIA GeForce6800/7800/7900为代表,功能相对于以前更为丰富灵活,顶点级程序可以访问纹理,支持程序的动态条件分支,像素级程序也开始支持分支操作,如循环,if/else等,支持子函数调用,在纹理滤波和融合过程中支持64位的浮点精度,同时支持多个渲染目标[15]。 目前最新的可编程图形硬件已经具备了下列功能[18]: (l)在顶点级和像素级提供了灵活的可编程特性。 (2)在顶点级和像素级运算上都支持IEEE32位浮点运算,可进行高精度的绘制。 (3)完全支持4元向量的数据格式(齐次坐标,法向等),方便了图形程序的设计与开发。 (4)具有高带宽的内存传输能力>(27.IGB/s),具备强大的数据吞吐能力。 (5)支持绘制到纹理的功能(Render to Texture),从而避免将中间绘制结果拷贝到纹理这个费时的过程。 (6)支持依赖性纹理访问功能,以方便数据的索引访问,可以将纹理作为内存来使用。 2.2 GPU的特点 近年来,随着图形处理器(GPU)性能的大幅度提高以及可编程特性的发展,人们开始将图形流水线的某些处理阶段以及某些图形算法从CPU向GPU转移,这种转移主要集中在像虚拟现实、计算机仿真这样的中、小规模实时图形图像应用中。这一切的发生从很大程度上源自于图形处理硬件(GPU)的飞速发展和革新。例如一个运行在nVIDIA GeForceFX 5900Ultra的Shader程序运算速度可达20GFLOPS,相当于10GHz的Pentium4,而且图形系统的内存带宽为25.3GBPS,相比之下Pentium 4只有5.96GBPS。实时三维图形绘制最终在GPU的处理流水线上进行具有很高的效率,原因有以下几点[19,20]。 1.一定的并行性 这一功能主要是通过多个渲染管道和RGBA 4个颜色通道同时计算来体现的,另外在一个时钟周期内可以同时获取2个甚至更多纹理。顶点程序的多个渲染管道意味着一个时钟周期可以并行处理多个顶点,而对于像素程序同样如此。相对于并行机而言,图形卡提供的并行性虽然很弱,但它在十分廉价的基础上为很多应用提供了一个很好的并行方案,尤其是对于图形本身的应用来说。 2.高密集的运算 由于图形卡内部的内存接口位宽远远大于CPU上的位宽,如GeForce FX的内存位宽达256位,显然高于CPU上32位的位宽,这样整个计算的带宽大大提高。GPU相对于CPU来说,更适合传输大块的数据,虽然CPU上有Cache可以加速整个计算过程,但CPU上的Cache相对于图形卡显存来说太小,一般只有256KB,而现在的显存大多都在64MB以上。 3.减少了GPU与CPU的数据通信 尤其是当整个应用针对图形生成的时候,不再需要在CPU与GPU之间进行多次数据交换,从而可以将CPU解放出来做其他的处理任务。这些优势使得GPU比CPU更适用于流处理计算,因此GPU也被认为是一个SIMD的并行机或者流处理器,可以用于处理大规模数据集,使应用得到加速。 4.向量运算的架构 CPU本质上是一个标量计算模型架构,计算单元偏少,它的这种架构主要针对复杂控制和低延迟而并非高带宽,所以在处理大规模向量运算时在性能上捉襟见肘。而GPU本质上却是一个向量计算模型架构,计算单元丰富,它的这种架构使它在处理大规模向量运算时体现出较高的性能,GPU的运算过程如图2.1所示。 临时寄存器 常量寄存器 GPU 输入 顶点数据 输出 像素数据 纹理 图2.1 GPU运算示意图 GPU编程采用面向数据流的程序设计,需要以一种新的方式来考虑问题。数据流是数据记录的集合。现在要处理的所有数据就是以这样的方式表示的。单个处理单元的输入、输出均为数据流,对数据流中的每一项执行共同的操作:多个处理单元(单独的每一个可以进行不同的处理)允许串连起来协同工作。正因为这样,在绘制程序中就有了相关的语义用来定义所处理数据的来源和处理结果的去向。 2.3 GPU渲染管道介绍 现在的图形处理器也己经从固定图形处理流水线发展到可编程图形处理流水线,发生了质的飞跃[20]。传统的图形处理器接受输入的三维信息,然后按照固定的功能进行处理。可以输入的信息有:视点、投影、光照情况等场景的全局信息;顶点位置、面片组成、表面材质设定等场景中三维物体各自的信息。处理器将这些数据在固定流水线上进行处理,输出到帧缓存中,并最终在显示器上输出显示。而可编程的图形处理器可通过编写的绘制程序对输入信息的处理提供了更为灵活的控制。其在顶点级和像素级都提供了灵活的可编程特性,运算上都支持IEEE 32位浮点运算,同时支持多遍绘制的操作,避免了CPU与GPU之间的多次数据交换;支持绘制到纹理,提高了绘制的效率;支持依赖纹理,可以方便地访问数据。下面分别针对固定渲染管道和可编程渲染管道进行介绍。 2.3.1 固定渲染管道 固定渲染管道是固化在GPU硬件内的渲染程序,它用固有的绘制方法和过程对输入的三维场景进行渲染,最终绘制成输出终端的显示画面。当渲染过程运行到固定渲染管道时,CPU将脱离渲染工作,所有的绘制运算开始由GPU独立完成,用户将不能直接控制场景的绘制,只能通过图形API设定的渲染状态,作为GPU的控制参数。固定渲染管道的输入是三维场景的点、线、面等几何信息以及纹理的图像信息,经过GPU的一系列处理,最终得到的是绘制完成的图像信息,下面介绍固定渲染管道绘制图形的主要过程。 1.坐标变换与光照 这是整个固定渲染管道的第一个阶段,它通过物体、相机的各属性,将输入的顶点位置进行变换,由顶点的物体空间变换到投影空间,同时根据场景的灯光数据计算每一个顶点的漫反射颜色值和镜面反射颜色值。 2.裁剪 当顶点完成坐标变换后,就被送到裁剪器进行裁剪,决定哪些几何体能够被送到下一个阶段。这里所进行的裁剪是视锥体裁剪和背面裁剪,这样可以将场景中不可见的几何体剔除掉,从而有效的减少下一渲染阶段的计算量。 3.光栅与插值 光栅化阶段将连续的几何三角面片离散成一系列的对应在屏幕上的像素点,真正的将点、线、面的三维几何数据转化为由一系列像素组成的图像数据,并根据每一个三角面片的三个顶点的位置、漫反射颜色、镜面反射颜色、纹理坐标等属性值进行插值分配给各个像素。 4.多重纹理化 将每个像素的漫反射颜色、镜面反射颜色、纹理颜色等进行融合,从而得到该像素最终的颜色值。 5.雾化 根据像素的距离、高度或其他位置属性产生雾化的效果。 6.深度检测与Alpha检测 当两个像素投影到屏幕中的同一个像素点时,则用深度检测来确定哪一个像素点需要剔除,而当有全透明像素时,则用Alpha检测来将这个看不见的像素剔除,确保像素间的遮挡关系是正确的。 2.3.2 可编程渲染管道 为了能够获得更好的绘制效果,之后推出的GPU逐渐具备了可编程能力,相应的图形流水线也发生了变化,图2.2给出了具备可编程能力的GPU的绘制流水线。 像素数据 CPU 顶点坐 标变换 顶点数据 光照 计算 裁剪 光栅化与插值 纹理颜色混合 深度与Alpha检测 帧缓 冲区 可编程 顶点着色器 可编程 像素着色器 图 2.2 可编程GPU图形流水线 与之前的固定图形流水线相比,可编程图形流水线的最大改进就在于使用了可编程顶点处理器和可编程片断处理器,它们替代了原先固定流水线中的使用固定三维编程接口实现的顶点和片断处理,在绘制三维场景时,有关顶点和片断的处理可以完全交由程序员来编程实现。相比之前使用的固定流水线方法,使用可编程处理器进行图形绘制处理有两大优点[21]: 1、可以通过编写更加复杂的绘制算法,增强图形绘制的效果; 2、配合现代GPU的数据存储和传输技术,在硬件上实现通用的逻辑运算,避免从CPU到GPU的数据传输。 2.4 可编程GPU的结构 可编程GPU的可编程部分是顶点处理阶段和像素处理阶段,分别对应着顶点着色器和像素着色器。 2.4.1 顶点着色器 顶点着色器(Vertex Shader)是GPU流水线中的第一个处理阶段。顶点变换在每个顶点上执行一系列的数学操作.这些操作包括把顶点位置变换到屏幕位置以便光栅器使用,为贴图产生纹理坐标,决定顶点的光照及颜色等。 顶点着色器的数据流模型从载入每个顶点的属性(例如位置、颜色、纹理坐标等)到顶点处理器开始[22]。然后,顶点处理器重复地取出下一条指令并执行它,直到顶点程序结束,这些指令经常存取几个不同的包含向量值的寄存器组,例如位置、法向量或者颜色。顶点属性寄存器是只读的,包含了应用程序指定的顶点程序集。临时寄存器能够进行读写操作,可以被用来计算中间结果。输出结果寄存器只能进行写操作。程序负责把结果写入这些寄存器。当顶点程序结束时,输出结果寄存器包含了最新的变换后的顶点。在三角形组成和光栅化之后,每个寄存器的值经过插值后传递给像素处理器。 2.4.2 像素着色器 当一个图元被光栅化为零个或多个像素的时候,像素着色器(Pixel Shader)就负责执行一系列的插值、贴图、着色等数学操作,然后为每一个像素确定一个颜色值。除了确定像素的最终颜色,这个阶段还确定一个新的深度值,还可以决定丢弃这个像素以减少运算复杂度。 可编程像素着色器需要许多和可编程顶点处理器一样的数学操作,除此之外,它还需要支持纹理操作。纹理操作使得像素着色器可以通过一组纹理坐标存取纹理图像,然后返回一个纹理图像过滤的采样。 早期的像素着色器只有有限的定点数据类型,较新的像素着色器通常会提供对浮点数操作的直接支持。即使有了浮点运算,在开发像素着色器时,依然需要尽可能使用低精度的定点数据类型,因为定点数据类型的处理效率要比浮点数据类型高得多。 与顶点处理器一样,像素着色器也是被数据流驱动的。像素着色器执行一系列的指令直到程序结束。像素着色器也有一组输入寄存器。但是,像素着色器的只读输入寄存器包含了从像素的顶点参数经过插值获得的像素参数,而不是顶点属性。可读写的临时寄存器存储了中间结果。向输出寄存器进行的写操作是像素的颜色和可选的新的深度值。像素的程序指令也包括纹理获取指令。 2.5 GPU通用计算技术 基于GPU的通用计算(GPGPU:General Purpose GPU)指的是利用图形处理器来处理非绘制的问题,而不单纯是图形渲染[23]。 一块工作频率为3.0GHz的Pentium 4处理器,其晶体管数目为1.25亿个,即使算上SSE指令集的SI
    展开阅读全文
    提示  咨信网温馨提示:
    1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
    2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
    3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
    4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
    5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
    6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

    开通VIP折扣优惠下载文档

    自信AI创作助手
    关于本文
    本文标题:基于GPU编程的漫游系统实时优化技术研究.doc
    链接地址:https://www.zixin.com.cn/doc/11246335.html
    页脚通栏广告

    Copyright ©2010-2025   All Rights Reserved  宁波自信网络信息技术有限公司 版权所有   |  客服电话:0574-28810668    微信客服:咨信网客服    投诉电话:18658249818   

    违法和不良信息举报邮箱:help@zixin.com.cn    文档合作和网站合作邮箱:fuwu@zixin.com.cn    意见反馈和侵权处理邮箱:1219186828@qq.com   | 证照中心

    12321jubao.png12321网络举报中心 电话:010-12321  jubao.png中国互联网举报中心 电话:12377   gongan.png浙公网安备33021202000488号  icp.png浙ICP备2021020529号-1 浙B2-20240490   


    关注我们 :微信公众号  抖音  微博  LOFTER               

    自信网络  |  ZixinNetwork