正文

OpenGL 简 介(5)

精通C#游戏编程 作者:(英)斯库勒


 

固定功能流水线包含6个主要的阶段。这些阶段几乎都可以并行应用。如果硬件支持的话,每个顶点可以同时经过同一个阶段。由于这个原因,图形卡的处理速度比CPU的处理速度要快得多。

● 输入阶段。输入以顶点的形式给出,顶点的属性包括位置、颜色和纹理数据。

● 变换和光照。根据当前视图变换顶点。这包括将顶点的位置由3D空间(也叫做世界空间)改为2D空间(也叫做屏幕空间)。如果有些顶点对最终的显示没有影响,可以在这个阶段移除它们。在这个阶段也可以对每个顶点执行光照计算。

● 创建图元。这是使用顶点信息创建多边形的过程,需要根据OpenGL的状态把顶点连接到一起。游戏经常使用三角形或者三角带作为图元。

● 光栅化。这是将多边形转换为像素(也叫做片段)的过程。

● 像素处理。像素处理也叫做片段处理。这个阶段将测试像素,以确定是否把它们绘制到帧缓冲区中。

● 帧缓冲区。帧缓冲区是一块内存,代表特定的帧将显示在屏幕上的部分。混合设置将决定像素如何与已经绘制的部分进行混合。

在过去的几年中,已经可以使用程序控制流水线了。将程序上传到图形卡以后,它们将替换固定功能流水线的默认阶段。重写流水线的特定部分的小程序叫做着色器(shader)。

图2-4显示了可编程流水线的阶段。这里删除了变换和光照阶段,添加了顶点和几何着色器。像素处理阶段也可以像像素着色器那样进行编程。通过流水线的每个像素都会被应用像素着色器。像素着色器不能添加顶点,但是可以修改位置、颜色和纹理位置等属性。


上一章目录下一章

Copyright © 读书网 www.dushu.com 2005-2020, All Rights Reserved.
鄂ICP备15019699号 鄂公网安备 42010302001612号