- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(几何着色器例子
一、什么是几何着色器(GS:Geometry Shader)
Input Assembler(IA)从顶点缓冲区上的输入流中接收顶点数据,并且把数据项转换为规范的格式。vertex shader通常用来把顶点从模型空间变换到平面空间,vertex shader读取一个顶点,输出一个顶点。Pixel Shader读取单一pixel属性,输出包含颜色和Z信息的的片断。而geometry shader是DirectX10提出的,把同一区域的所有顶点作为输入,产生新的顶点或者区域。此外数据流输出(steam output)把geometry shader输出的顶点信息复制为4个连续的输出缓冲子集。理论上来说,steam output的输出能力和Input Assembler的输入能力相匹配。Shader就是一段可以改变像素、顶点和几何学特征的小程序。Vertex Shader是专门处理多边形顶点的。那么Geometry shader就是专门用来处理场景中的几何图形。在过去Vertex Shader每一次运行只能处理一个顶点的数据,并且每次只能输出一个顶点的结果。在整个游戏场景中,绘制的几何图形的任务量非常庞大,如果仅仅依靠Vertex Shader单一来完成,效率会极其低下。现在DX10的设计师们在顶点与像素的处理过程中又加入了(Geometry shader)几何着色器。它可以根据顶点的信息来批量处理几何图形,对Vertex附近的数据进行函数处理,快速创造出新的多边形。通过stream out将这些结果传递给其他Shader或buffer,将CPU从复杂庞大的几何运算中解放出来。大爆炸,粒子效果,瀑布流水等复杂又关联的场景都可以用Geometry shader很逼真的表现出来。
图一是渲染管线示意图。
图一 渲染管线示意图
GS位于VS与PS之间,可以完成许多模型层面上的工作诸如LOD。以往这些工作都是在CPU上完成的,占用了宝贵的CPU循环 —— CPU可是很繁忙的东西,游戏逻辑、音乐、输入接受都是靠它,却无法提高多少性能,CPU的并行计算性能是远远无法和GPU相比的。
二、几何着色器功能简介
GS被设计针对每个图元执行一次。它能够访问图元的所有顶点,以及与其相关的输入变量的值。换句话说,如果前一阶段提供了某一个输出变量,那么GS就可以访问图元中所有顶点的那个变量的值。因此,GS中的输入变量都是数组类型。
需要注意的是,GS所接受的图元和以前的不同,它只接受“可调整的”图元。
可调整的图元(Adjacency Primitive)
在OpenGL中,我们定义了新的图元类型:
GL_LINES_ADJACENCY_EXT?GL_LINE_STRIP_ADJACENCY_EXT?GL_TRIANGLES_ADJACENCY_EXT?GL_TRIANGLE_STRIP_ADJECENCY_EXT
我们可以在glBegin()、glDrawElements()中将他们作为新的参数使用。下面分别说明这4中类型的特点。
4*N个顶点被提供,N是要绘制的线段的数目。线段在#1个#2之间绘制,#0和#3提供调整信息。
(2)Line Strip with Adjacency
顶点数目是N+3,N是要绘制的线段的数目。线段在#1、#2、。。。、#N+1之间绘制,#0和#N+2提供调整信息。
(3)Triangles with Adjacency
顶点数目是6*N,组成三角形的是#0、#2、#4.而#1、#3、#5定义了修正三角形。
(4)Triangle Strip with Adjacency
顶点数目是2N+4.#0、#2、。。。定义三角形序列。其他的定义调整三角形。
在着色器链接之前,必须调用glProgramParameter进行相应的设置。
(1)设置GS可以输出的最大顶点数目
glProgramParameteriEXT( progname, GL_GEOMETRY_VERTICES_OUT_EXT, int value )
(2)设置GS接收的图元的类型
glProgramParameteriEXT( progname, GL_GEOMETRY_INPUT_TYPE_EXT, int value )
需要注意的是,GS的输出图元的类型必须和输入图元的类型匹配。
value的可能取值是:
A、GL_POINTS
B、GL_LINES
对应的输入图元类型可以是:GL_LINES、GL_LINE_STRIP、GL_LINE_LOOP
C、GL_LINES_ADJACENCY_EXT
对应的输入图元类型可以是:GL_LINES_ADJACENCY_EXT、GL_LINES_STRIP_ADJACENCY_
您可能关注的文档
- (农村能源工作总结.doc
- (课程表设计2.ppt
- (农村贫困地区家庭幼儿照料对女性非农就业的影响.docx
- 300MW汽轮发电机运行与维护.doc
- (农村集体三资管理定稿.doc
- (农村金融生态环境与城乡统筹发展王建新2.doc
- 303UPS介绍(运行三班8月份科技论文).doc
- 303数学三.doc
- 307磨合及驾驶.doc
- (农村集体经济.doc
- 金融产品2024年投资策略报告:积极适应市场风格,行为金融+机器学习新发现.pdf
- 交运物流2024年度投资策略:转型十字路,峰回路又转(2023120317).pdf
- 建材行业2024年投资策略报告:板块持续磨底,重点关注需求侧复苏.pdf
- 宏观2024年投资策略报告:复苏之路.pdf
- 光储氢2024年投资策略报告:复苏在春季,需求的非线性增长曙光初现.pdf
- 公用环保2024年投资策略报告:电改持续推进,火电盈利稳定性有望进一步提升.pdf
- 房地产2024年投资策略报告:聚焦三大工程,静待需求修复.pdf
- 保险2024年投资策略报告:资产负债匹配穿越利率周期.pdf
- 政策研究2024年宏观政策与经济形势展望:共识与分歧.pdf
- 有色金属行业2024年投资策略报告:新旧需求共振&工业原料受限,构筑有色大海星辰.pdf
文档评论(0)