HLSL语法

数据类型

!标量类型

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;
}
发布了10 篇原创文章 · 获赞 4 · 访问量 1503

猜你喜欢

转载自blog.csdn.net/weixin_43369654/article/details/92829778