-
顶点着色器阶段-python实现pdf转换成word/txt纯文本文件下载
资源介绍
5.6 顶点着色器阶段
在完成图元装配后,顶点将被送往顶点着色器(vertex shader)阶段。顶点着色器可以
被看成是一个以顶点作为输入输出数据的函数。每个将要绘制的顶点都会通过顶点着色器
推送至硬件;实际上,我们可以概念性地认为在硬件上执行了如下代码:
for(UINT i = 0; i < numVertices; ++i)
outputVertex[i] = VertexShader(inputVertex[i]);
顶点着色器函数由我们自己编写,但是它会在 GPU 上运行,所以执行速度非常快。
许多效果,比如变换(transformation)、光照(lighting)和置换贴图映射
(displacement mapping)都是由顶点着色器来实现的。记住,在顶点着色器中,我们不仅
可以访问输入的顶点数据,也可以访问在内存中的纹理和其他数据,比如变换矩阵和场景
灯光。
我们将会在本书中看到许多不同的顶点着色器示例;当读完本书时,读者会对顶点着
色器的功能有一个全面的认识。不过,我们的第一个示例会比较简单,只是用顶点着色器
实现顶点变换。在随后的小节中,我们将讲解各种常用的变换算法。
5.6.1 局部空间和世界空间
现在让我们来假设一个情景:你正在参与一部影片的拍摄工作,剧组要为拍摄某些特
殊效果而搭建一个微缩场景。你的具体任务是搭建一座小桥。现在,你不能在场景中搭建
小桥,你必须另选地点,在远离场景的地方建立工作台,制作小桥,以避免弄乱场景中的
其他微缩物品。当小桥建成后,你要按照正确的位置和角度把小桥放到场景中。
3D 美术师在创建 3D 场景时也采用同样的工作方式。他们不在全局场景坐标系(world
space,世界空间)中建立物体,而是在局部坐标系(local space,局部空间)中建立物
体;局部坐标系是最常用的实用坐标系,它的原点接近于物体中心,坐标轴的方向与物体
的方向对齐。在完成 3D 模型的制作之后,美术师会将模型放到全局场景中;通过计算局
107 / 351