GLSL教程 图形管线 顶点处理器

来源:互联网 发布:河南公务员网络培训 编辑:程序博客网 时间:2024/05/22 14:49

顶点处理器负责运行顶点着色器。顶点着色器的输入为顶点数据,也就是它的位置、颜色和法线等,这取决于OpenGL应用程序的发送。

下面的OpenGL代码为每个顶点向顶点处理器发送了一个颜色和一个顶点位置信息。


在一个顶点着色器中,你可以编写代码用于完成如下任务:

  • 使用模型视图和投影矩阵进行顶点位置变换
  • 法线变换,如果需要,还有法线的标准化
  • 纹理坐标生成和变换
  • 每个顶点的光照或为每个像素计算光照值
  • 颜色计算

并没有要求你的着色器执行上面的所有操作,例如你的应用程序可能不使用光照。尽管如此,一旦你编写了一个顶点着色器并且用于替换顶点处理器的全部功能,那么你就不能执行法线变换,不能期望固定功能执行纹理坐标生成。当使用顶点着色器后,那么它负责管线中本阶段的所有功能。

在前一小节,我们了解到顶点处理器并没有关于顶点的连接信息,因为需要拓扑信息的操作不能在顶点着色器中进行。例如顶点着色器不可能执行背面剔除操作,因为顶点处理器处理的是顶点而不是面。顶点处理器孤立地处理每个顶点,处理每个顶点时,并不需要其他顶点的信息。

顶点着色器至少负责写一个变量:gl_Position,通常是使用模型视图和投影矩阵变换顶点。

顶点着色器能够访问OpenGL状态,因此它能够执行光照,使用材料等操作。它还能够访问纹理(只在最新的硬件上可用)。但是它不能够访问帧缓冲区。

———————————————————————————————————————————————————————————————

本文英文原文为《GLSL Tutorial – Vertex Processor 》 。

如果文中有一些地方翻译得不符合您的阅读习惯,您可以选择直接阅读英文原文,或者把您的翻译建议发给我,我一定会认真对待您的建议。

原创粉丝点击