- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编程技术在图形上的应用
硬件技术比较
近年来,计算机图形处理器(gpu)得到了广泛应用,高级渲染器(vatixshdm)用于计算三角形顶部的几何变换和光度计,片源渲染器(framtsea或cm)用于绘制图像,并具有三维纹理映射功能。人们开始求助于硬件, 利用硬件的功能来实现体绘制过程中的某些环节, 从而大大提高了绘制速度, 使得实时绘制成为可能。例如, NVIDIA公司的Ge Force系列和ATI公司的Radeon系列图形显示芯片不仅提供灵活的光栅化硬件, 而且还具备可编程能力, 能较好地支持多纹理、单像素光照运算、纹理获取等先进的绘制技术, 图形硬件的可编程能力使得用户可以根据自己的要求为硬件定制较为复杂的渲染程序, 产生逼真的复杂的图像效果。以往在图形工作站上实现的许多体绘制方法经过改进后可以由后期的标准PC图形硬件来实现, 不但可以获得较高的绘制速度和性能, 而且硬件成本也大大降低, 应用标准PC机作为可视化平台已表现出明显的趋势。
1 功能图形视频信号
流水线是指按固定次序并行执行的一系列处理阶段, 每一阶段从上一步获得输入并将结果输出到下一步。GPU和CPU的结构类似, 因此它的功能也是以流水线的方式执行。当然CPU是通用处理单元, 可执行任何应用程序, 而GPU针对的是图形领域, 专门用来处理几何数据并最终生成可在显示器上显示的二维像素信息。其间所有的处理阶段称为图形流水线 (Graphics Pipeline) 。
传统的图形流水线执行固定的功能, 被称为固定功能的图形流水线。在此基础上增加能够替代原来的固定功能模块的可编程模块, 因此称之为可编程的图形流水线。
1.1 光照计算和图元装配
图1所示即为固定功能的图形流水线。下面将简要介绍各操作的功能。
整个操作的流程由在CPU上运行的应用程序发起, 由它向GPU提供顶点数据, 即该顶点的三维空间坐标。
在顶点变换阶段, 对每个顶点的空间坐标进行“模型视点变换”, 转换至“视点坐标”。与此同时, 根据变换后的顶点坐标、光照模型等信息进行光照计算。然后, 把视点坐标和光照计算得到的颜色结果传递给图元装配操作。
在图元装配阶段, 首先将变换后的顶点根据它们的连接信息重新组合成图元 (一组点、直线或多边形) ;然后对这些图元进行“投影变换”, 使之产生距离感;其次执行裁剪操作, 在视景体以外的物体将被裁剪掉, 这样在最终的场景中讲不绘制它们;然后执行投影除法, 生成归一化的设备坐标;最后, 应用视口变换, 将顶点的坐标转换为“窗口坐标”。这个阶段的处理结果是完整的几何图元:变换和裁剪后的顶点以及相关的颜色、深度、纹理坐标值等信息。
在光栅化阶段, 将转换几何图元为片元, 每个片元都对应于帧缓存中的一个像素。这个阶段将对几何图元的顶点属性进行插值, 从而确定每个片元的属性 (即颜色和深度值) 。
在片元操作阶段, 片元经过纹理映射、雾效计算、裁剪测试、alpha测试、模板测试、深度测试等处理, 得到每个片元的最终颜色和深度值, 最后将片元作为像素写入帧缓存。
1.2 要点程序和片元程序
当今图形硬件设计上的趋势就是在图形处理器内提供更多的可编程性。如图2所示, 与固定功能的图形流水线不同的是, “顶点程序”取代了原有的“固定功能的顶点变换和光照计算”, “片元程序”取代了原有的“固定功能片元操作”。由此可见, 在如今的设计中, 顶点和片段的处理被分离成了可编程的单元。开发人员可以通过自己编写顶点程序和片元程序来控制相应数据的处理。在GPU中, 这些程序将分别由顶点处理器和片元处理器来执行。
1.2.1 顶顶控制器设计
顶点处理器的处理流程如图3所示, 从载入每个顶点的属性开始, 这些属性包括顶点的位置、颜色、纹理坐标等。然后顶点处理器重复取出顶点程序中的下一条指令, 并执行它, 直到顶点程序结束。在顶点程序的指令中, 可以存取几个寄存器集合。例如输入寄存器是只读的, 包含了应用程序指定的顶点属性集。临时寄存器是可读写的, 被用作计算中间结果。输出寄存器只支持写操作, 被用作保存变换后的顶点数据, 在顶点处理结束, 经过图元装配和光栅化的操作后, 这些输出寄存器的值会经由插值计算传递给片元处理器。
顶点处理器提供了对二维、三维或四维浮点数向量操作的支持。随着图形处理器硬件的发展, 顶点处理器还将不断增加支持的指令数以及寄存器的个数, 另外, 分支、循环等流控制语句也会在最新的顶点处理器中得到实现。
1.2.2 输出设备输出储存
和顶点处理器类似的是, 片元处理器从输入寄存器得到输入数据, 然后执行一系列的片元指令, 其中可以存取一些临时寄存器和常量寄存器, 最后将结果存入输出寄存器。
但是, 片元处理器有几处不同于顶点处理器:
1) 片元处理器的输入寄存器包含了从几何图
原创力文档


文档评论(0)