怎样使用HLSL变量
HLSL是高级着色语言的简称。在进行DirectX编程时,我们用它来对顶点进行相关处理。那么,HLSL与普通C++变量有什么不同,我们又该怎样如何使用它呢?
工具/原料
DirextX
数值类型
1、数值类型即标量类型,在HLSL中,可使用以下数值类型:bool、int、half、float、double。其中half是16 位浮点数。注意,有些类型可能某些平台不支持,这时我们用float类型来代替。

向量类型
1、HLSL中的内置向量类型有vector和vector<T,n>。学过C++的朋友们都知道,后者有点像一个模板类型,这里的参剞麽苍足数T指明了各个分量的数据类型,后一个参数n则标识了维数,只能在1到4之间。比如说,我们可以定义一个2D float类型的向量:vector<float,2>

2、如果我们想要访问指定向量中的某个分量,可用如下方式来访问:向量名.(x,y,z,w) 或者 向量名.(r,g,b,a)前一个多用于空间位置,前三个分量分别为x,y,z坐标,最后一个分量w用于指定该元素是一个点(1)还是向量(0)。而后一种方式多用于颜色向量,其对应的分量分别为红、绿、蓝和透明通道。

矩阵类型
1、HLSL中的矩阵类型有matrix和matrix<T,m,n>。1)matrix类型各分量均为float类型,计茄妙蜷维数为4×4。2)matrix<T,m,n>则可以自己指定各分量类型和维数。例如,定义一个 2×2 整型矩阵:matrix<int, 2, 2> m2x2;

数组类型
1、语法与C++中的相同。例如int M[4][4];half a[4];vector vec[5];

结构体
1、基本和C++中的一样,但其中不能有成员函数。下图便是HLSL中一个结构体的例子。
