一、基础数据类型
1.简单数据类型
| uint |
32 位无符号整型 |
12 |
| int |
32 位整型 |
-3 |
| float |
32 位浮点数 符号:f |
1.2f |
| half |
16 位浮点数 符号:h |
1.2h |
| fixed |
12 位浮点数 |
3.2 |
| bool |
布尔类型 |
true |
| string |
字符串类型 |
"字符串" |
2.纹理对象句柄
| sampler |
通用的纹理采样器,可以用于处理各种不同维度和类型的纹理 |
/ |
| sampler1D |
用于一维纹理,通常用于对一维纹理进行采样 |
从左到右的渐变色 |
| sampler2D |
用于二维纹理,最常见的纹理类型之一,用于处理二维图像纹理 |
贴图 |
| sampler3D |
用于三维纹理,通常用于体积纹理 |
体积渲染 |
| samplerCUBE |
用于立方体纹理,通常用于处理环境映射等需要立方体贴图的情况 |
/ |
| samplerRECT |
用于处理矩形纹理,通常用于处理一些非标准的纹理映射需求 |
/ |
- 这些主要是用于处理纹理(Textrue)数据的数据类型
- 主要区分是纹理的维度和类型
3.基础复合数据类型
| 一维数组 |
和 c# 中类似 |
int a[4]={1,2,3,4} |
| 二位数组 |
和 c# 中类似 |
int b[4][3]={{1,,2,3},{4,5,6}} |
| 结构体 |
和 c# 中类似 |
struct test{} |
注:
- CG 语言中数组无法通过
.length来获取长度,需要自己声明变量记录
- 结构体和 C# 中类似 但是没有访问修饰符,且一般在函数外声明
二、特殊数据类型
1.向量
1.)特点
- CG 的内置数据类型
- 最大维度为四维
- 数据结构类型可任意
2.)基础构成
1 2 3 4 5 6 7 8
| 数据类型2 变量名 = 数据类型2(n1,n2) 数据类型3 变量名 = 数据类型3(n1,n2,n3) 数据类型4 变量名 = 数据类型4(n1,n2,n3,n4)
例子: float2 f2 = fix2(1.2,2.5) half3 h3 = half3(2.2,2.4,4.5) int4 i4 = int4(1,2,3,4)
|
2.矩阵
1.)特点
- CG 语言内置数据类型
- 行列数不可小于 2,大于 4
- 数据结构类型可任意
2.)基础构成
1 2 3 4 5 6
| 数据类型'n'x'm' 变量名 = {n1m1,n1m2,n1m3,··· n2m1,n2m2,n2m3,··· ···} 例子: int2x3 sampleRect = {1,2,3, 4,5,6}
|
3.)bool 类型的特殊使用
bool 的向量形式申明 可以用于存储一些的逻辑判断的结果
1 2 3
| int2 a = int2(1,2) int2 b = int2(2,3) bool2 c = a < b
|
运算后 c 的值为 bool2(true,true)