7.2 uniform

文章内容源自《GPU编程与CG语言之阳春白雪下里巴人》,因笔者读书易中途放弃,遂每读一章节,将其移至平台,以此作为对自己读书的勉励。笔者用粗体斜体 标注了关键词句,望感兴趣的读者们一起学习共勉。猛戳这里查看更多!

7.2 uniform

Cg 语言将输入数据流分为两类(参见文献[3]Program inputs and Outputs ):

  1. Varying inputs,即数据流输入图元信息的各种组成要素。从应用程序输入到 GPU 的数据除了顶点位置数据,还有顶点的法向量数据纹理坐标数据等。Cg 语言提供了一组语义词,用以表明参数是由顶点的哪些数据初始化的。

  2. Uniform inputs,表示一些与三维渲染有关的离散信息数据,这些数据通常由应用程序传入,并通常不会随着图元信息的变化而变化,如材质对光的反射信息运动矩阵等。Uniform 修辞一个参数,表示该参数的值由外部应用程序初始化并传入;例如在参数列表中写:

uniform float brightness,
uniform float4x4 modleWorldProject

表示从“外部”传入一个 float 类型数据,和一个 4 阶矩阵。“外部”的含义通常是用 OpenGL 或者 DirectX 所编写的应用程序。
使用 Uniform 修辞的变量,除了数据来源不同外,与其他变量是完全一样的。

需要注意的一点是:uniform 修辞的变量的值是从外部传入的,所以在 Cg 程序(顶点程序和片段程序)中通常使用 uniform 参数修辞函数形参,不容许声明一个用 uniform 修辞的局部变量!否则编译时会出现错误提示信息:

Error C5056:’uniform’not allowed on local variable

你可能感兴趣的:(7.2 uniform)