




免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
罗艳(成都东软信息技术职业学院计算机科学系 ,四川 成都 611844)摘要 :三维数据场可视化中的体绘制技术是科学计算可视化领域最重要的一项技术 。由于体绘制技术需要处理的数据量十分庞大 ,生成图像算法又比较复杂 ,常常需要使用高端图形工作站和特殊硬件来实现 。近年来计算 机性能的大幅提高 ,特别是可编程 GPU 的顶点和片段处理器的快速发展 ,为普通 PC 机上实现实时体绘制技术提 供了硬件加速的支持 。介绍了科学计算可视化和可编程 GPU 的概况 ,在普通 PC 机上实现了基于 GPU 的三维纹 理映射的体绘制算法 ,实验表明 ,在不损失图像绘制质量的情况下 ,加快了绘制的速度 。关 键 词 :计算机应用 ;可视化 ;体绘制 ;可编程图形硬件 ;三维纹理中图分类号 : TP391 . 72文献标识码 :A引言1科学计算可视化是指运用计算机图形学和图像处理技术 ,将科学计算过程中或者计算结果的数据转换为直观的图形或图像在屏幕上显示出来 ,并借助于交互技术进行处理的理论 、方法和技术 。涉及计算机图形学 、图像处理 、计算机辅助设计 、计算机视觉及人机交互技术等多个领域1 。科学计算可视化的核心是三维数据场的可视化 ,其方法大致可分为面绘制和直接体绘制2 。面绘制是一种普遍应用的三维显示技术 ,是从体数据中抽取一系列相关表面 ,并用多变形拟合近似后 ,再通过传统的图形学算法显示出来 ,只能表达体数据的轮廓 ,因此造成整体信息的丢失 。而体绘制技术是将三维空间的离散体数据直接转换为二维的图像 ,并不需要生成中间的几何图元 ,绘制结果可以使人们从图像中感受到完整的体数据信息 。由于体绘制技术需要处理的数据量非常大 ,绘制算法也需要大量的计算 ,在普通 PC 机上实现体数据的实时交互处理比较困难 ,所以体绘制技术的发展 ,离不开计算机图形硬件的支持 。特别是近年来发展迅速的面向普通用户的可编程图形处理器 ( GPU , Grap hic Processing U nit) 出现 ,基于 GPU 的各种图形绘制算法的提出 ,可以将图形流水线上的某些处理阶段以及某些图形算法从 CPU 转移到 GPU ,并且增加了图形处理的灵活性 ,大大推动了体绘制技术的发展 。可编程图形硬件2综观计算机图形学的发展进程 ,可以毫不夸张地说 ,计算机图形学的每次重大进展都与图形处理硬件的突破密切相关 ,图形处理的并行性以及可编程功能一直是图形硬件发展所追求的目标 。1999 年 Nvidia 公司推出了 Gefo rce256 图形芯片 ,是第一款集成了硬件 T &L ( Transfo matio n & Lighting ,多边形变换和光照) 功能的图形显示芯片 ,从这款芯片开始 ,Nvidia 开始将图形硬件称为 GPU ,因为原来的“视频控制器 ( V GA co nt roller) ”已经无法概括图形硬件的功能3 。目前图形硬件中的图形处理器的计算能力的增长速度已经超过了中央处理器 ( CPU ) ,主流图形硬件制造商声称 ,现在每隔 6 - 12 个月 GPU 的性能就会增长一倍 。图形处理器技术的迅速发展带来的并不只是处理速度的提高 ,还产生了很多全新的图形硬件技术 ,其中最引人注目的是在图形硬件处理管道的顶点处理和像素处理模块中引入了可编程性 ,使用户可以通过程序方式控制图形流水线的执行 ,极大地扩展了图形处理器的能力和应用范围 。2 . 1可编程图形流水线GPU 和 CPU 的结构类似 ,功能也是以流水线的方式执行 。CPU 是通用处理单元 ,可执行任何应用程序 ,而GPU 针对的是图形领域 ,专门用来处理几何数据 。基本上 GPU 的作用就是依据输入的三维信息绘制帧缓存 ,从接受三维数据到最终绘制在帧缓存上的结果 ,期间所有的处理阶段就叫做图形流水线 ( Grap hics Pipeline) 。传统 的图形硬件流水线以流水的方式处理大量的顶点 、几何图元和片段 ,执行固定的功能 ,成为固定功能的图形流水 线 ,在此基础上增加能够替代原来固定功能模块的可编程模块后 ,得到的图形硬件流水线称为可编程图形流水 线 ,如图 1 所示 。从图 1 中可以看出 , Vertex Shader 和 Fragment Shader 并不 是必须经过的流程 ,图形仍然可以从固定功能的模块中处理并流 向下一个阶段 ,也就是说 ,可编程模块可以取代固定功能的模块 , 也可以不取代 ,这些都是根据用户的编程效果需要来控制 。可编 程图形流水线的优点就是增加了编程的灵活性 ,用户可通过编写自己的 Vertex Shader 和 Fragment Shader 程序实现自己需要的 效果 。顶点着色器处理通过流水线的每个顶点 ,一个顶点着色器是 一段处理顶点数据的小程序 ,它的输入是顶点属性的组合 ,如位 置 (必须有) 、法向量 、颜色 、纹理坐标等 ,或者是其他用于计算每个顶点的用户自定义的值 。顶点着色器在处理过程中不能删除 或者添加顶点 ,而且同时只能处理一个顶点 。片段着色器处理每个流经的片段 ,是负责执行处理片段参数 值的 小 程 序 , 能 够 从 流 水 线 的 纹 理 取 样 器 ( Text ure Sampler图 1 可编程的图形流水线Stage) 存取纹理值 。一个片段是光栅化产生的具有窗口坐标并附带了很多属性的点 ,如插值后的颜色值 ,深度值 ,一个或多个纹理坐标 。片段着色器使用从顶点着色器得到的输入值 ,从纹理取样器读取纹素 ( texels ,text ure samples) 值 ,连同其他参数设置和条件 ,将它们按一定方式合成为最 终的颜色值送入绘制流水线的最后阶段 ,进行相关的测试 ,如模板测试和深度测试等 。2 . 2可编程图形流水线的软件支持在可编程硬件迅速发展的同时 ,其相关的软件开发技术也在不断进步 。目前 GPU 的应用途径主要是通过图形 A P I (Open GL 或者 Direct 3D) 扩充新 GPU 的功能 ,其扩充功能或由 GPU 厂家提供 ,或由 A P I 软件开发者提 供 。利用高级语言而不依赖于具体的 GPU 硬件及计算平台的编程一直是 GPU 应用的努力目标 ,朝此目标在实 时绘制语言方面所作的研究一直在进行之中 ,陆续出现了基于各种编程接口的高级渲染语言 。利用 Open GL 作为软件开发 A P I ,其中的可编程功能实现使用的是 Nvidia 的 Open GL 扩展来实现 。在高级 渲染语言方面 ,选择了 Cg ( C fo r Grap hic) 作为可编程硬件部分的开发语言 。3 基于可编程图形硬件的体绘制技术3 . 1三维纹理映射的体绘制技术传统意义上的直接绘制算法由于绘制时需要对整个三维体数据场进行采样 ,绘制速度很慢 ,一些由软件实现 的直接体绘制方法 ,如光线投射 、足迹法 、剪切2曲变法等 ,在 PC 机上对一般尺寸的体数据集也难以进行实时绘 制 。于是 ,人们求助于硬件 ,利用当今图形硬件的纹理映射功能来进行三维体数据的直接体绘制 ,大大提高了绘 制的速度 。纹理映射技术是指运用计算机图形学的相关知识来模拟景物表面纹理细节的相关技术 。一方面 ,利用纹理 映射技术可以达到模拟景物表面丰富的纹理细节的目的 ,提高计算机生成图形的真实感 ; 另一方面 ,采样纹理映 射的方法可以大大简化建模的过程 。体绘制算法速度快的原因所在4 。三维纹理映射就是将体数据场作为三维纹理 ,映射到一个立方体上 ,计算出体绘制图形 。该方法主要包括 3 个步骤5 ,如图 3所示 。(1) 纹理生成 : 首先将经过预处理的体数据作为三维纹理图 装入纹理内存 ,体数据的中心与物体空间的坐标原点重合 ,其边 分别平行于物体空间的三根坐标轴 。按照转换函数将每个数据 点转换为相应的颜色值及不透明度值 ,然后计算立方体上与视线 方向垂直的几何切片 ,这些切片彼此平行且与视线方向垂直 ,如 图 3 (a) 所示 。(2) 映射定义 :在确定了观察方向后 ,给出被绘制数据场中的图 2 基于纹理映射的体绘制算法流程采样点与纹理空间坐标的映射关系 。由于切片的间隔和采样密度与原始数据不同 ,必须通过硬件的三线性插值重采样获得一系列平行多边形平面上各采样点的数值 ,如图 3 ( b) 所示 。(3) 图像合成 : 通过设置混合函数 , 利 用硬件的混合功能按照从后往前的顺序进 行图像合成 , 形成最终图像 , 如图 3 ( c) 所 示 。算法中 , 第 3 步在纹理空间的重采样 的插值运算及具有不透明度值的图像合成等均由图形硬件来完成 , 从而大大提高了绘制的速度 。以往算法中涉及到的计算量很大的三线性插值和图像合成 , 都要由软图 3 基于三维纹理映射的体绘制实现步骤件一个一个体数据计算来实现 ,重复很多循环 ,所以速度很慢 ,再者 ,如果观察物体的实现方向或者物体本身的位置 、大小改变后 ,又要重新计算 ,循环 ,这也是软件体绘制算法很难达到实时绘制的原因 。3 . 2可编程图形硬件加速体绘制3 . 2 . 1体数据的准备和处理绘制之前要准备好数据 ,文中所用的体数据均来自斯坦福大学的公用数据库 ,这些体数据是原始物体的切片灰度图像 ,要读取二维切片文件时 ,就是根据指定的数据格式读取文件中的有效像素数据 ,并存放到像素矩阵中由于主要是研究实时的三维可视化算法 ,对画质要求不高 ,只是比较算法在使用可编程 GPU 之前和之后的绘制速度的变化 ,所以忽略滤波 、分割 、配准等相关图像处理的部分 。得到的三维体数据表现的是灰度值 ,要对其进行分类 ,以区别数据中所包含的不同物体 ,使用 4 组数据 Syn . img 、Engine . img 、Bent um. img 、Ct . img ,采用体数据分类法中的“阈值法”来分别进行分类 ,绘制出数据灰度分布直方图 ,如图 4 所示 。根据直方图确定被提取组织或区域的灰度下限和上限 ,分类后使用传输函数把各种不同类的物体 ,映射成不同的具有光学特性如颜色 、不透明度 、辐射度以及相关的光学模型参数 。3 . 2 . 2加速体绘制算法利用 GPU 来进行三维纹理的直接体绘制技术 ,将 3 . 1 节三维纹理映射技术的相关部分计算以下述步骤中所述方式分配给 GPU 来完成 ,最后用 Nvidia 公司的 GPU 绘制语言 Cg 实现了绘制过程 ,达到提高绘制速度的目的 。不透明度值 ,生成具有颜色和不透明度的三维纹理数据 ,这个过程会消耗大量的时间和内存 。基于 GPU 的算法在加载体数据后直接将灰度值的体数据作为三维纹理图进行初始化 。图 4 syn ( 64 64 64) 的灰度分布直方图现在把体素着色和透明度设置阶段放入到 GPU 的片段着色器中 ,首先使用转换函数在初始化的时候生成一个一维的转换函数查询表 ,因为所使用的体数据都是用一个字节来表示体素 ,一共有 256 个颜色等级 ,所以将 纹理查找表的长度设置为 256 ,每个灰度等级对应一个 R GBA 值 。该查找表作为一个一维的纹理加载到 CPU 的 内存中 。然后再装载片段程序 ,在片段程序中 ,通过插值求出的纹理坐标用于数据纹理查询 ( 在三维纹理中) ,接 着 ,将插值求出的数据值当作相关的查询的纹理坐标 ,在一维转换函数查找表中查到该点的颜色值和不透明度值 。这种方法只会将插值求出的坐标点的值赋予颜色和不透明度值 ,而不是每个点都进行赋值 ,这样就减少了赋 值的数量 ,加快了绘制速度 。(2) 映射定义 : GPU 的算法中 ,把关于顶点的操作放入到顶点着色器中 ,如 :投影变换 、模型视点变换 、纹理坐标的生成及裁剪面距离的改变 ,因为顶点处理器对于矩阵相乘和向量内积等操作有内置的函数库 ,将函数映射为 一个单独的本地图形指令 ,提高了执行的效率 ,而在 CPU 计算上 ,矩阵相乘要经过多次的乘法和加法 ,还要构造 循环 ,是个计算量很大的操作 。(3) 图像合成 :通过设置混合函数 ,利用硬件的混合功能按照从后向前的顺序进行图像合成3 . 2 . 3 CPU 向 GPU 传递数据在加载三维纹理的时候也初始化了一维的纹理查找表和片段着色程序 ,像素的着色是在 Fragment Shader 中 完成的 ,因此要向 GPU 传递一维的颜色表和三维纹理 。传递数据之后 ,就可以在片段处理器中对片段进行相应 的操作了 。根据采样点的值在颜色查找表中给采样点赋予颜色和不透明度值 。在处理顶点数据时候 ,定义了 3 个变量 ,放大缩小因子 、模型视点矩阵和模型视点投影矩阵 ,将他们传递给顶点处理器来进行相关的顶点操作 。顶点的模型变换 、视点变换和投影变换通过一个矩阵相乘来实现 ,得到在裁剪 空间的顶点位置 ,用于输出 ,还将顶点的纹理坐标传给片段着色器 ,作为纹理取样的参数 。3 . 2 . 4 绘制结果实验平台是 AMD Duro n TM Processo r 1 . 01 GHz CPU ,512MB 内存 ,N V ID IA Ge Fo rce FX 5200 GPU ,Window sXP Professio nal 中文版 。实验中设计了两套代码 ,一套按传统模型进行绘制 ,另一套通过编写 Cg 代码来操纵 GPU 进行绘制 ,除此之 外这两部分代码是一致的 。为了便于观察 ,利用了第三方工具 Frap s 显示每个程序运行过程中所达到的帧数 ,以图 5 三维纹理映射的绘制效果表 1优化前和优化后绘制速度对比数据大小(Byte)优化前绘制速度 ( 帧/ 秒)优化后绘制速度 ( 帧/ 秒)实验数据纹理分辩率加速比Syn . img 64 64 64Engine . img 256 256 128Bent um. img 256 256 256256 . 04 K8M16 M205460141032 . 82 . 5 Ct . i mg 256 256 256 16 M 4 10 2 . 5 条件下 ,绘制出同样效果的体数据图像 ,使用 GPU 加速绘制的速度都是不使用 GPU 加速绘制速度的 2 - 3 倍 ,这充分说明基于可编程图形硬件的实现方式能大大提高图形处理的速度 。结论4使用的两套算法都可以对绘制结果进行一些简单的交互操作 ,如 :放大缩小 、按不同坐标轴旋转 、开始和停止旋转等 ,具有较好的实时性 。所以可以得出结论 ,在普通 PC 硬件的配置上 ,通过利用 GPU 的运算能力和可编程 能力 ,保证了绘制速度 ,基本达到了实时交互的体绘制和显示 。随着性能越来越高的带可编程性 GPU 的高端图形卡的面市 、高级硬件绘制语言的完善 、3D A P I 函数扩展的 丰富和算法的成熟 , GPU 将会在科学计算可视化领域有更加出色的应用 。参考文献 :唐泽圣. 三维数据场可视化 (第一版) M .北京 :清华大学出版社 ,1999 :10 - 30 .123石教英 ,蔡文立. 科学计算可视化算法与系统 (第一版) M .北京 :科学出版社 ,1996 :26 - 32 .Randima Fer nando , Mar k J . Kilgard. 洪伟 ,刘亚妮 ,李骑 ,丁莲珍译 . Cg 教程 可编程实时图形权威指南(第一版) M .北京 :人民邮电出版社 ,2004 :52 - 71 .陈雷霆. 医学图像三维重建技术研究 D .成都 :电子科技大学 ,2006 :27 - 30 .Cullip T J , Neumann U . Accelerating Volume Reco nst ructio n wit h 3D Text ure Mapping Hardware R . Technical Repo rt : TR932027 , U niversity of No rt h Carilina , Chapel Hill N C ,U SA ,1993 :3 - 9 .45GP U2Ba sed Vol ume Ren dering Techn iquesL U O Yan(Depart ment of Co mp uter Science , Chengdu Neusof t Instit ute of Informatio n , Chengdu 611844 ,China)Abstract :Volume rendering in visualizatio n of t hree2dimensio nal data fields is t he mo st impo rtant technique in t hevisualizatio n of scientific co mp uting. As t his technique requires dealing wit h huge amo unt of data , and has a co mparably
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 婚姻破裂后子女抚养及财产分割执行合同
- 离婚协议书申请与婚后财产分割及子女抚养权协议书
- 工业园区租赁合同与物业管理规定差异处理协议
- 离婚子女抚养费支付及子女未来教育基金协议书
- 地方志点校合同7篇
- 教育机构线下校区2025年扩建项目教育行业发展趋势与未来展望研究报告
- 政策引导下的纤维产业标准化-洞察及研究
- 人工智能在软件测试中的伦理责任与管理-洞察及研究
- 企业文化对薪酬感知影响-洞察及研究
- 教师招聘之《幼儿教师招聘》考前冲刺模拟题库及答案详解1套
- JJF(浙) 1200-2023 冷链物流设施设备温湿度参数校准规范
- 2025年中医诊断学试题
- 高二秋季开学第一课班会课件:启航高二把握未来
- 坐席岗位笔试题目及答案
- 2025年吉林省高考物理试卷(含答案解析)
- 2024陆上风电项目造价指标
- 生命教育 课件 .第一章 生命诞生
- 2025年安徽省农业职业技能大赛(水生物病害防治员)备赛试题库(含答案)
- HACCP体系评审表范本
- openEuler系统管理与服务器配置 课件 第8章网络连接
- 《民营经济促进法》解读与案例分析课件
评论
0/150
提交评论