数据类型
!标量类型
bool : True/False
int : 32位整型integer
Unit : 32位无符号整型
Half : 16位浮点型
Float :32位浮点型
Double : 64位浮点型
!向量类型
构成:通过两个部分组成,第一部分是标量类型,第二部分是元素的个数(1-4之间)
例:
float3 fvector = {1.0f,0.5f,0.3f};
这个向量有3个元素,每个元素都是32位浮点型,元素后面的f表示他们是浮点型的数值。
int iVector = 1;
定义变量的第二种方式:
Vector<Type , Number>变量名
例:
Vector<float , 3>fVector = {1.0f, 0.5f, 0.3f};
!矩阵类型
构成:三个部分,第一部分是标量类型,第二部分是行数,第三部分是列数。
例:
float 2x2 fMatrix = {0.0f,0.1f, //第一行
2.1f,2.2f}; //第二行
定义变量的第二种方式:
matrix<Type , Number>变量名
!纹理类型
Texture Diffuse;
Texture2D Normal;
!结构体类型
struct Name
{
类型 成员名字;
}
struct a
{
int a;
float b;
int 4X4 iMatrix;
}
!自定义类型
typedef Type Name;
例:
typedef vector<float , 2> //float2
typedef vector<double , 3> //double3
typedef matrix<float ,4, 4> //MATRIX
typedef float //FLOAT
流程控制(与c/c++相同)
!分支控制
if(判断语句)
{
//判断条件成立时执行
}
else
{
//判断条件不成立时执行
}
!循环控制
for(循环变量的储值;循环条件;循环变量的增量值)
{
//循环中执行的语句
}
while(判断条件)
{
//判断条件成立时执行;
}
do
{
//判断条件成立时执行;
}while(判断条件)
语意
定义:是一个字符串,用于说明着色器函数的参数具体的用途。
函数
返回值 函数名(参数1:语意,参数2:语意,…参数n:语意)
例:
float4 VS(float4 vpos:POSITION,float3 vNormal:NORMAL) //这里的POSITON和NORMAL就是语意
{
return vpos;
}