包括基本数据类型 向量 数组 结构体
一.基本数据类型
- float half fixed
float 32位 half 16 位 fixed 8位
其中颜色 使用fixed - int 整数
按照float处理,很少使用 - bool 类型
true 和false
支持
bool istrue=true;
float c =istrue?1:2;
二. 向量
主要包括float2 float3 float4 fixed 2 fixed3 fixed4
例如:
float4 fl4 = float(1.0,1.0,1.0,1.0)
重点介绍swizzle语法
作用:将一个向量提取组成一个新的向量
支持:xyzw和rgba两种模式,不能混合使用
例如:
float2 f2 = float2(1,2);
float3 fl3=float3(f2.xy,1);
//或 float3 fl3=float3(f2.rg,1);
三. 矩阵
float2x2 f2x2={1,2,3,4};
float2 f2 = f2x2[0];
四.数组
float arr[4] ={1,2,3,4};
数组不支持swizzle操作,支持角标
五.结构体
struct a2v{
float4 pos;
}
a2v.pos=float4(1,2,3,4);
CG语言支持类型别名
typedef float3 FL3;
CG语言支持宏定义:
#define FL3DEF typedef float3 FL3;