OpenGL官方教程——着色器语言概述

OpenGL官方教程——着色器语言概述

可编程图形硬件管线(流水线)

将       Pertransformed Vertices (每一个待转换顶点)
传人  Programmable Vertex Processor (可编程的顶点处理器)
得到      Transformed Vertices (转换的顶点)
将       Transformed Vertices (转换的顶点)
传入  Programmable Geometry Processor (可编程的几何处理器)
得到      Assenbled Polygons,Lines,or Points (组装 多边形、线或点)
进行  Clipping,Rasterization and Interpolation (裁剪,光栅化和插值)
得到      Rasterized Pertransformed Fragments (光栅化待转换的片元[片段])
传入  Programmable Fragment Processor (可编程的片元处理器)
得到      Transformed Ftagment (转换的片元)
进行  Raster Operations   (光栅运算)
进行      Pixel Update    (像素更新)
传入  Frame Buffer    (帧缓冲区)

可编程顶点处理器

顶点处理器是一个可编程的单元,该单元对传入的顶点属性,如位置、颜色、纹理坐标等进行操作。顶点处理器的目的是执行传统的图形操作,如顶点变换,法线变换/归一化,纹理坐标的生成,和纹理坐标变换。

顶点处理器只有一个顶点作为输入,只写一个顶点作为输出。顶点的拓扑信息是不可用的。

可编程几何处理器

几何处理器允许访问几何形状(线、三角形、四边形等),它甚至可以创建新的几何形状。然而,几何着色器并不是OpenGL着色器语言规范的一部分。这是一个多厂商的扩展(multivendor extension),目前可用的(开发商)显卡是NVIDIA GeForce 8系列显卡。因为这是OpenGL着色器语言中非常重要的一个扩展,所以在这个教程提到它。(如果你不想或不能使用几何着色器,简单的忽略它,使用固定功能管线来做)

可编程片元处理器

片元(片段)处理器的目的是用于执行一些传统的图形操作。例如计算插值、纹理访问、纹理应用、雾化、颜色求和等。

语言

OpenGL着色器语言有点类似于C语言。顶点着色器、几何着色器和片元(片段)着色器都必须有一个入口函数"void main()"

我可以在这里写一个完整的语言规范,但我认为,更好的方法是看学习示例。在下一节中介绍了一个简单的着色源代码。每一段都有一个简单的源代码下载。下载那些例子和修改它是学习GLSL的一个很好的方式,你自己进行实践!

你也应该下载官方GLSL语言规范。你可以点击这里获取(在”Miscellaneous Documents”下面)。

posted @ 2016-01-26 09:47  乌合之众  阅读(3676)  评论(0编辑  收藏  举报
clear