首页 基于纹理材质的三维特效合成研究与实现.pdf.doc

基于纹理材质的三维特效合成研究与实现.pdf.doc

举报
开通vip

基于纹理材质的三维特效合成研究与实现.pdf.doc基于纹理材质的三维特效合成研究与实现.pdf.doc 电子科技大学 UNIVERSITY OF ELECTRONIC SCIENCE AND TECHNOLOGY OF CHINA 硕士学位论文 MASTER THESIS 论文题目 基于纹理材质的三维特效合成 研究与实现 学科专业 计算机应用技术 201121060418 学 号 作者姓名 范 靖 宇 指导教师 张建中 副教授 分类号 密级 UDC 学位论文 基于纹理材质的三维特效合成 研究与实现 (题名和副题...

基于纹理材质的三维特效合成研究与实现.pdf.doc
基于纹理材质的三维特效合成研究与实现.pdf.doc 电子科技大学 UNIVERSITY OF ELECTRONIC SCIENCE AND TECHNOLOGY OF CHINA 硕士学位 论文 政研论文下载论文大学下载论文大学下载关于长拳的论文浙大论文封面下载 MASTER THESIS 论文题目 基于纹理材质的三维特效合成 研究与实现 学科专业 计算机应用技术 201121060418 学 号 作者姓名 范 靖 宇 指导教师 张建中 副教授 分类号 密级 UDC 学位论文 基于纹理材质的三维特效合成 研究与实现 (题名和副题名) 范 靖 宇 (作者姓名) 指导教师 张 建 中 副 教 授 电子科技大学 成 都 (姓名、职称、单位名称) 申请学位级别 硕学科专业 计算机应用技术 士 提交论文日期 2014.03.25 论文答辩日期 2014.05.14 电子科技大学 学位授予单位和日期 2014.06 答辩委员会主席 评阅人 RESEACH AND IMPLEMENT ON THREE-DIMENSIONAL EFFECT SYNTHESIS BASED ON TEXTURED MATERIAL A Master Thesis Submitted to University of Electronic Science and Technology of China Major: Computer Applied Technology Fan Jingyu Author: Advisor: Prof. Zhang Jianzhong School: School of Computer Science & Engineering 日期: 年 月 日 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作 及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地方 外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为 获得电子科技大学或其它教育机构的学位或证书而使用过的材料。与 我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的 说明并表示谢意。 作者签名: 日期: 年 月 日 论文使用授权 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁盘, 允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文的全 部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描 等复制手段保存、汇编学位论文。 (保密的学位论文在解密后应遵守此规定) 作者签名: 导师签名: 日期: 年 月 日 摘要 摘要 随着最近这些年以来,计算机图形学技术的高速发展,以及计算机硬件性能 的急速提升真,人们对于视觉效果的逼真性要求也随之越来越高。在游戏和电影 领域,逼真的渲染效果变得越来越重要。为了跟上时代的进度,满足人们不断增 长的需求,对新的图形学算法的研究也因而变得越来越重要。 三维特效合成技术的研究,在计算机图形学领域中,一直都是一大热点。在 以往的三维特效合成中,大都采用的是基于三维建模的合成方式,其优点在于合 成的真实感效果较强,但缺点也同样明显,那就是计算量太大,不利于实时渲染 效果的实现。而基于纹理材质的渲染技术,在真实感效果不逊色于三维建模渲染 太多的情况下,大大减少了渲染过程中的计算量,极大提升了渲染速度。基于纹 理材质的三维特效合成技术,正是基于这一优势,对传统的合成技术进行了改进, 使之更适应现代社会对图形学技术的要求。 本文介绍和研究了特征轮廓合成与浮雕贴图等先进的计算机图形学技术,以 及相关技术的发展历史。在实现过程中,本文首先通过特征轮廓提取算法( PPA) 对输入的灰度图进行了处理,接着实现了基于特征轮廓的图像合成。接下来,本 文实现了从灰度图到法线贴图的转换。在最后,通过使用浮雕贴图技术,本文实 现了合成后的三维特效的真实感模拟。本文在学习了前人先进理论的基础上,创 新性的实现了三维特效合成与纹理材质的结合,在不破坏真实感效果的情况下, 提升了整体的渲染速度。 关键词:特征轮廓,法线贴图,浮雕贴图,纹理材质,真实感渲染 I ABSTRACT Abstract With the rapid development of computer graphics technology in recent years, there has been a rapidly increasing in computer hardware performance, people’ requirements for realistic visual effects are also getting higher and higher. In fields such as games and movies, photorealistic rendering effects are becoming increasingly important. To keep up with the progress of the times, to meet the people's growing demand, research for new graphics algorithm thus also become increasingly important. Synthesis of three-dimensional effects has been a hot topic in the field of computer graphics. In the past, the synthesis of three-dimensional effects, mostly synthetic approach used is based on three-dimensional modeling, the advantage lies in the synthesis of realistic effect is strong, but the disadvantage is equally obvious that the calculation is too big. The textures based rendering technology, which has result not inferior to the realistic modeling of three-dimensional rendering of too many cases, greatly reducing the amount of computation rendering process, which greatly improved the rendering speed. For this advantage, the three-dimensional effects synthesis technology based on texture, improved conventional synthetic techniques to make it more adapted to modern society graphics technology requirements. This thesis describes and researches some advanced computer graphics technology such as the synthesis based on feature profile and relief map, and history of the development of related technologies. In the implementation process, the paper first processed the input grayscale with extraction algorithm (PPA), and then realized the image synthesis feature based on feature profile. Next, the paper realized the transition from grayscale to a normal map. In the end, through the use of relief mapping technology, this paper achieves a realistic simulation of the three-dimensional effects synthesis. This paper studied the previous advanced theory, combined three-dimensional effects synthesis with texture technology innovatively, in the case without damaging the realistic effects to enhance the overall rendering speed. Keywords: feature profile, normal map, relief map, texture, photorealistic rendering II 目录 目录 摘 要 ......................................................................................................................... I ABSTRACT .............................................................................................................II 目录 ...................................................................................................................... III 1.1研究工作的背景与意义 ................................................................................ 1 1.1.1研究背景 ................................................................................................. 1 第一章绪 1.1.2研究意 论 ......................................................................................................义 ................................................................................................ 2 .... 1 1.2国内外研究现状 ............................................................................................ 2 1.2.1三维表面特效合成的国内外研究现状 ................................................. 3 1.2.2基于纹理材质的表面实时渲染的国内外研究现状 ............................. 3 1.3本文研究工作与创新 .................................................................................... 4 1.3.1研究目标 ................................................................................................. 4 1.3.2研究内容 ................................................................................................. 4 1.3.3论文创新点 ............................................................................................. 5 1.4本文组织结构 ................................................................................................ 5 第二章相关技术介 绍 ............................................................................................ 7 2.1整体技术路线 ................................................................................................ 7 2.2特征轮廓提取技术 ........................................................................................ 8 2.3特征融合技术 .............................................................................................. 10 2.4法线贴图技术.............................................................................................. 12 2.5浮雕贴图技术.............................................................................................. 13 2.6光照与着色方程.......................................................................................... 18 2.7本章小结...................................................................................................... 22 第三章系统需求分析 .......................................................................................... 23 3.1核心功能模块提取 ...................................................................................... 23 3.1.1系统输入 ............................................................................................... 23 3.1.2系统输出 ............................................................................................... 23 3.1.3系统功能点 ........................................................................................... 24 III 目录 3.2特征融合模块需求分析 .............................................................................. 24 3.2.1模块输入 ............................................................................................... 24 3.2.2模块输出 ............................................................................................... 24 3.2.3模块功能点 ........................................................................................... 25 3.3法线贴图模块需求分析 .............................................................................. 25 3.3.1模块输入 ............................................................................................... 25 3.3.2模块输出 ............................................................................................... 25 3.3.3模块功能点 ........................................................................................... 25 3.4材质渲染模块需求分析 .............................................................................. 26 3.4.1模块输入 ............................................................................................... 26 3.4.2模块输出 ............................................................................................... 26 3.4.3模块功能点 ........................................................................................... 26 3.5本章小结 ...................................................................................................... 27 第四章系统概要 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 .......................................................................................... 28 4.1系统结构设计.............................................................................................. 28 4.1.1系统结构图 ........................................................................................... 28 4.1.2系统流程图 ........................................................................................... 29 4.2特征融合模块设计...................................................................................... 30 4.2.1模块结构图 ........................................................................................... 30 4.2.2模块流程图 ........................................................................................... 30 4.3法线贴图模块设计...................................................................................... 31 4.3.1模块结构图 ........................................................................................... 31 4.3.2模块流程图 ........................................................................................... 31 4.4材质渲染模块设计 ...................................................................................... 32 4.4.1模块结构图 ........................................................................................... 32 4.4.2模块流程图 ........................................................................................... 33 4.5本章小结 ...................................................................................................... 34 第五章系统算法实现 .......................................................................................... 35 5.1特征融合模块算法实现 .............................................................................. 35 5.1.1特征数据存储 ....................................................................................... 35 5.2.2特征轮廓提取 ....................................................................................... 36 5.2.3特征轮廓合成 ....................................................................................... 41 IV 目录 5.2.4图像平滑处理 ....................................................................................... 44 5.3法线贴图模块算法实现 .............................................................................. 46 5.4材质渲染模块算法实现 .............................................................................. 48 5.5本章小结 ...................................................................................................... 51 第六章系统测试 .................................................................................................. 52 6.1测试环境及说明.......................................................................................... 52 6.2效果展示 ...................................................................................................... 52 6.2.1灰度图合 成 .......................................................................................... 52 6.2.2法线贴图生 成 ...................................................................................... 54 6.2.3三维实时渲 染 ...................................................................................... 55 第七章总结与展望 .............................................................................................. 6.3性能测试 ...................................................................................................... 57 59 6.4本章小结 ...................................................................................................... 58 致 谢 ...................................................................................................... .............. 60 参考文献 ................................................................................................................ 61 攻读硕士学位期间取得的研究成果 .................................................................... 63 V 第一章绪论 第一章绪论 1.1研究工作的背景与意义 1.1.1研究背景 在近代社会,计算机领域得到了飞速的发展,不论是软件还是硬件都提升迅 速。而随着人们需求的逐步提升,计算机图形学也应运而生,在现实中的各个领 域都出现了它的身影。而随着计算机图形学中虚拟现实技术的发展,人们也对它 提出了更高的真实感要求,尤其是在爆炸、海洋和火山等自然现象的模拟中,更 是对真实感要求极高,而其它的一些自然景观和气候现象,也是渐渐开始利用虚 拟现实技术进行实时模拟[1]。随着数字时代的迈入,在人们的生活之中,基于新的 三维图形学的对现实进行重建的虚拟现实仿真等前沿的技术,也得到更多人的关 注与使用。 在虚拟现实技术中,常常会有超大规模的场景仿真,这样的模拟需要非常大 量的运算,即使是以当今的计算机处理能力,也难以保证实时性的要求,可能数 台计算机进行数天甚至于数月的运算,才能生成一张具有震撼的真实感的图像。 而在电影等领域,大型 3D电影如《阿凡达》中,也是依靠计算机图形学的虚拟现 实技术进行魔幻场景的制作,当然采用的是离线渲染的方式。而在另一些领域, 如大型 3D游戏之中,用户对实时性的要求是非常高的,这就造成了实时性和真实 感之间的矛盾。 在 3D游戏场景,物体表面真实的模拟是一个非常重要的组成部分。而真实的 世界之中,物体表面之上,总是不免会有各种各样的磨损痕迹存在着。除此之外, 用户也可能会希望在物体表面进行雕刻等操作,如果完全依靠美工绘制的方式来 模拟刻痕,一是工作量会非常大,二是会限制用户操作的自由度,只能在提供的 模板中进行选择。为了解决这个麻烦的问题,采用三维表面的合成技术是一个很 好的选择。在传统的技术当中,虚拟仿真的实时性和真实性两方面总是相互限制 的,一方面,人们希望能够得到更加真实的效果;另一方面人们又希望能得到更 快的渲染速率和实时帧率,在当前的软硬件条件下,这样的要求是难以满足的。 但如果采用基于纹理材质的技术,这个问题就能够得到很好的解决。 由于移动端触摸操作的特性,用户在移动端操作三维游戏时,无法避免的需 要在屏幕上进行各种各样的划动操作,如果能够以可视化的形式显示出用户的操 作轨迹,无疑是很有吸引力的一项功能。如果只是简单显示划动痕迹,是不能给 1 电子科技大学硕士学位论文 用户留下深刻印象的。比如有一块木板,用户可以将它作为信息的载体,自己写 字上去,一个简单的实现方法就是在上面显示字体,而对表面采用三维特效合成 技术,则可以将写字变为刻字,将用户输入变为木板上的刻痕,这样子将会增加 效果所具备的吸引力。 基于纹理材质的三维特效合成技术,其优势就是在于可以在占用较少资源的 情况下,真实的模拟出三维物体表面的合成效果,相较于其他技术,它更加适合 与硬件相对较弱的移动端设备,具有相当的应用价值。 1.1.2研究意义 随着时代的发展,计算机图形学也随之诞生,而相关的科研人员从未停止过 对虚拟现实领域的探索,使用计算机创建一个虚拟的现实世界也成了探索者们的 终极目标。计算机图形学的研究范围非常广,不仅仅是图形学算法和软件,也包 含了对底层图形硬件的研究和 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 制定。在当前的世界中,计算机图形学中最重 要的应用之一是虚拟现实仿真。 在现实的环境中,物体的表面常常会有各种各样的刻痕与印记,随着时间的 推移,这些痕迹会渐渐与物体表面融为一体。在计算机虚拟的三维场景中,我们 同样需要对这样的物体进行绘制,如何让这样的痕迹与已有的三维物体表面进行 合成,和实时渲染符合高质感,是一个值得探索和研究的问题。 基于纹理材质的渲染技术,在经历了相当长一段时间的发展之后,已经逐渐 进入了人们的视野。基于纹理图片来模拟三维空间中物体表面的凹凸效果,能够 极大的加快程序的渲染速度。与此同时,由于使用了很多先进的算法进行模拟, 整个三维对象的真实感效果并不会受到太大的影响。这样一来,就能够利用及其 微小的真实度损失的代价,来大大提高整体渲染速度,从而兼顾实时性和真实感 效果。 近几年,随着移动端设备(如手机和平板等)的高速发展与硬件的不断更新, 曾经只能出现在电脑上的三维画面开始出现在了移动端设备上。相较于电脑,移 动设备无论是在 CPU还是 GPU的性能上都要逊色不少。在硬件资源有限的情况 下,使用基于纹理材质的方法进行对象表面的三维特效合成,无疑是一个有效的 选择。 1.2国内外研究现状 三维特效的合成技术,在三维地形的生成中有广泛的应用,在国内外都有众 多的相关研究,但大多都是使用基于顶点的方法对合成的数据进行绘制。而基于 2 第一章绪论 纹理材质的表面实时渲染,在三维场景中材质渲染中是重要的一部分,也有很多 相关研究。而本文则是将这两项技术结合到一起,实现针对对象表面的三维特效 合成与渲染。 1.2.1三维表面特效合成的国内外研究现状 对三维表面特效合成的研究主要集中于地形合成方面。 Mandelbrot在最初进行了分形地形建模的前瞻性研究,从那以后,地形的生成 与合成有了飞速的发展。富尼耶提出了一种叫做随机中点位移的技术来创建分形 表面。Miller提出了一个分割方法用于产生分形地形,并用并行计算的方法渲染高 度场。Lewis提出了广义细分的方法。Szeliski和 Terzopoulos通过组合确定性和随 机分形花键,以产生约束的分形的问题得到解决。 Chang在 1995年提出了 PPA(Profile recognition and Polygon breaking Algorithm) 算法,该算法可以通过地形数据进行山脊和山谷的辨识[2]。 2007年 Howard Zhou, Jie Sun, Greg Turk等提出了一项地形合成的新算法,该 算法通过 PPA算法提取地形灰度图中的山峰和山脊等特征数据,将现实地形与虚 拟轮廓进行了组成,达到了合成的效果[3]。 中国科学院软件研究所的尹华飞、郑昌文、胡晓惠等在 2012年提出了一种交 互式的数字地形合成算法,示意图算法,用户通过地形特征的使用解决问题的准 确位置和控制参数的调整合成使用地形的细节,对于地形建模从手工到自动化的 转变具有一定的促进意义[4]。 王继东、赵瑞斌等在 2013年提出了基于特征草图和分形插值的可控真实感地 形合成方法,在用户绘制的期望地形特征曲线的控制下将一定数量的独立山体自 然拼合生成最终的三维地形模型[5]。 1.2.2基于纹理材质的表面实时渲染的国内外研究现状 1978年布林等人提出了凹凸贴图技术,在该技术中,对于三维对象的表面细 节,使用了法线扰动的方式进行处理,从而模拟出对象的凹凸感,在该技术中采 用的是凹凸纹理图保存表面映射,这使得数据的保存得到了简化,也加快了处理 效率[6]。 1984年库克等人提出了位移贴图技术,在该技术中,着重于阴影效果的模拟, 通过特定的算法去改变对象表面状态,快速模拟自阴影效果,为了达到这样的效 果,该算法加大了数据的计算量,但是这样子又相应的降低了处理效率,影响了 计算的实时性,在需要进行实时处理的场合就不那么适用了 [7]。为了改进该算法, 3 电子科技大学硕士学位论文 在近年来,计算机图形学领域的研究人员提出了多种方法进行位移贴图的加速渲 染,这种包括基于光线追踪的图像反转处理等。在这些方法中,有些偏向于真实 感的提升,另外一些则偏向于实时渲染,两者之间始终是难以找到一个很好的平 衡点。 2001年,卡内考等人提出了视差映射技术,这是一种新的材质渲染方法,在 其中通过逐像素深度的算法对贴图进行扩展,从而大大降低了处理代价。但是相 对的,该方法在并没有进行表面光照和阴影的计算,因此最终输出的效果并不理 想,真实度较差[8]。 2005年法比奥.普利坎波等人提出了运行在任意多边形表面上的实时浮雕贴图 技术,该项技术极大提高了基于材质的渲染技术的发展,由于在该算法中采用了 一个搞笑的 ray-height field相交算法,且完全在 GPU内实现整个计算过程,极大 加快了渲染的效率,同时,该技术还能够进行光照和阴影的模拟,因此真实感也 能够很好的进行模拟,在当前的材质渲染技术中,浮雕贴图渲染技术无疑是非常 优秀的一种[9]。 1.3本文研究工作与创新 1.3.1研究目标 针对移动端设备的硬件局限性,以往的使用基于顶点的方法进行三维特效合 成的办法已经不能保证局限性,但是其研究成果依然具有相当的指导意义。通过 基于纹理材质的方法来实现三维特效的合成,是对已有技术的创新型拓展,也是 当前三维计算机图形学发展的趋势。 本课题将从基于纹理材质实现三维特效的合成开始,通过多项虚拟现实技术 的使用,最终实现三维特效的合成与实时渲染。一旦解决了以上提出的关键问题, 就为生成具有高度真实感的三维合成特效提供了坚实的基础,并将极大促进移动 端的数字媒体娱乐的进展。基于这样的目的,在本课题中,针对上述问题提出了 有效的研究与解决 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 与,并期望能够为三维特效的合成相关领域的研究和应用 带来不同的思路和发展。 1.3.2研究内容 本课题致力于移动端设备的三维仿真中,基于纹理材质的三维特效合成研究 中至关重要的若干挑战性问题,核心研究内容主要包括 3个方面:三维表面特征 融合,法线贴图生成,三维表面实时渲染。 4 第一章绪论 (1 )三维表面特征融合 我们采用灰度图进行三维对象的表面特征存储,基于 PPA(Profile recognition and Polygon breaking Algorithm)算法,通过用户绘制图像的特征轮廓对灰度图进 行图像切割和片段提取,并在特征轮廓的基础上采用广度优先的遍历方式逐步进 行图像融合,最终生成一张融合了特征轮廓的三维表面灰度图。 (2 )法线贴图生成 在基于纹理材质的合成技术中,需要记录对象表面的法线信息和高度信息。 基于法线知识可知,对象表面的法线信息是一个三维向量,可以使用三位数字进 行存储;而表面的高度信息则是一个标量,用一个数值就能够表示,因此可以采 用图片来存储这些相关信息。通过使用图像中的 RGB通道来保存法线信息,使用 α通道来保存高度信息,就可以将一张灰度图转换为法线贴图,实现三维对象表 面数据的高效存储[10] 。 (3 )三维表面实时渲染 为了提高渲染表面的真实度,需要模拟的三维凸表面的影响。传统的建模对 系统资源消耗较大,在移动端设备上难以满足实时性的需求,因此我们采用基于 图像的浮雕贴图技术。浮雕贴图技术里面,为了构造复制三维几何体的细节影像, 采用了特殊的纹理图片。但是在实际的处理过程中,物体表面依然是被视为平面 模型进行处理的,这样子可以有效减少渲染在 GPU之中的三角形体的数量,提高 渲染速度,从而在移动设备相对较低的系统条件下实现三维表面的实时渲染。 1.3.3论文创新点 本文在研究基于纹理材质的三维特效合成与实现的过程中,主要创新点如下: ,创新性地将地形轮廓的提取算法应用到了表面特征的提取之上 ,创新性地结合了地形合成算法与纹理材质渲染技术 ,创新性地在移动端设备上实现了复杂的三维特效 1.4本文组织结构 第一章为引言。在本章之中,对于课题研究背景进行了详细的介绍,并描绘 了课题的意义。对于该技术的国内外研究技术,在本章进行了引用阐述,以证实 研究方向的可信性。除了以上内容,本章还对本文的研究目标进行了确立,阐述 了本文的创新点,以及整片论文的组织结构。 第二章介绍了本文的技术路线,同时讲解了使用的相关技术。本章对论文中 使用到的特征轮廓提取算法、特征融合算法、法线贴图生成算法和浮雕贴图算法 5 电子科技大学硕士学位论文 进行了详细的说明与介绍。 第三章是本系统的需求分析。在本章中,针对系统的需求进行了详尽的分析, 同时对系统的核心功能模块进行了提取,并针对每个模块都进行了详细的需求分 析。 第四章是本系统的概要设计。本章对系统进行了整体的结构和流程设计,并 对三个核心模块进行了详细的结构和流程设计。 第五章之中,对系统的核心功能模块,讲解了具体的实现。本章介绍了本系 统的开发环境,并对系统中的三个核心模块进行了具体实现。 第六章展示了本系统运行截图,以及测试数据。本章主要从功能方面对系统 进行了验证,给出了合成效果图,并对系统运行数据进行了分析。 第七章是总结与展望。在本章中,对全文进行了概括性的总结,针对三维特 效合成的研究领域和研究方向,本文也在此提出了自己的期许与建议。 6 第二章相关技术介绍 第二章相关技术介绍 整个系统的技术路线在本章都有进行详细的介绍,并就具体使用的算法进行 了详细分析和说明。 2.1整体技术路线 本课题采用的主要理论为纹理材质技术,使用算法和技术包括 PPA 算法、 Howard Zhou等提出的地形表面合成算法、法线贴图技术和浮雕贴图技术等。关键 技术有三个部分: (1 )三维表面特征融合 灰度图就本质上而言是一种单色图,在这样的图片中,灰度色域或等级是从 黑到白的,共计分为了 256级,这种图像的用处是存储三维表面的高度信息。我 们采用 PPA(Profile recognition and Polygon breaking Algorithm)算法,通过用户绘 制图像的特征轮廓对灰度图进行图像切割和片段提取,提取对应特征轮廓部分在 灰度图中的数据信息。PPA是一种辨别地形山脊和山谷特征的识别算法,我们对 其稍微进行改进,使其可以满足我们的表面特征提取需求。 在对图像完成分割之后,将基于特征轮廓,实现对图像的匹配和安置。整个 特征轮廓将被分割为一颗广度优先遍历树,从根节点开始放置合成的图像,当特 征轮廓合成完后再添加其余部分,最终生成一张融合了特征轮廓的三维表面灰度 图。 (2 )法线贴图生成 法线贴图技术在目前的三维模拟技术中,是较为常用的。在法线贴图中使用 彩色来进行信息的表示,而不是传统的黑色和白色。如果一个模型是使用的法线 贴图技术,则它会与光照产生反应,产生光照与阴影效果,但实际上模型本身的 多边形面片数并没有被改变。 如果扰动三维表面的法向量,通过这种方式去获取高分辨信息,并将该信息 存储到三维向量法线图中,则可以得到一张凹凸映射图,又称为法向量映射图。 在凹凸映射图中有很多的向量,用于表示方向和做偏向。向量 <0,0,1>用于表示法 向量未经扰动,而所有的其他向量,都说明对光亮度进行了修改,产生了不同的 颜色,也即是模拟了光照。 (3 )三维表面实时渲染 在本文中,不光需要模拟表面的真实感三维效果,同时也需要考虑到实时性 7 电子科技大学硕士学位论文 的要求。在这种情况下,采用传统的建模方法,无疑是行不通的,因此,在本文 使用的是基于纹理材质的实时渲染技术。 在本课题中,结合了浮雕贴图技术和光照阴影技术进行对象的三维渲染,整 个实现过程都在 GPU中完成,以保证程序的实时性问题。由于使用了先进的计算 机图形学算法,使得从任意角度进行表面细节的观察,都不会产生扭曲变形的现 象,能够充分满足用户需求。 2.2特征轮廓提取技术 在许多类型的地图和数字图像中的线性的或曲线的特征轮廓,如地形图上的 一个脊轴线,或是在地震图中的重-厄克托基线,又或者是卫星图像的轮廓线,都 是图中的相当重要的数据内容。要从地图和图像中提取这些数据,通常需要一个 线条的识别和绘制功能。随着需求的产生,数种自动线提取过程已经被开发了出 来,用于识别这些二维数据,如 Koike的段跟踪算法(STA),Lu和 Cheng的地震 骨架识别算法等[11]。 然而,在大多数情况下,这样的自动化功能正如事实所示,并没有被广泛地 接受和使用,因为算法中的部分画线仍是手工完成。造成这个现象的主要的原因 是,人脑可以分析数据的变化趋势,因此在大空间范围内比算法的判断更为准确[11]。 实际研究发现,独立线条的拾取在线路连续性的数据变化中并不太重要。模拟人 脑分析的关键点,在于如何设计一个可以在大的空间范围内进行分析的算法。 基于这个思路,一些自动化识别算法已经开始进行了改进。例如,STA的计 算范围已经扩展到了 11X11的矩阵(小池,长野和道通,1995),地震骨架识别算 法中的函数关系也从两个扩展到了三个( Lu和 Cheng,1990)。由 Y.-C.CHANG 提出的 PPA(Profile recognition and Polygon breaking Algorithm)算法,正是这样一 个在广泛空间内进行全面分析的特征轮廓提取算法。 PPA算法可以对图中的山脊山谷等不同的特征轮廓进行提取。同样的,也可 以被用于提取图片中的凹凸轨迹轮廓。在整个算法的流程中,处理操作被划为为 了多步,以减少各步间的耦合性,方便整个测试过程的进行。在 PPA算法,整个 流程共分为五步,节点提取、节点连接、回路消除、分支裁剪和线条平滑处理。 算法流程如图 2-1中所示: 8 第二章相关技术介绍 图 2-1 PPA算法执行流 程 在节点提取这一步中,需要访问图中的每一个点,以确定它是否是特征轮廓 上的一个候选点。如图 2-2中(a)所示,算法将沿该八条路径进行检查,如果在 任一条路径上,该中心点的左右一定距离内(如 3格)都有点的高度值大于(或 小于,取决于提取的轮廓类型),则该中心点被标记为一个候选点。 当所有的候选点都被提取出来后,需要使用线段将它们连接起来,如图 2-2 中(b)所示,同时还需要记录每段线条的权重(即高度差)。在图中可以看到, 有很多两两交叉的线条,对于这样的线条,需要比较它们的权重,然后消去其中 权重较低的,保留权重较高的,最终消去所有交叉。 在完成前两步后,生成的图中仍然会有许多回路,因此我们需要进行回路的 消除。在这一步中,算法从一个点出发,沿着它的边进行遍历,并记录这条路径 上所经过的线段。当出现回路时,则对回路中的所有线段进行比较,消除其中权 重最低的一条边,打破这个回路。完成回路的消除后,回到回路出现的起点,从 新进行递归查找。整个过程将循环重复,一直到在图中无法再找到回路为止,如 图 2-2(c)中所示。 前三步完成后,生成的图中分支数量仍然太过密集,因此需要进行分支裁剪。 在分支削减的过程中,将沿第一步中的八条路径进行分支查询,对于图中的每一 条路径,都将其长度减少特定值(节点提取中的路径长度/2)。分支削减后的特征 9 电子科技大学硕士学位论文 轮廓图如 2-2(4)所 示。 图 2-2 PPA算法各个阶段的图示。(a)节点提取(b)节点连接(c)回路消除(d)分支裁剪 在 PPA算法的最后一步,我们将图中的线段进行平滑化处理,处理后的效果 图如图 2-3(c)所示。 图 2-3 PPA算法处理效果图。(a)原灰度图(b)常规算法效果(c)PPA算法效果 PPA算法本身是一种地形高程图中的特征轮廓提取算法,通过对其进行改造 和扩展,可以使用该算法进行多种类型的表面特征轮廓提取,从而进行本论文中 所需要的合成操作。在下面的介绍的特征融合技术中,就使用了这里的特征提取 技术。 2.3特征融合技术 在现代计算机图形学中,很多地方都用到了地形融合技术,如环境设计、飞 行模拟、紧急逃生模拟和大型 3D游戏等。这些年以来,计算机图形学研究者们一 直在改进地形合成算法,以期提高合成的效果,以及提高合成的效率。在之前的 研究中,大多数都集中与基于分形和物理的方法进行地形效果的合成。最近,Brosz 10 第二章相关技术介绍 等试图从现有的 DEM(数字高程模型)数据中提取高分辨率的地形细节,并通过 多分辨率分析将其应用于低分辨率地形上 [12] 。在实践中,他们使用的源地形和目 标地形都是相当详细的,并不允许用户进行地形的自定义。 基于图像的纹理合成,是通过创建一个任意大的补丁质感的工艺,从一个给 定的示例图像绘制像素 。在过去的几十年来,合成纹理的质量在稳步的提高, [13] 2D和体积已经实现通过从基于像素的方法,以非参数的演变和基于邻域的方法提 高合成质量。而最近的基于块拼贴的技术,有两个共同的阶段:1)在一个样本纹 理的街区搜索最相似的上下文区域;2)合并一个补丁或者一个像素的部分,合成 输出质感。在优化补丁合并阶段,已经开始运用动态规划技术和图像切割技术, 以优化最终的效果[14] 。 在 Howard Zhou、Jie Sun等的“Terrain Synthesis from Digital Elevation Models” 中,展示了一个基于实例的地形合成系统,该系统提出了一种基于特征轮廓的地 形合成技术。在该系统中,通过用户传入的特征轮廓图和实例的地形高度图进行 合成,重新生成新的地形高度图,实现地形合成的效果。系统中强调大规模的曲 线特征,因为这样的特点是大多数地形的可视化元素。 在这个地形合成系统中,提出了基于特征轮廓的合成技术。该技术使用了章 2.2中提到的特征提取技术,即 PPA算法。该技术首先从地形高度图和特征轮廓图 中提取对应的特征轮廓,然后基于特征轮廓进行合成。合成分为两个阶段:片段 匹配和放置、片段融合。 在片段匹配和放置阶段,系统基于用户输入的特征轮廓图进行扫描,从地形 高度图中的提取的特征轮廓中寻找相匹配的特征,找到其中匹配度最高的特征, 通过其和其周围的控制点获取对应的地形块,然后在输出的高度图中对应用户轮 廓图位置放置该地形块[15] 。 当对应特征轮廓的地形块全部完成放置后,就将对剩余的非特征部分的地形 块进行放置,最终生成放置后的地形图。在这里需要进行整个图片的逐像素点扫 描,在传统的处理方式中,采用的是逐行光栅扫描的方式,在这里如果采用这种 方式进行处理,可能会导致最终得到的结果和我们想要的不一样。因此,在整个 过程采用的是基于树结构的广度优先遍历方式进行扫描,相对于传统的逐行光栅 扫描的方式,这个方式对用户自定义特征轮廓的重现效果更好,能够更加准确的 重现用户自定义的特征轮廓,达到所需要的最终效果 [16] 。两种方法结果对比如图 2-4所示: 11 电子科技大学硕士学位论文 图 2-4特征融合效果图对比。(a)使用光栅扫描(b)树结构扫描 在片段融合阶段,系统通过下面两种技术的融合,确保了第一阶段中放置的 地形块之间能够平滑过渡,最终得到平滑的合成地形。第一种技术叫做 GraphCut Optimal Seam Finder,在该技术中,将寻找地形块之间的裂隙,并通过最大流/最小 割问题的求解,得到一个代价最小的图像切割方法,以消除地形块之间的裂隙[17] 。 第二种技术叫做 Poisson Seam Remover,在这个技术中,通过一个泊松方程的求解, 在裂隙间进行人为的高程梯度调整,最终实现两个地形块的无缝对接[18] 。 2.4法线贴图技术 法线贴图技术是一种三维图形数据记录技术。电脑设备使用平面进行显示, 要模拟出 3D效果就只能依靠光照明暗的变化,可以采用表面的法线信息来进形凹 凸效果模拟。法线向量有 3个分量,如果采用 RGB的编码格式对这 3个分量进行 处理,存储在位图的 RGB颜色通道中,就可以用一张图来记录表面的法线数据, 这就是法线贴图技术[19]。如图 2-5所示即为法线贴图,在该图中,上面为对应物 体的表面高度灰度图,而下面则是通过这些高度灰度图生成的用于表示表面的法 线数据的法线贴图。由于使用了位图的 RGB三色通道,因此生成的法线贴图是具 有渐变色彩的。 当从任何非边缘的方向去观察一个物体的时候,观察到的表面细节一般是由 光照方式决定的,对于要进行光影变幻的贴图,我们将其各个点的凹凸情况记录 在法线贴图中,就可以计算出每个像素的光照度 [20] 。在正常的矢量纹理信息记录 所有的像素,你需要实现的数学方法的运用,技术的使用将能够凹凸贴图,很好 的解决这个问题。对于图中的每个像素点,可以使用纹理映射的方式去改变法向 量,这样子可以提升光照的细节。 12 第二章相关技术介绍 图 2-5法线贴 图 凹凸映射图是这样的一个贴图,在里面对法向量信息进行了扰动,并将处理 得到的高分辨率信息进行存储。在凹凸映射图中,每一个像素点都存储着一个向 量信息,表示一个方向,而我们则在这个方向上对法向量进行相对于插值所得的 法向量的相对偏向。在这里,我们使用高度图(Height Map)来是实现表面的高度数 据信息存储,从而构造一个凹凸映射图 [21] 。通过从高度图中读取到的各个像素点 的高度信息,再进行一系列的数学运算,最终得到表面的法线信息,再通过 RGB 编码格式存储在图片中,就可以得到我们需要的法线贴图。 在生成法线贴图的过程中,还可以使用索贝尔算子和切线空间等技术,进一 步的提升最终生成的法线贴图质量。 2.5浮雕贴图技术 在当前的计算机三维图形学中,实时性和真实感常常是无法兼顾的。基于这 样的背景,基于图像的渲染技术应运而生,也即是我们所熟悉的纹理贴图技术[22] 。 在纹理贴图技术中,通过算法对多边形的表面进行模拟,在平面对象的表面实现 三维的凹凸细节,从而在保证实时性的基础上实现三维真实感模拟。 浮雕贴图技术是纹理贴图技术中的一种。不同于传统的纹理贴图技术,它所 使用的是带有逐像素深度信息的法线贴图。在传统的法线贴图中,使用图片中的 RGB三个颜色通道来进行表面法线信息的存储,而在浮雕贴图的法线贴图中,额 外使用了一个 Alpha通道,用于存储图片中的高度差值信息。通过使用这些差值 信息,浮雕贴图技术能够更好的模拟三维对象的表面凹凸和阴影效果。在浮雕贴 13 电子科技大学硕士学位论文 图技术中,需要一张用于表示表面材质漫反射的颜色纹理,以及一张高度信息纹 理。如下面所示,图 2-6是表面材质漫反射的颜色纹理,图 2-7是对应的高度信 息纹理。 图 2-6表面材质漫反射颜色纹理 图 2-7表面材质高度信息纹理 相较于法线贴图,浮雕贴图技术中增加了凹凸表面高度信息的记录,因此, 需要在法线贴图的 alpha通道中添加高度信息的存储。其主要思想是先沿投影矢量 来测试纹理采样的固定数量,以及更多的样本,一般产于水平视线,所以交叉点 不是最亲密的丢失[23] 。每个纹理的位置将被提取并进行处理,以决定是大于还是 小于所述高度字段,或者是在高于或低于。在下面的示例高度场发现,样本和其 使用的样品高度场最初发现上图的交叉点。如图 2-8所示,观察光线将被投影到 平面上,这是按照时间间隔采样规则的表面,高度被提取出来,这个算法会找到 眼球射线与近似的高度域曲线黑色线段的第一个交叉点 [24] 。高度域的方法在硬阴 影中,可以用来进行对象自身的凹凸显示,在软阴影中也同样适用。 14 第二章相关技术介绍 图 2-8观察射线与投影表面 在传统的处理方式中,在浮雕贴图技术的处理过程中,使用纹理坐标来映射 空间中的多边形对象是常用的处理方式。因为这一点,相同的映射既可以使用浮 雕纹理,同时,也可以采用颜色纹理。在这里对深度值进行处理,规范化到 [0,1]这 样的区间之中,就能够获得隐含的高度域表面的定义,即这样的一个函数 Hs: [ 0,1] × [0,1] >[0,1]。在纹理空间内,执行了射线与高度域之间的的相交点判断,如图 2-9所示。 图 2-9算法执行过程,左为交叉点查找,右为二 D中执 行的查找 在实时系统中,传统的,如果你想找到交叉的点,来处理将使用正割法的有 效途径,它增加了像素高度场的基于像素的位移成任意的多边形网格。使用的技 15 电子科技大学硕士学位论文 术计算方法,首先计算的时间间隔开始的范围,然后在每一次迭代中的交叉点的 距离的变化的范围已达到。在这一步中,二叉树查找法并不是一个很好的选择, 如果在计算过程中限定查找的区间范围,将能够更快地降低到交叉点上。在这一 过程中,射线交叉的处理方式无疑是更优的。在计算中使用正割法可以达到一样 的可视质量,相较于二分查找,它对纹理查找的需求更小,使用此方法可以更快 地找到交点,加速收敛过程,所以迭代和相关纹理的读取次数将减少。虽然在整 个运算迭代过程中,全面访问纹理不是必须的,但由于依赖纹理存取的执行过程 较慢,还要等待处理结果,所以效率也有所降低。 作为一种基于图像的绘制技术,浮雕纹理映射技术通过使用第一种方法模拟 表面细节多边形对象。在这项技术中,采用四叉树的方式进行存储和计算,从理 论上讲性能很高,能够达到 (log(p))和 O(?p)的性能。在该算法中,其中 p是纹 理的图象的象素数。实际上,在平时的使用中,该算法的性能更加的接近于 log(p) 这样的效率。因此,可以利用它进行观察射线与编码表面的交叉点计算。正因如 此,与前面的算法相比,它有更加优秀的缩放性能,这也使得它更加适应于将来 软硬件的发展趋势,适合未来的图形处理。当纹理不够大时,该算法的效率可能 会降低。但如果纹理大小在 512*512的规模之上,就可以通过使用 Quadtree relief mapping算法,以更好的处理不规则表面,正确实现自遮挡和自阴影效果,相较于 要处理高度域和观察视线的交叉点搜索问题,锥步映射是一个更有效的解决 方案,通过使用预先计算的数据(锥形地图)来计算的,你可以跳过高度场数据较老的技术,它的效率无疑更高。 结构,在多次平均的情况下,这样的计算效率是更高的。在锥步映射中,为了保 证第一个可视交叉点不会再算法中被错过,该算法会进行更多处理步骤。如果在 算法中能够得到最大迭代次数,则能够对性能进行优化,这往往是人们所需要的。 因为这个原因,在该算法中,返回数据中有一部分是不正确的,因为视线通常会 在搜索到第一个交叉点前打住,这些错误的数据有可能包括纹理坐标和颜色贴图 等。如果使用这些错误数据进行图像渲染,则最终的结果可能会出现变形。 在锥步映射技术中,采取较为保守的做法,在这之前可能还没有到达真正的表 面,光线就会停止。基于这个原因,将锥步映射算法和二进制查找算法进行结合, 可以实现一种新的策略用于交叉点的搜索。由于在这个新算法中,取消了锥步映 射算法中的圆锥半径限制,也即是简化了锥步映射算法的处理过程,因此,我们 给它取名为简化的锥步映射算法(RCS)。在锥步映射算法中,由于限制了圆锥半径, 射线不可能插入到对应的表面之中,而在简化的锥步映射算法中,则可以插入一 次。由于取消了圆锥半径,在简化的锥步映射算法中,收敛速度得到了大大的加 16 第二章相关技术介绍 快。当射线的插入位置被获取到之后,通过二查查找的方法,能够更加精准的获 得交叉点位置,这样子的结果就是,渲染的质量也得到了提升。作为一项基于空 间跳跃的技术,通过采用一些策略,可以进一步提高简化的锥步映射算法的精确 度,比如预计算。不过相应的,这些策略也会增加总体的数据量。 对比以上的多种策略和算法,它们都各有得失。二分查找法的收敛速度很快, 但当相交点数量较多时,它容易导致错误的计算结果。线性查找由于没有依赖纹 理读取的过程,因此处理速度是相当快的,但是在细节的把握上还不够好,使用 它有可能导致锯齿和失真。因此,在这里我们引入深度偏差这种方法,并结合线 性查找算法和二分查找算法,这样就可以避免锯齿现象,也不会导致错误的计算 结果。 在第一步,采用线性搜索的策略,去表面内部搜索第一个点 P1。从点 P1 开始, 沿着路径 P1 P2向前进行搜索,每一步中搜索范围增加 S,直到该点被找到为止。 如果显卡支持着色器 3.0的模式,就能够通过自带的片段函数,来动态获取这里 的 S的值。在这个片段函数里面,通过获取观察向量和空间中的三维表面的法线 插值,计算它们之间的夹角,来获得值 S。由于在线性查找中,并没有使用依赖贴 图的读取操作,因此算法的运行效率是比较高的,可以同时处理多个贴图块。通 过我们的实验可以验证,在整个过程中,沿着路径 P1 P2,处理过程的步数是不会 超过 32的。 二分查找的过程,是在上一步结束之后进行的。在这一步中,首先是对高度 场进行标准化。将重合基准面的最上方记为 0.0,而最高处则在下方 1.0处,则整 个高度场的区间为 [0,1],如图 2-10所示,图中的曲线代表对应的表面高度,沿着 带箭头的直线则是图中的摄像机观测方向。 在完成二分查找的过程后,就可以得到所需要的交点的纹理坐标。通过偏移 该纹理坐标,就能够获取对应的法线向量值以及颜色值,进行下一步的光照颜色 的计算。 通过对线性查找法和二分查找法的结合,可以大大提升整个系统的查找效率, 同时也不会损失精度,造成最终结果的失真,因此这样的处理过程是相对而言是 比较好的。 17 电子科技大学硕士学位论文 图 2-10线性查找与二分查找相结合的算法 2.6光照与着色方程 为了增加场景的真实度,在计算机图形学程序的处理过程中,往往还需要添 加光照光源对象的模拟。在物理学中,光是作为粒子而存在的,它由非常小的光 子组成,它们没有质量,以一定的速度进行着运动,同时具有微弱的能量值。光 线是作为粒子这样的存在而存在着的,每一束光都相当于是多个光子构成的光子 流,因而具有反射和折射等特殊的物理性质 [25] 。当光线与现实中的物体相撞时, 光线中的部分光子就会被该物体所吸收,转换成热能,导致光线总体能量的减少。 对于具有不同表材质的物体,它每次能吸收掉的光子数量是不一样的。除了被吸 收掉的光子外,其余的光子则是被反射了回去,继续进行运动,然后被其他的物 体所吸收,这个过程将一直持续到它能量终止。类似与无线点波等,光线也是作 为一种电磁波而存在的,因此,它也具备一些类似的属性,比如振幅、波长以及 频率等基本属性。对于光线而言,振幅属性代表着它的能量的强弱,频率代表着 光在一秒内能够通过点的波数。波长是一个与频率相关的两,可以通过公示 f=c/ λ进行表示,在公示中 f是频率符号的表示,而 c则是光速的符号。 光在现实世界中是很重要的一个元素,它具有很多的属性,如果要从数学的 18 第二章相关技术介绍 角度对其进行建模的话,无疑是非常困难的,因此需要采取折中的方式,对光照 模型进行一定程度上的简化,剔除掉其中所不需要的部分,保留必须的部分。如 果从人们的视角来看,光线无疑是有形状和颜色,这也正是计算机图形学中光线 的表示原理。在图形学中,我们所构造的光线对象,严格来说并不是现实中的光, 而仅仅是它的一个子集对象而已,在这个子集对象中,保留了形状和颜色等最基 本的属性信息。采用这样的方法,能够有效降低光线对象的构造代价,从而提高 渲染效率[26] 。在图形学中,一般提供如下几种常见的光照形式:点光源照明、方 向性照明和聚光灯照明。 在这三种光源中,点光源是其中最简单的一种,其它类型的光源也是基于点 光源的模型进行扩展的,因此可以说它是其它类型光源的基础。在三维图形学中, 点光源是空间中没有形状的一个点,以它的位置为中心,照明距离为半径构成一 个圆形区域,这个区域就是它的照明范围。 聚光照明光源和点光源则有所不同,它并不是朝着四面八方进行放射的,它 的照明区域是一个锥形,类似现实生活中的聚光灯。在具体的使用中,聚光灯能 够表现出高亮的效果。现实生活中的聚光照明如图 2-11中所示,在三维图形学中 其效果也与此类似,都是在一个具体的三维空间中的对象上,创造类似图中的高 光区域。 图 2-11聚光照 明 方向性照明则是点光源照明中所存在的一种特殊的形式,如果物体和光源的 19 电子科技大学硕士学位论文 距离不断变大,当这个值超过一定界限后,在光源所构造而成的球状范围内,物 体占据的角度会变得非常非常小,所以,可以采用这样的方法来简化光照的计算, 在这种情形下,来自光源的独立光线们,彼此间可以近似看做处于平行状态,而 当光源距离物体位置为无限大时,又或者物体自身的大小是无限小时,独立的光 线就将会处于平行状态 。如果要举例出常见的平行光线,则在我们的日常生活 [26] 中,太阳光就是这样的一种光。 在计算机图形学中,光是光线本身并没有作用,当它与表面材质进行作用的 时候,才能显现体现出真实感模拟的效果。而关于光线和表面材质进行相互作用 的研究,有非常多的理论基础和相关数学工具,在这里面最重要的则是着色方程, 也称为光照模型[27] 。在计算机图形学的发展过程中,许多的研究者都对光照模型 进行了探索和优化,也因此带来很多的先进理论和算法,可以对光照进行具有相 当真实感的模拟。 在现实生活中,三维对象表面的材质属性各有不同,但它们都能够对光线进 行反应,发生反射和折射等现象。除此之外,对于部分特殊的表面材质,它还可 能会具有自发光现象。为了简化处理流程,在这里先假设表面材质它是非透明的。 这样就得到了一个相对简化的着色方程,如公式(2-1)所示: 反射光强度 =表面自发光强度 +反射方程 (2-1) ×入射光强度 如果在方程上面加上一个限定条件,即假设表面材质不具有自发光现象,那 么,可以得到如公式(2-2)所示的着色方程: 反射光强度 =反射方程 ×入(2-2) 射光强度 观察上面的两个公式,可以看到,入射光的强度,会极大的影响反射光的强 度。而不同的表面材质,也会对最终的结果产生明显影响。另外,在上面的公式 中,有多种形式的反射方程,用于调节光线的入射光的强度,以产生不同物体的 表面效果。 在上面的公式中,考虑到的情况均较为简单,在下面,则进行更深入的研究, 总结更优的着色方程。 假设光线从源头发射出去后,在某一个时刻与空间中的物体发生了碰撞现象, 则在发生碰撞的区域,将会产生光的反射。物体上的产生反射的区域,可以被看 做是一个小平面,假如我们对这个平面的法向量进行计算,这可以得到下面的规 律:当光线沿着与法向量相反的方向进行运动时,可以明显增大光照接受面积, 而更大的面积则意味着更多的能量;当光线与法向量角度增加时,可以发现光照 面积也会随之缩小,这也将使得接收到的能量变小;在极端情况下,当这个角度 20 第二章相关技术介绍 为九十度,也即是垂直时,光照区域将缩小为 0,而同样的光线接收量也降低到了 0。 正因如此,可以简单的说,在物体的表面所接收到的能量,是于光本身的强 度息息相关的,如果用函数进行表示,则该函数中应该包括入射光的强度值,同 时法线和光线间形成的角度也会影响最终结果,因此需要加上它的一个余弦函数。 这个定律被称为余弦定律,因为是兰伯特首次发现的,所以也成为兰伯特定律[28] 。 如图 2-12所示。兰伯特定律被广泛地运用在光照效果计算中的漫反射光线值得计 算中。 图 2-12兰伯特定 律 在上图中,如果法线和光线的夹角超出了 90度,就将得到一个负的余弦值, 这样的计算结果明显不是我们所期望的。所以,如果余弦值是大于 90度的,则应 该直接把光的强度值给设置为零。综上所述,可以得到如下公式(2-3): IO =反射方程 (2-3) × IL cos θ 上面所示的公式(2-3)是一个着色方程,在该方程中考虑到了余弦定律,公 式中的IO代表反射光的强度,IL代表对应的入射光的强度,θ代表光线的方向向量 与对应的法线之间的夹角。在这里,光强度即是代表颜色值,通常都将其编码为 RGB格式。通过这个着色方程,可以提高光照计算效果的准确性,从而提高最终 光照效果渲染的真实性。 21 电子科技大学硕士学位论文 2.7本章小结 本章对论文的技术路线进行了整体的阐述,将整个论文的技术点划分为了三 个部分:三维表面特征融合、法线贴图生成和三维表面实时渲染。针对每一个部 分的关键技术,本章都进行了详细的介绍。针对三维表面特征融合部分,介绍了 特征轮廓提取算法(PPA)和特征轮廓融合算法。针对法线贴图生成部分,介绍了 法线贴图技术。针对三维表现实时渲染部分,介绍了浮雕贴图技术与光照技术和 着色方程。本章通过对这些技术点的介绍整理,为后面的论文展开奠定了明确的 理论基础。 22 第三章系统需求分析 第三章系统需求分析 在本章中,将对系统进行细致的需求分析。根据需求分析的流程,在第一小 节中将首先进行系统核心功能模块的提取;接下来,针对提取出的每一个功能模 块,都将单独用一个小节对齐进行详细的分析和进一步的功能点提取。对于系统 中的次要部分,也即是非本文所重点讨论的部分,将只会在系统需求分析中进行 简单的介绍。 3.1核心功能模块提取 本系统要实现的是基于纹理材质的三维特效合成。系统需要用户提供一张表 示对象表面的凹凸信息的灰度图,一张用户自定义的轮廓图。系统将对这两者进 行融合,并将合成后的效果进行渲染输出。 3.1.1系统输入 系统对于输入信息的要求和处理如下: (1)合法输入 合法输入需包含如下两组内容: ,表示对象表面凹凸信息的灰度图 ,用户自定义轮廓图 针对合法输入,系统应给出正确的渲染输出。 (2)非法输入 非法输入包含以下情况: ,参数数量不匹配 ,输入数据无效 ,输入数据格式错误(非有效图片格式) 针对以上非法输入,系统应给出用户错误提示,引导用户重新完成输入操作。 3.1.2系统输出 针对合法的输入数据,本系统将对其提供正确的三维实时渲染效果作为输出 结果。在关闭程序前,该渲染输出都将持续进行。同时,输出的渲染结果是能够 明显观察到合成痕迹的。该输出具有以下特性: ,合成效果:输出效果应能明显体现对输入数据的合成效果 23 电子科技大学硕士学位论文 ,三维效果:输出效果应具有明显的三维感 ,真实感:输出效果应具有一定的真实感 ,实时性:输出效果应具备实时性(即较高的每秒帧率) 3.1.3系统功能点 在章二的 2.1小节中,讨论了本文实施的技术路线,本文的整体设计也将依据 该技术路线进行分析和展开。根据章二中 2.1小节的技术路线,本系统需要实现以 下三点核心功能: ,合成表面的三维特效,生成合成后的灰度图 ,将表面灰度图转换为法线贴图 ,基于法线贴图进行浮雕贴图渲染,实现三维特效的真实感模拟 基于以上分析,系统将具备三个核心模块:特征融合模块、法线贴图模块和 材质渲染模块。除此之外,系统还应具有交互模块、输入检测模块和底层图形引 擎模块等,这些模块将不在论文中进行详细讨论和解释。在下面,将针对系统的 三个核心功能模块进行进一步的分析。 3.2特征融合模块需求分析 特征融合模块的功能是获取系统中的待合成的两组图像信息,通过特定算法 对它们进行合成,并生成合成后的灰度图。特征融合模块是本文中的关键模块, 体现了本文的主题,也即是三维特效合成。它的实现过程和其余两个模块没有直 接关联,但是其计算结果决定了最终的输出。 3.2.1模块输入 该模块需要如下的输入数据: ,表示对象表面凹凸信息的灰度图 ,用户自定义轮廓图 在特征融合模块中,不需要输入数据的合法性的测试。 3.2.2模块输出 该模块将提供如下输出: ,合成后的灰度图 模块输出的灰度图应具有明显的合成特征,同时具备输入灰度图和输入轮廓 图的特征性质,体现系统的合成功能。模块提供的输出应保证其合法性,否则需 24 第三章系统需求分析 要输出错误信息,并终止程序的进一步运行。 3.2.3模块功能点 该模块包含如下功能点: ,将输入灰度图转化为所需高度信息并存储 ,使用 PPA算法提取轮廓 信息 ,通过轮廓信息进行图像数据的合成 ,将合成后的数据输出为无缝隙的平滑灰度图 模块的功能点应具有独立性,可以单独实现功能。通过各个功能点的协同处 理,模块能够将输入数据转换成正确的输出数据。 3.3法线贴图模块需求分析 法线贴图模块需要对特征融合模块生成的灰度图进行进一步的处理,通过特 定的算法,将输入的灰度图转换为法线贴图并输出。 3.3.1模块输入 该模块需要如下的输入数据: ,表示对象表面凹凸信息的灰度图 在法线贴图模块中,不需要输入数据的合法性的测试。 3.3.2模块输出 该模块将提供如下输出: ,转化后的法线贴图 模块输出的法线贴图应与输入的灰度图在特征上具有一致性,并体现法线贴 图的特质。模块提供的输出应保证其合法性,否则需要输出错误信息,并终止程 序的进一步运行。 3.3.3模块功能点 该模块包含如下功能点: ,提取灰度图中的高度信息 ,通过高度信息计算法线贴图的 RGB通道数据 ,通过计算好的数据生成法线贴图 ,输出法线贴图 25 电子科技大学硕士学位论文 模块的功能点应具有独立性,可以单独实现功能。通过各个功能点的协同处 理,模块能够将输入数据转换成正确的输出数据。 3.4材质渲染模块需求分析 材质渲染模块需要将法线贴图模块生成的法线贴图,应用在特定的三维对象 上,在计算机显示设备进行实时渲染,并体现出对物体表面的凹凸效果的模拟, 同时提供光照等真实感渲染效果。 3.4.1模块输入 该模块需要如下的输入数据: ,存储对象表面法线与高度信息的法线贴图 在法线贴图模块中,不需要输入数据的合法性的测试。 3.4.2模块输出 该模块将提供如下输出: ,三维对象的实时渲染 ,三维对象表面凹凸效果模拟 ,真实感光照效果模拟 模块提供的渲染输出应与输入的法线贴图具有一致的特征,并满足真实感和 实时性等要求。模块提供的输出应保证其合法性,否则需要输出错误信息,并终 止程序的进一步运行。 3.4.3模块功能点 该模块包含如下功能点: ,提取法线贴图中的法线和高度信息 ,使用浮雕贴图算法进行表面颜色计算 ,计算表面光照参数 ,实时输出计算后的表面颜色 ,实时渲染三维对象 模块的功能点应具有独立性,可以单独实现功能。通过各个功能点的协同处 理,模块能够将输入数据转换成正确的输出数据。 26 第三章系统需求分析 3.5本章小结 本章对整体系统的整体功能进行了详细的分析,提取出了其中重要的三个功 能模块:特征融合模块、法线贴图模块和材质渲染模块。针对三个核心功能模块, 本章用了三个小节对其进行了细致的分析,提取出了各个模块的输入输出,以及 核心功能点,为后续的设计和开发提供了坚实的基础。 27 电子科技大学硕士学位论文 第四章系统概要设计 本章将在第三章中系统需求分析的基础上,实现系统整体的结构与流程设计, 并对系统三个核心功能模块进行详细的结构和流程设计,为后续的开发提供清晰 的框架和思路。 4.1系统结构设计 4.1.1系统结构图 系统的结构图如下图 4-1所示: 三维特效合成系统 输入检测 特效合成 底层图形引擎 用户交互 特征融合 法线贴图 材质渲染 图 4-1系统结构 图 由上图可以看到,基于面向对象的思想,系统被划分成了多个大模块,每个 大模块下面又包含了多个小模块。在本论文中,将不会对系统的全部功能进行介 绍,因此,在本章中主要介绍以下三个核心功能模块的设计: ,特征融合模块 ,法线贴图模块 ,材质渲染模块 上述三个模块将按照面向对象的思想进行设计,保证各自功能的独立性,各 个模块将会提供接口供其它模块调用。 28 第四章系统概要设计 4.1.2系统流程图 系统整个运行流程主要分为四步:获取输入、输入检测、特效合成和渲染输 出。在第一步获取输入中,主要通过是用户交互模块读取用户提供的特征灰度图 和自定义轮廓图;在第二步输入检测中,系统将对输入数据进行合法性检测,以 决定是开始特效合成还是输出错误信息;在第三步特效合成中,主要是对输入数 据进行特效合成处理,该步包含了两个核心功能模块的处理过程:特征融合模块 和法线贴图模块;在最后一步的渲染输出中,则是根据前面步骤得到的法线贴图, 在计算机显示设备上实现三维对象的实时渲染,该步包含了材质渲染模块的处理 过程。系统的运行流程如下图 4-2中所示: 获取输入 输入检测 特效合成 特征融合 法线贴图 渲染输出 材质渲染 图 4-2系统流程 图 在上面的流程图中,展示了整体的运行流程,而其中每个模块的具体流程, 将在下面小节中进行分开的介绍。 29 电子科技大学硕士学位论文 4.2特征融合模块设计 4.2.1模块结构图 根据特征融合模块的需求分析,该模块的主要功能点可以分为四部分:特征 数据存储、特征轮廓提取、特征轮廓合成和图像平滑处理。在特征数据存储中, 需要实现一个有效的数据结构,对数据进行提取和存储;在特征轮廓提取中,使 用了简化后的 PPA算法进行图像特征提取,包含了节点提取、节点连接、回路消 除和分支裁剪四步处理过程;在特征轮廓合成中,需要进行特征块与非特征块的 匹配与合成;在最后的图像平滑处理中,需要通过图像分割和接缝去除两步操作, 实现图像的平滑输出。特征融合模块的结构图如下图 4-3中所示: 特征融合模块 特征数据存储 特征轮廓提取 特征轮廓合成 图像平滑处理 回路消除 特征块 非特征块 节点提取 节点连接 分支裁剪 图像分割 接缝去除 匹配合成 匹配合成 图 4-3特征融合模块结构图 特征融合模块作为三维特效合成系统的核心部分,其结构与功能较为复杂, 在下面的实现章节将对此处进行详细的讲解。 4.2.2模块流程图 在特征融合模块中,首先需要对输入的数据进行提取,存储到特定的数据结 构中;接下来,需要通过特征轮廓提取操作,完成节点提取、节点连接、回路消 除和分支裁剪四步,获得输入数据的特征轮廓;之后,将通过前一步提取到的特 征轮廓,进行基于特征轮廓的合成操作,该合成操作包含了特征块的匹配合成与 非特征块的匹配合成两步;最后,在输出结果之前,需要通过图像分割和接缝去 除两步操作,消除掉输出图像中的缝隙和不协调,实现最终输出灰度图的平滑过 渡效果。特征融合模块的流程图如下图 4-4中所示: 30 第四章系统概要设计 特征轮廓合成 特征轮廓提取 图像平滑处理 节点提取 图像分割 特征块 匹配合成 节点连接 特征数据 灰度图输出 提取与存储 回路消除 非特征块 接缝去除 匹配合成 分支裁剪 图 4-4特征融合模块流程图 特征融合模块的主体流程较为清晰,各步之间并不具有太大的耦合性,符合 面向对象的设计思想。 4.3法线贴图模块设计 4.3.1模块结构图 根据法线贴图模块的需求分析,该模块的主要功能点可以分为四部分:输入 数据处理、数据计算与处理、生成法线贴图和输出法线贴图。在模块中,四部分 的功能可以封装为独立的函数进行处理,以体现面向对象的思想。模块的结构图 如下图 4-5中所示: 法线贴图模块 输入数据处理 数据计算与处理 生成法线贴图 输出法线贴图 图 4-5法线贴图模块结构图 相较于特征融合模块,法线贴图模块在结构和功能上相对简单一些,因此结 构图也较为清晰简洁。 4.3.2模块流程图 在法线贴图模块中,首先需要对输入的灰度图中的数据进行提取,接着对提 31 电子科技大学硕士学位论文 取后的数据进行计算和处理,当完成数据处理后,通过处理后的数据生成法线贴 图,最终输出法线贴图。因此,法线贴图模块的运行流程图如下图 4-6中所示: 输入数据提取 数据计算与处理 生成法线贴图 输出法线贴图 图 4-6法线贴图模块流程图 由于功能相对单一,因此法线贴图模块的运行流程图相对较为简单,其各步 之间也是相对独立的,耦合性较低,易于实现与修改。 4.4材质渲染模块设计 4.4.1模块结构图 根据材质渲染模块的需求分析,该模块的主要功能点可以分为五部分:法线 信息提取、浮雕贴图处理、光照效果处理、颜色片段输出和三维对象渲染。其中, 三维对象渲染实际上分为两部分,一部分是三维对象的网格渲染,调用实验室自 主研发的图形引擎进行处理;另一部分则是三维对象表面的颜色渲染,包括前四 个功能点,在 GPU中完成运算和输出。模块的结构图如下图 4-7中所示: 32 第四章系统概要设计 材质渲染模块 三维对象 三维对象 网格渲染 颜色渲染 法线信息提取 浮雕贴图处理 光照效果处理 颜色片段输出 图 4-7材质渲染模块结构图 材质渲染模块是三维图形引擎的组成部分。在这里,主要对论文中涉及到的 材质渲染模块部分进行分析。 4.4.2模块流程图 三维对象 网格渲染 三维对象颜色渲染 法线信息提取 浮雕贴图处理 光照效果处理 颜色片段输出 图 4-8材质渲染模块流程图 由上面的系统结构图可知,整个系统的运行流程分为两大块,即三维对象网 格渲染和三维对象颜色渲染,其中三维对象的颜色渲染又分为四部分,具体的运 行流程如上图 4-8中所示。 在材质渲染模块,首先是通过图形引擎获取显示设备信息,创建绘制区域; 33 电子科技大学硕士学位论文 接下来,则是创建三维对象,调用 GPU每帧进行绘制。在这个流程图中,主要是 描述了 shader程序调用 GPU进行每帧绘制的流程。在 shader程序中,分为顶点着 色器和片段着色器两部分,分别处理三维对象的网格顶点信息和颜色信息。在颜 色处理过程中,又将进行法线信息处理、浮雕贴图处理、光照效果处理和最终的 颜色片段输出。 4.5本章小结 本章在系统需求分析的基础上,对系统中的三个模块进行详细的结构和流程 设计,梳理出了整个系统的核心框架和运行流程。通过本章的系统框架和运行流 程,给后续章节的开发提供了清晰的逻辑思路。 34 第五章系统算法实现 第五章系统算法实现 在前两章对系统的需求分析和概要设计后,本章对系统进行分模块的算法实 现。本章包含了三个核心功能模块的算法实现,包括特征融合模块、法线贴图模 块、材质渲染模块。 5.1特征融合模块算法实现 5.1.1特征数据存储 在特征融合模块中,我们需要对输入的图像进行处理,因此需要记录它们的 数据信息。输入的图像为表示表面高度的灰度图,图中每一个点都有一个对应的 灰度值,也即是高度值。在特征融合模块中,我们需要记录灰度图中每一个点和 它的相邻点之间的高度差值,并记录点之间的路径。因此,我们需要设计一个数 据结构,用于存储这些数据。 观察图 5-1可以看见,图中的每一个点都有八个相邻节点,它们之间可能有路 径,可能没有路径,而每一个路径都有自己的权重(即两点间的高度差),且该路 径是有向的,从点 A到点 B的路径权重和从点 B到点 A的路径权重并不一样,因 此,这是一个有向带权重的图。要对图中的数据进行记录,可以选择邻接表、邻 接矩阵和自定义方法。对于邻接表的存储方法,可以最大限度利用内存空间,但 是无法快速得到相邻两点的权重;使用邻接矩阵的方式进行存储,可以快速得到 相邻两点的权重,但是空间浪费较大。 图 5-1特征节点 图 35 电子科技大学硕士学位论文 在这里,我们设计了一个有向带权重图的数据结构类,在该类中,使用三维 数组进行数据的存储。 从类的构造函数可以看到,该三维数组的前两维大小为图的宽度和高度,也 即是用于表示图中点的 X坐标和 Y坐标。第三维的大小为 8,用于存储从该点到 其周围 8个点的路径权重,从正上方开始按顺时针方向进行排列。在类中,提供 了众多的接口对外调用,如下面 UML图 5-2中所示: 图 5-2数据结构类的 UML图 对于图中每一个点,通过 getEdgeWeight()函数接口都可以迅速获得它在对应 方向上的路径的权重。函数的 3个参数分别为该点的 X坐标、Y坐标和对应点 ID, 各个位置的邻接点 ID值用静态常量进行了定义。要设置路径的权重值,则通过 setEdgeWeight()函数接口实现。 除此之外,通过 hasValidEdge()函数可以快速判断两点之间是否有有效边(无 效边的权重为 0)。通过调用 getDegree()函数可以给出该点的度数,即相邻边的数 量。而 getFirstValidAdjacentId()函数则会返回该点从第一个邻接点开始的第一条有 效边的对应点 ID值,用于下面的遍历运算。为了方便,类中还提供了一个 clone() 函数,用于快速复制该数据结构的副本。 在实现了数据存储结构后,就可以开始进行下一步的特征轮廓提取了。 5.2.2特征轮廓提取 特征轮廓提取的目的是从目标的灰度图中提取出我们所需要的特征轮廓,用 于下一步的特征轮廓合成。在这里,我们将特征轮廓提取分为 5步进行计算,如 36 第五章系统算法实现 图 5-3所 示: 使用简化的PPA算法 进行特征轮廓提取 候选点提取 候选点连接 处理输入灰度图 输出特征轮廓图 回路消除 分支裁剪 图 5-3特征轮廓提取步骤 在最开始,我们首先需要对输入的灰度图进行处理。在这里,我们使用 5.2.1 中所定义的数据结构,利用灰度图对其进行初始化。 由于在特征提取的过程中,每轮都会对图中的边进行裁剪,去除不需要的边, 且整个过程是不可逆的。因此,我们使用了一个二维数组对所有的点进行记录, 一旦该点周围不再有边存在,在接下来的运算中我们就会将该点忽略,以提高处 理速度。接下来,则是通过算法对灰度图中的特征轮廓进行提取。 考虑到本论文中的三维特效模拟是通过纹理材质的方法,对二维平面进行处 理得到三维的效果,不同于地形处理中的三维空间多边形曲面处理方式,因此, 在这里对 PPA算法进行了简化,去除了其中曲线处理的部分,最后保留下四步算 法步骤:候选点提取、候选点连接、回路消除和分支裁剪。下面分别对四步算法 处理过程进行详细说明。 1)候选点提取 在候选点提取这步,需要完成对特征轮廓的粗略提取,在这里,采用基于候 选点处理的方式来进行轮廓提取。算法思路如下: ,从左上角开始,沿光栅扫描路径对每一个点进行判定 ,如果该点判定通过,则将其标记为特征轮廓的候选点 ,如果该点判定未通过,则在算法后续处理中将不再会考虑该点 对于候选点的判定过程如下: ,沿 4条路径对候选点进行判定,如图 5-4中所示, 图中绿色点为当前点 ,在每条方向上,取其左右两侧一定长度内的点,计算它们与当前点的高度 差,如果高度差超过一定阈值,则该点为当前点的特征标记点 37 电子科技大学硕士学位论文 ,只要在任意方向上,当前点两侧均存在特征标记点,则认为当前点为特征 轮廓的候选点 图 5-4候选点提取过程中的判定路径 如下图 5-5中所示,图中的黑色点为判定的当前点,图中左侧点左右两边点灰 度值均比其低(差值大于预定的阈值),故将其判定为候选点;图中右侧点的两边 相邻点,一个比其灰度值大,一个比其灰度值小,则算法判定其不为特征轮廓的 候选点。 图 5-5特征轮廓候选点的判定 2)候选点连接 当完成候选点的提取后,得到的点状图如图 5-6中所示。在算法中,需要得到 的特征轮廓的树状路径图,因此,在这里需要对候选点进行连接,得到连接后的 初步路径图。对于图中的每一条路径,它都是双向的,其权重值为相邻节点的灰 度差值。对于 4个候选点构成的矩形,其内部的两条斜边是相互交叉的,而在算 法中需要提取出的特征轮廓保持路径单一性,因此,在这里需要抛弃掉权重值较 低的路径,保留高权重路径。 38 第五章系统算法实现 图 5-6提取出的候选点图 在下面的图 5-7中展示了路径连接后的点和路径图,图中的虚线部分为被清除 的低权重路径,实线部分为保留的高权重路径。 图 5-7连接后的特征轮廓路径图 3)回路消除 观察上图 5-7中的特征轮廓路径图,可以发现图中存在很多的回路,这与算法 所需要的树状路径图并不符合。因此,在这一步中将进行回路消除的工作。回路 消除是一个循环的过程,在这个过程中不断扫描可能的回路,当得到一条回路后, 通过去除掉回路中重要度最低的路径,来打破这个回路。路径的重要性是有它的 权重值来决定的,权重越高则重要度就越高。 在这里,算法采用深度优先的遍历方式进行环路的扫描。算法处理逻辑如下: ,从图的左上角开始,将所有特征候选点加入遍历点集合中,依次作为初始 点开始路径遍历 ,从初始点出发,遵循深度优先进行路径遍历,并将遍历过的路径记录到容 器中 ,如果遍历中的当前点有多条路径,则按顺时针方向进行路径遍历 ,如果遍历中的当前点没有其余路径,则代表从它出发的边是安全的,不存 在于某一条回路之中,则回到上一层进行搜索,同时在遍历点集合中去除 该点。 39 电子科技大学硕士学位论文 ,如果遍历中的当前点在路径记录容器中出现过,则代表图中出现了回路, 对该段记录中的所有路径进行比较,清除掉最低权重的路径,清空记录容 器,回到初始点重新遍历 ,从初始点出发的路径均遍历完成,则从遍历点集合中选择下一个点作为初 始点 回路消除的结果如图 5-8中所示,其中的虚线边代表被清除的低权重路径。完 成了回路消除之后,就可以得到一个树状的特征路径图。 图 5-8回路消除结果 图 4)分支裁剪 观察上一步中的结果图,虽然已经得到了特征轮廓的树状图,但是树中分支 过于细密,这样对最终的融合判断会产生一定的影响。为了消除这样的影响,在 这里,算法进行了一步分支裁剪,用于清除树状图中的那些重要性较低的细节分 支。 分支裁剪会进行数轮,轮数为候选点提取的路径单边长度/2,在每一轮的分支 裁剪的过程中,都会将所有叶分支的长度减 1,通过这样的操作来简化特征轮廓树 状图的细节。分支裁剪的处理结果如图 5-9中所示,图中的虚线部分为被裁剪掉的 分支。 图 5-9分支裁剪结果 图 至此,整个轮廓提取的工作就结束了,接下来就是通过提取出的轮廓进行特 征轮廓的合成,并输出合成后的灰度图。 40 第五章系统算法实现 5.2.3特征轮廓合成 特征轮廓合成是整个系统中的重要一步。在这一步中,我们从源高度图中通 过提取出的特征轮廓获得特征高度值,然后使用特征高度值,结合用户自定义轮 廓图,合成并输出新的高度图,达到特征融合的目的。在操作的过程中,把高度 图源图分割为多个组成块,通过块的拼接来实现融合。整个融合过程分为两部分: 特征块匹配融合和非特征块匹配融合。 在特征块匹配融合部分,将提取出的特征分为三种:分支节点、终端节点(即 树中的叶节点)和曲线路径。如下图 5-10中所示,5-10 (a)、5-10 (b)和 5-10 (c)分 别代表分支节点、终端节点和曲线路径三种特征的灰度图显示,也即是在输入的 特征灰度图中可以观察到的部分。而 5-10 (d)、5-10 (e)和 5-10 (f)则是分支节点、 终端节点和曲线路径三种特征的节点图显示,也即是在完成了前一步的特征提取 后,生成的特征节点图中,这三种不同特征对应的节点图的特征形状。通过这三 种不同特征的分类处理,可以更加细致地对系统内部情况进行划分,从而更好的 进行特征的合成。 图 5-10特征融合过程中的不同分支 在这里,这些特征是在上一步的特征提取中获得的,它们构成了一个无环图。 论文的算法从图中的节点出发,通过一个广度优先的遍历方式,对整个图进行扫 描,以匹配对应的特征块。算法选择一个分支节点作为根节点,接下来沿从它出 发的每条路径进行扫描,一层层地往外扩散。直到完成整个特征轮廓图的匹配与 融合为止。当完成了特征块的匹配与融合后,算法将进行非特征块的融合。在这 一步中,主要是提取源高度图中未被提取为特征轮廓的部分,放置到生成的高度 图中进行填充,最终完成整个合成过程。整个合成过程如下图 5-11所示: 41 电子科技大学硕士学位论文 图 5-11合成过程 图 在这两步的处理过程中,都采用了类似的特征块匹配算法。首先,一些特征 块被选取出来,作为候选块。接下来,通过比较它们和用户轮廓图中的特征的匹 配程度,以及与已经填充的块的重叠程度,选出其中代价最小的块,放置到输出 的高度图中进行填充。在下面,将对算法进行更加细节的描述。 (1 )特征块匹配融 合 以图 5-11(b)为例,图中共有三个分支节点和五个终端节点,系统对用户的自 定义轮廓图进行分析,从中提取出这样的特征节点,并将它们一个个地列举出来。 同时,系统还将从输入的源高度图中提取特征块,为这些特征节点构造候选块的 列表。接下来,将轮流对分支节点和终端节点进行处理。 分支节点:在分支节点的匹配过程中,首先对节点的度数(即分支数)进行比 较,用于匹配的两个节点的度数必须完全相同。同时,节点分支的延伸角度应该 尽量相似,在角度匹配的过程中,一个度数为 d的节点只有 d个方向需要被考虑。 由于在源高度图中,具有这样特征(相同度数)的分支节点并不会太多,所以分 支节点所对应的候选节点也不会太多,整个匹配过程会非常快。 因为分支的角度不同,为了使一个候选的分支节点能够与目标分支节点相符 合,我们需要对其进行旋转和扭曲,也即是变形处理。首先,对这个候选节点对 应的特征块进行处理,识别其中的控制点{Pi}。这些控制点构成了这个候选节点的 位置信息,对它们进行连接可以构成一个圆圈,如图 5-11(d)中所示,一个度数为 3的分支节点总共有 4个控制点。同样的,源分支节点也有对应的控制点{Pi`},算 42 第五章系统算法实现 法要做的,就是实现一个从 {Pi}到{Pi`}的变形转换。在这里,对候选节点使用 thin-plate-spline(TPS)算法进行变形转换,并得到该候选节点变形转换的代价。 在所有候选节点中,具有最小代价的节点即是我们进一步融合填充所使用的特征 节点块。 终端节点:终端节点的匹配过程,相对于分支节点较为简单直接,因为所有 的终端节点都具有相似的曲线特征:一条从终端节点出发的短路径,可以很容易 地变形对齐。因此,所有的终端节点都可以作为后续融合填充的候选节点,而不 需要进行变形转换。 曲线路径:曲线路径即是上一步特征提取中提取出来的特征点间的连线路径。 对于曲线路径的匹配过程,算反沿着路径进行匹配处理。和分支节点一样,对于 曲线路径,算法需要对候选路径进行变形处理,以使其更加符合用户轮廓图的特 征。对于一条候选路径,它的特征块中总是有三个控制点 P0、P1、P2,如图 5-11(c) 中所示。对应的,在用户轮廓图中的曲线路径上也有三个控制点 P0`、P1`、P2`,我 们要实现控制点间的变形转换。 对于所有的候选特征块,算法通过如下的公式(5-1)对其进行代价进行 评分 售楼处物业服务评分营养不良炎症评分法中国大学排行榜100强国家临床重点专科供应商现场质量稽核 : cost c = αdcd + αgcg + αfcf + ?in=1 αici (5-1) 在公式中,各个算子意义如下: , Cd:对候选特征块使用 TPS算法进行变形转换带来的变形代价。尽 管使 用 TPS算法可以对特征块进行变形转换,但是过大的变形还是有可能会 导致明显的失真。 , Cg:图像分割代价。图像分割代价指出了特征块和已填充的特征块在重叠 区域的匹配程度。图像分割代价的值越高,则最终生成的图像中缝隙将会 更加明显。 , Cf:特征相异性代价。特征相异性代价用于衡量接缝边界处的特征匹配程 度。我们沿着特征路径进行采样,并存储每个采样点的高度值。当路径和 另外一条路径在点 P交汇时,我们将 P点和其最近的相邻点进行高度 插值 运算。 , Ci:其他的一些用户自定义约 束。 在公式中的α值,既是算子的权重系数,同时也担任着对数值进行规范化的 任务。在我们的现有系统中,αd的值为 1000,αg的值为 1,αf的值为 3,更改 这些系数的值将会影响最终生成的效果。在用该公式进行完计算后,将会从所有 的候选块中取总代价最小的特征块填充到输出的高度图中。完成特征块部分的匹 43 电子科技大学硕士学位论文 配融合后效果如图 5-11(e)中所示。 (2 )非特征块匹配融 合 当对提取出的特征轮廓的填充完成后,输出高度图中还有很多的空白部分, 这些部分是属于没有明显的轮廓特征的,但仍然需要对齐进行填充融合。在这里, 算法的处理办法是,选取那些与已填充部分匹配的像素块进行填充融合操作。整 个过程采用“逐步剪切”的方式进行处理,填充的块按照高度间隔降序的排列方 式沿已填充融合部分进行放置。 在这里,算法通过重叠区域的平方和差异来选择 K个候选块,以实现一个高 品质的匹配。在选择过程中,算法结合了 SSD代价运算和图像分割代价运算,具 有最小代价的块将会被放置。整个过程将不停循环进行,直到整个输出高度图中 所有的像素均已被填充。 5.2.4图像平滑处理 直接进行特征轮廓的合成,输出的高度图并不够平滑,其中可能会存在一些 缝隙,因此需要进行图像的平滑处理。在我们的系统中,使用了两种技术来处理 这个问题,通过它们的结合使用,来确保最终输出的合成图中各个组成块之间的 平滑过渡。 (1 )图形分割的最佳接缝查找算法 这里的图形分割算法用于查找块间的重叠区域的接缝,以确定最后合成输出 的图像中保留下的像素点。算法通过解决一个最大流/最小割的问题,最小化分割 过程中高度不匹配的代价,来解决这个问题。图像中的边代表相邻像素点间的连 接,它们的权重则是两端点间的高度差。 这里使用来自 V. Kwatra的“Graphcut textures: Image and video synthesis using graph cuts”中的匹配度测量方法,测量两个像素点间的强度差(即高度差)。如图 5-7中所示,假设Ω为图中 A块和 B块的重叠区域,s和 t为该重叠区域中的一组 相邻像素点的位置,a(s)和 b(s)为对应区域中该点的高程值,则点 s和点 t这两个 M(s, t, A, BC = DE(sC F G(sCD + DE(tC F G(tCD (5-2) 相邻像素点间的匹配程度 M的定义如公式(5-2)所示: 在图 5-12中,两个块间的重叠区域每个像素点都是一个节点,连接两个相邻 点 s和 t的边的权重值被设置为匹配度 M(s,t,A,B)。算法额外使用两个节点 A和 B来表示这两个块。连接Ω区域和 A区域以及连接Ω区域和 B区域的边,将其权 重设置为无穷大,以表示这些点被强制设定为来自特定块。在图 5-7中,像素点 44 1、 2、3来自块 A,而像素点 7、8、9则来自块 B,它们和对应块间的连接边的权重 第五章系统算法实现 均为无穷大。为了决定像素点 4、5、6到底该来自块 A还是块 B,算法需要解决 一个最大流/最小割的问题,来最小化高程值不匹配的代价。图 5-12中的红色线条 代表了最小代价的分割方法(即剪切后重叠区域的高度差别最小)。在进行完分割 之后,像素点 4的值将被设置为块 A中对应的值,而像素点 5和 6则将被设置为 块 B中的对应值。 图 5-12像素点分割 图 在这个最小切H中,图像分割的代价 Cg(5.2.3小节中的公式的算子)被定义 如下面公式(5-3)所示: Cg = ?< , >? M(s, t, A, B) (5-3) s,t?Ω 对于一些块,其中的特定点是必须要保留的,比如一个分支节点的中心点, 可以把一些边的权重值设为无穷大,以解决这个问题。在上文中有提到,这里的 图像分割算法计算出的最佳接缝的代价值,将用于系统的候选块选择过程中,即 5.2.3小节中的计算公式。 (2 )泊松接缝去除算 法 当系统通过图像分割算法将一个块放入输出的合成图像中后,接缝间可能会 出现明显的不连续感。为了进一步提高接缝间的高度平滑程度,这里使用算法对 接缝间进行人为的梯度值高程调整。算法通过一个泊松方程来解决这个问题,就 像 P. P?erez在“Poisson image editing”中解决彩色图像中的像素点匹配一样。 在算法的处理过程中,首先将重叠区域(通常是一个块的 1/3的区域)的高度 值转换为梯度值。接下来,算法将接缝处的梯度值人为地设置为 0。最后,算法使 用一个泊松方程,来确定这些区域中各个像素点的最佳值。经过这样的处理后, 最终的结果就是图像间的连接变的更加的平滑。在当前的系统中,每次放置块的 时候都会进行一次这样的处理。 45 电子科技大学硕士学位论文 图 5-13接缝去除前后对比图 如图 5-13(a)所示,尽管使用了图形分割的最佳接缝查找算法来进行优化,输 出的合成图像中仍然可以看到明显的裂缝。接下来就介绍如何通过泊松方程来解 决这个问题。 假设Ω为块 A和块 B的重叠区域,?Ω为该区域的边界,f为Ω区域的的高 程 值,则 f是定义于Ω区域的一个纯量函数。在处理过程中,首先将Ω区域中的像素 点的高程值转换为梯度向量场G =(u, v),其中u = ?fw ?x,v = ?fw ?y。为了去 除缝隙中的高度差值,沿着缝隙的梯度值被设置为 0。但是进行这样的处理后,得 到的梯度向量场Gz将不再是保守的(Curl(GzC ? 0),它将不再是任何纯量函数的梯 度。因此,在这里我们要引入泊松方法,因为它允许使用非保守的方法来重建合 理的向量场。使用泊松方程处理后的合成图像如图 5-13(b)所示,可以看到,图中 已经不再有明显的缝隙。 5.3法线贴图模块算法实现 在法线贴图模块,主要是对特征融合模块输出的合成后的灰度图进行进一步 的处理,通过读取灰度图中的高程信息,通过算法计算出法线值,然后存储在颜 色通道,输出法线贴图。 在模块中采用二维纹理坐标来查找生成的法线贴图中某一点的值,设图中沿 宽度和高度方向的坐标分别为 S和 T,坐标系中任一点为(i, j),任一点沿 S和 T方 向上的切向量为 S(i, j)和 T(i, j),则该切向量取决于点(i, j)在 S和 T方向上相邻点 的高度差。设在高度图中某一点的高度值为 H(i, j),则我们有如下公式(5-4)和 S(i, jC = < 1, 0, ? [ (i + d, jC F ,(i F d, jC] > (5-4) (5-5): T(i, jC = < 1, 0, ? [ (i, j + dC F ,(i, j F dC] > (5-5) 46 第五章系统算法实现 在公式中,常量 r的大小是用来调节灰度图的高度值大小的,而常量 d则 决定 了计算某一点的法向量值时的采样范围大小,采样范围大小将对输出效果有明显 的影响,如下图 5-14中所示,为采样范围设置为 1时和采样范围设置为 4时的效 果对比: 图 5-14不同采样范围的效果对比 在图 5-14中,左边为采样范围设置为 4的效果,右边为采样范围设置为 1的 效果。经过多次测试,当采样范围设置为 4时效果较理想。 由于 android默认将读取的位图按 32位进行处理,所以在这里需要提 取其中 红色通道的值(绿色和蓝色也一样)。而如果采样范围超出,则直接将切向量的值 而对于某个点的法向量 N(i, j),可以通过对切向量 S(i, j)和 T(i, j)进行叉乘置为 0。 运算 得到,公式如下: S(i,jC×T(i,jC N(i, j) = ‖S(i,jC×T(i,jC‖ = (5-6) ?,s 2+Ht2+1 在公式中,Hs和 Ht分别为 S(i, j)和 T(i, j)的 Z分量,即在上 一步所计算出的 值。由于法向量是个三维变量,可以将其直接存储为数组。 对于计算出的法向量,在这里又加上了一项凹凸系数,用于调节其大小,也 即是最终显示出的凹凸程度。如下图 5-15所示即为不同大小的凹凸系数对最终效 果的影响: 47 电子科技大学硕士学位论文 图 5-15不同的凹凸系数对最终生成效果的影响 对于法向量 N(i, j)的 x、y、z分量,如果采用值范围为 0-1的 RGB的编码格 式进行存储,则有: x+1 y+1 z+1 red = green = blue = (5-7) 2 2 2 此处的 red、green和 blue即为最终生成的法线贴图中的 RGB三 个通道的对应 值。在处理最终值的时候,还需要考虑到可能的数据越界,对其进行规范化的处 理。 当计算完三个颜色通道的值后,创建一张新的32位位图,使用位图的RGB通 道存储三个颜色通道的值,就得到了所需的法线贴图。 5.4材质渲染模块算法实现 在材质渲染模块,用到了浮雕贴图算法来实现凹凸效果。由于算法中涉及到 较多的运算,因此将整个算法的代码部分都使用的 shader进行实现,从而完全在 GPU内完成算法所需要的计算过程,相较于使用 CPU进行运算的处理,GPU处 理可以明显提高整体的运行效率,从而满足系统的实时性需求。在这里,将不会 对 shader中顶点着色器中的顶点变换进行讨论,而是集中于片段着色器中的颜色 片段处理流程,即法线计算、浮雕贴图运算和光照处理。 在整个算法的实现过程中,模块将它划分为五步进行处理,具体如下:向量 48 第五章系统算法实现 修正、线性查找、二分查找、纹理偏移和法向量获取。这五步操作均是在片段着 色器中线性完成的,采用 shader代码进行实现,整个算法的具体执行流程如下图 5-16所示: 图 5-16浮雕算法流程图 在算法开始时,首先获取切空间中的入射光的方向向量,以及切空间中的摄 像机对象的方向向量,然后对它们进行标准化,记为inLightVecTS与inViewVecTS, 同时还需要准备两部分纹理,即表示材质表面的漫反射光的颜色纹理以及浮雕纹 理,分别记为 baseMap和 bumpMap。初始 A点记为 start,即表示从顶点着色器传 过来的纹理坐标,采用如下方式计算观测向量,需要乘以一个系数。 vec3 fvLightDirection =-inViewVecTS.xyz*depthFactor/inViewVecTS.z; 在算法中,我们进行 10次线性查找,进行 5次二分查找,分别记为 linearStep 和 binaryStep,depth的初值为 0.0,bestDepth的初值则为 1.0。delta的值为 1/linearStep,用于表示在线性查找中的高度增量(每次迭代)。在每轮的迭代中, 我们在 depth上将会增加一个迭代增量,然后从纹理中读取出相应的表面高度信 置 bestDepth的值。 息,拿它与 depth进行对比,如果该点是一个位于材质表面内部的点,我们就设 for(i=0;i0.996) if(depth>=t.w) } bestDepth=depth 在完成线性查找之后,就开始进行二分查找。处理二分查找的过程之前,先 要将 depth设置为材质表面内部的值,该值在线性查找中找到。在每次的迭代过程 中,都要将高度增量缩小一半,计算出高度之后和纹理中取出的高度值进行比较, depth的取值则根据比较结果进行设置。 for(i=0;i=t.w) { bestDepth=depth; depth-=2*delta; } depth+=delta; } 在完成二分查找之后,就可以得到摄像机的观测向量与对应材质表面的交点 的高度信息,该值就保存在 bestDepth这个变量中,并通过该变量来计算偏移后的 纹理坐标 uv。 vec2 uv=start+bestDepth*direction; float currentDepth=bestDepth; 在获取了偏移后的纹理坐标后,就能够通过这个纹理坐标来从对应的纹理贴 图中取出我们需要的法线向量的值和漫反射分量颜色值。因为取出的法线向量在 之前是保存在纹理图片的 RGB通道内的,它的取值范围为[-1,1],但是真正的法线 向量所取的取值范围为[0,1],所以还需要它进行修正。 vec3 fvNormal=normalize((texture2D(bumpMap,uv).xyz*2.0) - 1.0 ); 在进行完浮雕贴图处理后,我们还需要再进一步进行光照效果的处理,以提 升渲染效果的真实感。首先我们需要通过法线数据来计算光照中的必要参数 float fNDotL = dot( fvNormal, fvLightDirection ); vec3 fvReflection = normalize( ( ( 2.0 * fvNormal ) * fNDotL ) - fvLightDirection ); vec3 fvViewDirection = normalize( ViewDirection ); float fRDotV = max( 0.0, dot( fvReflection, fvViewDirection ) ); 50 第五章系统算法实现 完成光照参数计算后,接下来就是计算光照的颜色。通过光照参数与基本颜 色的计算,在这里我们计算出了三种基本的光照颜色:环境光、散射光和高光。 vec4 fvBaseColor = texture2D( baseMap, uv); vec4 fvTotalAmbient = fvAmbient * fvBaseColor; vec4 fvTotalDiffuse = fvDiffuse * fNDotL * fvBaseColor; vec4 fvTotalSpecular = fvSpecular * ( pow( fRDotV, fSpecularPower ) ); 在最后,我们结合这些光照颜色,输出最终的颜色片段值。 gl_FragColor = ( fvTotalAmbient + fvTotalDiffuse + fvTotalSpecular ); 5.5本章小结 在本章中,摒弃了系统具体的实现细节,通过算法加代码的形式,对论文中 的三个核心模块的实现进行了详细的描述。在特征融合模块的实现中,介绍了论 文所采取的特征融合算法的具体思路和该算法的部分 JAVA代码实现;在法线贴图 模块中,介绍了法线贴图的生成算法,并展示了该算法主要功能的 JAVA代码实现; 在浮雕贴图模块中,介绍了本文所采用的浮雕贴图算法的详细思路,并用 shader 代码的方式展示了具体的实现。 51 电子科技大学硕士学位论文 第六章系统测试 6.1测试环境及说明 本次测试在数字媒体实验室中完成,为了方便调试,使用电脑上的 Android 模拟器作为测试平台。测试电脑配置如下: 系统:Windows7旗舰版 处理器:Intel Core2 Duo E4500 2.20GHz 内存:2GB 显卡:Nvidia GeForce 8800 GT 6.2效果展示 在本章中,我们使用两组输入进行测试,每组输入包含一张输入的灰度图和 一张用户轮廓图。在下面,将对整个程序运行的三个阶段进行分别的分析,并展 示相应的效果图。 6.2.1灰度图合成 (1)程序输入一 图 6-1程序输入一,(a)为特征灰度图,(b)为用户自定义轮廓图 如图 6-1所示,左侧为特征灰度图,右侧为用户自定义轮廓图。由于用户轮廓 图中使用的是白色进行用户轮廓的标注,而白色在灰度图中代表高值,因此,合 成后的图像中特征部分为高值,表现出的效果即为向上凸起。合成后的灰度图如 下图 6-2中所示: 52 第六章系统测试 图 6-2程序输入一的合成灰度图 (2)程序输入二 图 6-3程序输入二,(a)为特征灰度图,(b)为用户自定义轮廓图 如图 6-3所示,左侧为特征灰度图,右侧为用户自定义轮廓图。由于用户轮廓 图中使用的是黑色进行用户轮廓的标注,而黑色在灰度图中代表低值,因此,合 成后的图像中特征部分为高值,表现出的效果即为向下凹陷。合成后的灰度图如 下图 6-4中所示: 53 电子科技大学硕士学位论文 图 6-2程序输入一的合成灰度图 6.2.2法线贴图生成 在这一部分,我们使用了上一阶段合成后的灰度图,将其转换为了对应的法 线贴图。图 6-5展示了程序输入一生成的法线贴图,从图中可以看到,特征轮廓部 分的颜色非常明显,各个部分颜色层次分明,而且效果非常平滑、清晰。 图 6-5程序输入一生成的法线贴图 而图 6-6展示了程序输入二生成的法线贴图,从图中可以看到,特征轮廓和输 入一中一样非常明显。相较于输入一的法线贴图,由于原始灰度图之间的高度信 息风格相差较大,最终生成的法线贴图也可以看出有明显的不同。 54 第六章系统测试 图 6-6程序输入二生成的法线贴图 6.2.3三维实时渲染 在三维实时渲染阶段,我们采用了基于材质的方法进行表面的凹凸效果模拟, 使用的输入数据为前一阶段生成的法线贴图。在这一阶段,是进行程序最终的渲 染输出,最终显示的效果即为我们的合成效果。 在渲染中,我们使用了圆柱体作为演示的载体,圆柱体的表面则用于显示我 们的三维合成特效,在表面上加载的纹理图片为岩石墙面。从图中可以看到,圆 柱体的表面体现了岩石的质感,而且,在用户自定义轮廓区域还具有强烈的凹凸 感,可以很明显的表现出用户自定义的轮廓,体现了本文的特征轮廓的概念。同 时,在表面还可以看到光照的效果和阴影的效果,体现了本文中所说的真实感渲 染的概念。 图 6-7和图 6-8展示了程序输入一的最终渲染效果。两张图片分别从不同的 角 度进行截取,以体现整体的立体感。在两张方位不同的结果图中,可以看到,由 于光源位置也进行了改变,物体表面的阴影也出现了变化,证明程序中的阴影效 果是实时改变的。 55 电子科技大学硕士学位论文 图 6-7程序输入一的最终渲染效果 图 6-7程序输入一的最终渲染效果(另一个角度) 在程序输入二的渲染过程中,我们使用了立方体作为演示的载体,立方体的 表面则用于显示我们的三维合成特效,选择的颜色纹理图为岩石。可以看到,和 56 第六章系统测试 程序输入一不同的是,输入二的用户自定义特征为凹陷效果,在岩石表面有明显 的“水”字凹痕,符合用户的输入选择。图 6-9展示了程序输入二的最终渲染效果。 图 6-9程序输入二的最终渲染效果 6.3性能测试 在本小节中,将对本文中的程序输入进行实时运行效率测试。测试方法为: 通过内置函数,以日志形式输出各个阶段的运行效率,其中,灰度图合成和法线 贴图生成阶段为该阶段的运行时间,三维实时渲染阶段则为渲染帧数。测试结果 如表 6-1所示: 表 6-1实时运行效率测试 输入 程序输入一 程序输入二 阶段 灰度图合成 1120ms 930ms 法线贴图生成 580ms 383ms 实时渲染 79 fps 77 fps 由上图可以看到,程序在灰度图合成阶段相对较为耗时,但总时间也仅在 1 秒左右,在法线贴图阶段耗时不到 1秒,两个阶段加在一起即为整体加载时间, 57 电子科技大学硕士学位论文 整体加载时间不超过 2秒,属于可以接受的范围。程序运行时帧率维持在 80帧左 右,非常流畅,达到了实时渲染的目的。 6.4本章小结 本章主要针对系统的三个核心功能模块进行了测试,并给出了测试结果的截 图信息。同时,本章还对程序运行性能进行了相应的分析。通过本章可以看到, 本程序实现了论文所提出的核心算法,达到了应有的效果。 58 第七章总结与展望 第七章总结与展望 随着计算机硬件和计算机真实感图形技术在许多领域,社会的快速发展,虚 拟现实技术的要求也越来越高,人们希望计算机虚拟三维效果能提供更加强烈的 真实感体验,并保证效果显示的实时性。基于以上需求,基于纹理材质的三维效 果渲染一直以来都是研究的热点。 论文的研究方向是基于纹理材质实现三维特效合成,致力于解决三维特效合 成的真实性与合成处理与渲染的实时性矛盾。为了解决以上矛盾,本论文采取了 基于纹理材质的方法,在保证了实时性的条件下有效提升了特效合成的效率与真 实感效果。 另外,论文重点研究了基于图像的三维对象轮廓提取与合成算法,法线贴图 技术和浮雕贴图技术。通过轮廓提取算法(PPA)提取三维图像中的对象轮廓,通 过提取的轮廓和用户自定义轮廓图进行效果合成。对于合成后的图像,通过法线 贴图技术将其转换为法线贴图,用于存储对象表面的凹凸信息。最后,使用浮雕 贴图技术,实现三维对象表面凹凸效果的实时渲染和真实感模拟。 论文参考地形合成的相关算法和纹理材质的相关算法,创新性地对它们进行 了提炼和组合,实现了一种全新的基于纹理材质的三维特效合成方法,为计算机 图形学领域的相关研究提供了有效的参考样本,是有一定的现实与研究意义的。 虽然论文实现了目标的三维合成特效,但是目前特效合成编辑器仍不具有通 用性。在未来的开发中,期望能够对编辑器的功能进行更加有效的分割和封装, 实现能够满足用户任意需求的功能强大的特效编辑器。除此之外,论文中相关算 法仍可以进行进一步的优化,以继续提升计算速度,提高渲染的流畅性,并可以 在配置相对较低的机器上高效运行。 59 电子科技大学硕士学位论文 致谢 即将完成三年的研究生学习,离开电子科技大学,开始一段新的生活了,内 心百感交集。在这离别之际,我有许许多多要感谢的人。 首先,在此感谢我的导师张建中老师,来到电子科技大学就读研究生之后, 张建中老师给了我很多的指导和关怀,我非常感激。 此外,我要特别感谢实验室负责人、项目组负责人曹跃老师,是他给了我在 项目组中学习和成长的机会。在刚进教研室学习时,我的基础薄弱,只凭一腔热 情,是曹跃老师帮助我融入了实验室。在实验室中两年多的时间,感谢曹跃老师 对我的悉心指导,让我不仅学到了专业知识,更是学习到了如何分析问题,解决 问题。曹老师是我三年学习生活的一盏明灯,也是我今后工作学习的榜样。 感谢许泉、李文全、李鑫、李珊等师兄师姐,感谢你们对我的耐心帮助,在 实验室中共事的两年中,我从你们的那里学习到了许多,包括对工作的认真负责 和对待知识的严谨。另外,感谢跟我同级的兄弟姐妹们 :郭雨潇、朱少龙、王慧 娟、李瑶、肖燕霞、张雄祥,这两年,我们一起工作学习,在项目中一同成长, 建立起了深厚的友谊,感谢你们让我这三年学习生活如此的多姿多彩。预祝大家 工作顺利,生活幸福~ 最后,我还要感谢把我辛苦养大的父母,还有一直支持我的家人朋友,谢谢 你们对我的鼓励和照顾,正是因为有了你们,才有了今天的我,我一定会努力工 作好好生活来报答你们。 谢谢大家~ 60
本文档为【基于纹理材质的三维特效合成研究与实现&#46;pdf&#46;doc】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_036899
暂无简介~
格式:doc
大小:851KB
软件:Word
页数:94
分类:初中语文
上传时间:2017-11-17
浏览量:14