- 3
- 0
- 约8.99千字
- 约 16页
- 2021-12-06 发布于天津
- 举报
PAGE 1
PAGE 1
可编程图形硬件的体绘制技术
三维数据场可视化中的体绘制技术是科学计算可视化领域最重要的一项技术。由于体绘制技术需要处理的数据量非常浩大,生成图像算法又比较复杂,常常需要使用高端图形工作站和特别硬件来实现。近年来计算机性能的大幅提高,特殊是可编程GPU的顶点和片段处理器的快速发展,为平凡PC机上实现实时体绘制技术供应了硬件加速的支持。介绍了科学计算可视化和可编程GPU的概况,在平凡PC机上实现了基于GPU的三维纹理映射的体绘制算法,试验表明,在不损失图像绘制质量的状况下,加快了绘制的速度。 引言 科学计算可视化是指运用计算机图形学和图像处理技术,将科学计算过程中或者计算结果的数据转换为直观的图形或图像在屏幕上显示出来,并借助于交互技术进行处理的理论、方法和技术。涉及计算机图形学、图像处理、计算机辅助设计、计算机视觉及人机交互技术等多个领域。 科学计算可视化的核心是三维数据场的可视化,其方法大致可分为面绘制和直接体绘制。面绘制是一种普遍应用的三维显示技术,是从体数据中抽取一系列相关表面,并用多变形拟合近似后,再通过传统的图形学算法显示出来,只能表达体数据的轮廓,因此造成整体信息的丢失。而体绘制技术是将三维空间的离散体数据直接转换为二维的图像,并不需要生成中间的几何图元,绘制结果可以使人们从图像中感受到完整的体数据信息。 由于体绘制技术需要处理的数据量特别大,绘制算法也需要大量的计算,在平凡PC机上实现体数据的实时交互处理比较困难,所以体绘制技术的发展,离不开计算机图形硬件的支持。特殊是近年来发展快速的面向平凡用户的可编程图形处理器(GPU,GraphicProcessingUnit)出现,基于GPU的各种图形绘制算法的提出,可以将图形流水线上的某些处理阶段以及某些图形算法从CPU转移到GPU,并且增加了图形处理的敏捷性,大大推动了体绘制技术的发展。 一、可编程图形硬件 综观计算机图形学的发展进程,可以毫不夸张地说,计算机图形学的每次重大进展都与图形处理硬件的突破亲密相关,图形处理的并行性以及可编程功能一直是图形硬件发展所追求的目标。 1999年Nvidia公司推出了Geforce256图形芯片,是第一款集成了硬件TL(TransfomationLighting,多边形变换和光照)功能的图形显示芯片,从这款芯片开始,Nvidia开始将图形硬件称为GPU,因为原来的“视频掌握器(VGAcontroller)”已经无法概括图形硬件的功能。目前图形硬件中的图形处理器的计算能力的增长速度已经超过了中央处理器(CPU),主流图形硬件制造商声称,现在每隔6—12个月GPU的性能就会增长一倍。图形处理器技术的快速发展带来的并不只是处理速度的提高,还产生了许多全新的图形硬件技术,其中最引人注目的是在图形硬件处理管道的顶点处理和像素处理模块中引入了可编程性,使用户可以通过程序方式掌握图形流水线的执行,极大地扩展了图形处理器的能力和应用范围。 1.1可编程图形流水线 GPU和CPU的结构类似,功能也是以流水线的方式执行。CPU是通用处理单元,可执行任何应用程序,而GPU针对的是图形领域,特地用来处理几何数据。基本上GPU的作用就是依据输入的三维信息绘制帧缓存,从接受三维数据到最终绘制在帧缓存上的结果,期间全部的处理阶段就叫做图形流水线(GraphicsPipeline)。传统的图形硬件流水线以流水的方式处理大量的顶点、几何图元和片段,执行固定的功能,成为固定功能的图形流水线,在此基础上增加能够替代原来固定功能模块的可编程模块后,得到的图形硬件流水线称为可编程图形流水线,如图1所示。 图1:可编程的图形流水线 从图1中可以看出,VertexShader和FragmentShader并不是必需经过的流程,图形仍旧可以从固定功能的模块中处理并流向下一个阶段,也就是说,可编程模块可以取代固定功能的模块,也可以不取代,这些都是依据用户的编程效果需要来掌握。可编程图形流水线的优点就是增加了编程的敏捷性,用户可通过编写自己的VertexShader和FragmentShader程序实现自己需要的效果。 顶点着色器处理通过流水线的每个顶点,一个顶点着色器是一段处理顶点数据的小程序,它的输入是顶点属性的组合,如位置(必需有)、法向量、颜色、纹理坐标等,或者是其他用于计算每个顶点的用户自定义的值。顶点着色器在处理过程中不能删除或者添加顶点,而且同时只能处理一个顶点。 片段着色器处理每个流经的片段,是负责执行处理片段参数值的小程序,能够从流水线的纹理取样器(TextufaSamplerStage
原创力文档

文档评论(0)