GLSL教程GLSLTutorial译文.pdf

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
GLSL教程GLSLTutorial译文

GLSL 教程 (转载于/wangpingfang,希望大家尊重作者,转载注明出处。) (原文译于/tutorials/glsl-tutorial/?normalmatrix 。) (修订与整理:无影随想。请不要用于商业用途。) 介绍 本教程讲授如何使用GLSL 进行着色器编程。着色器是一个热门话题,3D 游戏表明有 效地使用着色器可以取得非凡的效果。本教程的目的就是带领大家走入着色器世界。 虽然有对规范的介绍,但是如果你想了解更多权威的只是,我们推荐你阅读OpenGL2.0 和GLSL 的官方规范。因为理解本教程的某些部分需要OpenGL 编程的知识,所以本教程 假定已经熟悉OpenGL 编程。 GLSL 即GL 着色语言,简称为glslang,由OpenGL 管理机构OpenGL ARB 定义。 本教程不打算比较GLSL 和Cg (Cg 是Nvidia 提议的着色语言,与OpenGL 兼容)。 选择GLSL 而不是Cg 用于本教程的唯一理由是GLSL 与OpenGL 结合更紧密。 在使用任一门语言编写着色器之前,都很有必要了解图形管线的基本知识。这样能够提 供引入着色器的上下文,能够了解哪些类型的着色器是可用的,着色器应该做些什么,还能 够知道着色器不能做什么,这也是同等重要的。 本节结束之后,接着讨论为GLSL 设置OpenGL。我们相当详细地讨论在一个OpenGL 应用程序中,使用着色器的必需步骤。最后向大家展示,一个OpenGL 应用程序如何向着 色器提供程序,才能使其更加灵活和强大。 接着介绍一些基本的概念如数据类型、变量、语句和函数定义。 本教程覆盖了ARB 扩展和OpenGL2.0 版本。覆盖前者是为了获得更大的兼容性,覆 盖后者是因为在不久的将来它将是一个标准。它们俩之间的区别很小,大部分都是函数名和 常量名的细微区别。通过给代码着上不同的颜色可以帮助读者区分他们。ARB 扩展的代码 着以灰色,OpenGL2.0 的代码着以橙色。 两者兼顾(指ARB 扩展和OpenGL2.0)更易于出错,如果你从中发现了错误,那么告 诉我。 记住这只是一个半成品,因此正文和demo 中都有可能存在bug。如果你找到任何的 bug,不管它多么微不足道,请告知我,这样我就能够将它清理掉。当然,也欢迎大家给出 建议。我希望你能够喜欢本教程。 图形管线 一、管线概观 下图是图形管线的一系列处理阶段以及数据在这些处理阶段流动的简化图。虽然非常简 单,但是用于展示着色器编程的一些重要概念足够了。本小节展示了OpenGL 图形管线的 固定功能。注意本管线只是一个抽象,不可能在所有的步骤上都满足任何特定实现。 顶点变换 在这里,顶点是一个属性集合,如它的空间位置、颜色、法线、纹理坐标等等。本阶段 的输入是孤立的顶点属性。由本阶段的固定功能执行的操作有:  顶点位置变换  每个顶点的光照计算  纹理坐标生成和变换 图元装配和光栅化 本阶段的输入为经过变换的顶点和连接信息。后一部分数据(指连接信息)告诉管线, 顶点是如何连接以形成一个图元的。图元的装备是在本阶段完成的。 本阶段还负责视景体裁剪和背面剔除。 光栅化确定片段和图元的像素位置。在这,片段是指一块数据,它将用于更新帧缓冲区 特定位置的一个像素。一个片段不仅包括颜色、还有法线和纹理坐标,以及其他的用于计算 新的像素颜色的属性。 这个阶段的输出有两部分:  帧缓冲区中片段的位置  属性(在顶点转换阶段计算得到)的片段插值 顶点转换阶段计算得到的值和顶点连接信息允许这个阶段计算出片段的相关属性。例如, 每个顶点都有一个变换后的位置。当考虑组成图元的顶点时,我们能够计算该图元片段的位 置。另一个例子就是颜色的使用。如果一个三角形的三个顶点的颜色各不相同,那么三角形 内部的片段颜色可以通过使用三角形顶点到片段的相对距离作为权值,对三角形的顶点颜色 进行插值得到。 片段纹理和着色 本阶段的输入是插值后的片段信息。在前一阶段通过插值计算得到的颜色值,在这一阶 段可以和纹理单元组合在一起。纹理坐标也是在前一阶段经过插值得到的。雾效果在这一阶 段应用。本阶段的最终结果就是每个片段都有一个颜色值和深度值。 光栅操作 本阶段的输入为:

文档评论(0)

liangyuehong + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档