Shader - 图形硬件流水线

来源:互联网 发布:人流疏散模拟软件 编辑:程序博客网 时间:2024/04/29 08:12

顶点变换(Vertex Transformation):是图形硬件流水线中第一个处理阶段。顶点变换在每个顶点上执行一系列数学操作。这些操作包括把顶点位置变换到屏幕位置以供光栅器使用为贴图产生纹理坐标、以及决定顶点颜色的光照运算。

图元装配和光栅化( Primitive Assembly and Rasterization)经过变换的顶点数据流按照顺序被送到下一个被称为图元装配和光栅化的阶段。首先,在图元装配阶段根据伴随顶点序列的几何图元分类信息把顶点转配成几何图元。这将产生一系列的三角形,线段和点。这些图元需要经过剪裁到可视平截体( view frustum)(一个三维空间的可见矩形区域)和任何应用程序指定的有效剪裁平面。光栅器还可以根据空间多边形的朝向丢弃一些多边形。这个过程被称为挑选( culling)。
经过剪裁和挑选的多边形必须被光栅化。光栅化是一个决定哪些像素被几何图元覆盖的过程。多边形、线段和点根据每种图元指定的规则分别被光栅化。光栅化的结果是像素位置的集合和片段的集合。当光栅化后,一个图元拥有的顶点数目和产生的片段之间没有任何关系。例如,如果一个由一个顶点组成的三角形可以占据整个屏幕,则需要生成上百万的片段!

术语“片段”是用来描述因光栅化而把每个几何图元(例如三角形)所覆盖的像素分
解成像素大小的片段。一个片段有一个与之关联的像素位置、深度值和经过插值的参数,例如颜色、间色(反射)和一个或多个纹理坐标集。这些不同的插值是得自变换过的顶点,这些顶点组成了某个用来生成片段的几何图元。你可以把片段看成是潜在的像素,如果一个片段通过光栅化测试(光栅化测试将在光栅操作阶段被简单介绍),这个片段将被用于更新帧缓存中得像素。

0 0