[前言:这是笔者在学习Cg时,阅读nv的Cg Manual时的笔记和总结,主要说明了GPU的编程模型]
在能够编写程序来控制GPU之前,我们使用固定功能管线(fixed function pipeline)来绘制图形,每一步都必须按照规定的操作来执行,虽然各种配置为我们带来了一些灵活性,但是我们还是被预先设定好的固定操作所限制。然而,可编程管线(programmable pipeline)的出现为我们解除了这些束缚,它允许我们实现那些在固定管线中没有定义的技术,同时也可以利用可编程性来剔除固定管线中对应用没有用的功能。下图为Cg的GPU编程模型:
如图所示,我们可以针对两种处理器进行编程:顶点处理器(Vertex Processor)和象素处理器(Fragment Processor)。在它们上编写的程序分别叫做Vertex Shader和Pixel Shader。