CG语言中的变量修饰符
修饰符 | 解析 |
---|---|
const | 变量被定义成常量的话,在程序中,就不能再对该变量赋值,除非const和uniform,varying一起使用。const修饰的变量,需要在声明时给予一个初始值 |
extern | extern表明声明仅仅是声明,而非定义。在程序中一定有一个地方存在一个非extern的对应的声明 |
in | 只在声明参数,或是使用varying修饰符时使用。将参数,或是varying作为函数或是程序的输入值。函数参数如果没有in,out,或者inout的话,隐式的默认为in |
inline | 只在函数定义时有用,告诉编译器始终对该函数采取内联调用 |
inout | 只在声明为参数和varying时使用,将参数或是varying声明为函数或是程序的输入输出值 |
static | 只在声明全局变量时使用,static将使变量对程序而言成为私有的,外部不可见,不能和uniform,varying一起使用 |
out | 只在声明参数和varying时使用,将变量或varying定义为函数或是程序的输出值 |
uniform | 用于全局变量和程序的入口函数的参数,用来定义constant buffers(常量缓存)。如果用于一个非入口函数的参数,它将被忽略。这样做的目的是为了使一个函数既能作为入口函数,又能作为非入口函数。uniform的变量可以像非uniform的变量那样读写。uniform修饰符通过向外部语言提供一个机制,来提供变量的初始值是如何指定和保存的信息。 |
ShaderLab属性类型和CG变量类型的匹配关系
ShaderLab属性类型 | CG变量类型 |
---|