|
举个例子,fps游戏移动鼠标或者通过键盘移动主角视点,其实都是场景的坐标系的变换,这种变换通过场景内每个三角形的每个顶点与一个或多个转换矩阵相乘来完成,这里,CPU的工作就是获取用户鼠标键盘输入,按一定的规则生成转换矩阵并把矩阵传递给gpu,gpu就是把所有顶点与这些矩阵相乘完成坐标系变换。
绝大部分时间,CPU的工作就是按某些规则生成转换矩阵,同样,gpu的工作就是把顶点与这些矩阵相乘完成转换。这里,gpu所做的工作就是我们常挂嘴边的T&L里的T=Transform。
在没有hwt&l的年代,这项Transform工作由cpu完成,在fixed function pipeline hwt&l的年代(dx7)这项工作开始转移到gpu上,自dx8以来,这个Transform过程可由程序员定制,也就是所谓的programmable pipeline,程序员通过编写一段在gpu上运行的代码来定制Transform过程,这段代码被称为vertex shader |
|