首先是因为顾老师的文笔流畅,像讲故事一样将 GPU 的发展史娓娓道来,其中很多以当时的热门游戏为例,喜欢游戏的同学千万不要错过;其次是因为顾老师的这一系列文章涉猎广泛,真可谓是“大百科全书”,从图形渲染到通用计算,从架构演进到 A & N 纷争,从计算核心到通信总线,无所不谈,无所不包;最后,感觉其中很多话题有推测演绎成分,难免存在疏漏甚至谬误,这一点顾老师在系列前言中也已说明。如果你喜欢探究 GPU 的底层原理,相信这些文章可以以给你启迪和共鸣。
草蛇灰线,浮脉千里,一饮一啄,莫非前定。NVIDIA 当前在 AI 生态的统治地位早在二十年前就埋下了伏笔[1] 。看完顾杰老师的这个系列文章,相信你也能找到其中的脉络和线索。这里把顾老师的原文转载如下,作为学习笔记,也希望能给需要的同学提供更好的阅读体验。
完成多边形的构成之后,我们就来到了整个步骤的灵魂——顶点的操作了。我们前面说过了,香草面部表情的细节,比如说挑逗的眉毛,微微微翘起的眼角,或者下垂的双颊以及撅起的小嘴,为每一帧画面的不同表情乃至不同外形去规定以及生成一套新的模型显然是非常不划算的事情。以上这些要求其实都可以通过对对应位置的顶点进行操作,“扯动”多边形形状来完成。因此程序员会事先创造出香草的表情,然后通过方程规定好这些表情中特定顶点的位置,而几何单元所要做的,就是在保证其他绝大部分顶点和模型位置不变的前提下,根据方程的规定将这些顶点操作到合适的位置,这不仅可以大幅降低 CPU 生成顶点的次数和数量,更可以非常灵活自由的实现程序员想要的外形效果。因此顶点操作这一步,可以说是整个背黑锅过程最根本的核心。
作为图形流水线的第一部分,几何单元承担着沟通数学与显示空间,将抽象方程具体化的第一步任务。几何单元的意义是无可替代的,它让三维图形学拥有了真正的 3D 的意义,它让一个又一个的香草和劳拉,或者小兵啊城堡啊车马炮啊,甚至是银河战舰或者星球什么的,从数学的孤芳自赏中走了出来,变成了一个个生动的实在的物体景象。几何单元,是向常人展示显示艺术的数学之美的先行者。
香草的活泼可爱全拜几何单元所赐
几何单元的发展是迅速的,正如 NVIDIA 的 Evan Hart 所说,没有几何体,像素、光照、阴影什么的都没有任何意义。几何是 3D 图形的基础,对几何精度的提升对图形质量的贡献远比其他层面的提升都更加明显。我们甚至可以说几何单元就是现代 3D 显示技术。
模型和实际效果的关系
然而,在图形流水线过程中,真正的具备 3 维空间意义的处理过程,却只有几何单元一处而已,当几何单元处理过图形数据之后,后续的所有步骤将全部在 2 维空间中进行,再也没有实在对应空间的 3D 坐标了,甚至这个过程的执行场所,都不能说已经脱离了几何单元。我们看到的所谓 3D 图形效果的处理,其实几乎都是在 2 维空间中完成的。