HLSL Shader着色器编程(矩阵类型变量)

  

学习提示:如果没有C语言、Windows项目开发基础可以通过下方链接学习:

0基础C语言学习与训练

0基础C++学习与训练

Windows项目开发

 

1、在HLSL的语法中,它提供了矩阵类型关键字进行变量的定义,

矩阵类型主要由3部分组成,

第一部分是前面学习过的整型、浮点型、布尔型。

第二部分是(数值1至4)用于描述矩阵的行数

第三部分是(数值1至4)用于描述矩阵的列数

而通过这3部分的组合就可以形成一个(矩阵类型)的关键字,并可以使用它进行变量的定义。

 

2、矩阵类型变量定义的语法格式

  类型关键字 空格 变量名;

  int1x1 变量名; //整型矩阵有1行1列

  int2x1 变量名; //整型矩阵有2行1列

  int3x2 变量名; //整型矩阵有3行2列

  int4x3 变量名; //整型矩阵有4行3列

 

  float1x1 变量名; //浮点型矩阵有1行1列

  float1x2 变量名; //浮点型矩阵有1行2列

  float2x3 变量名; //浮点型矩阵有2行3列

  float4x4 变量名; //浮点型矩阵有4行4列

 

  例子:

  float2x2 color = {1.0f,1.0f,1.5f,0.5f};

  例子分析:

   (1)通过关键字float2x2组成矩阵类型float2x2,

      这样,就可以描述矩阵中可存放4个浮点型数据。

      然后,通过float2x2定义了变量color,并进行了赋值,

      赋值时由于有多个数据,所以,使用大括号作为数据的起始与结束边界,

      而每个数据之间用(逗号)分隔,分别是1.0f,1.0f,1.5f,0.5f。

 

3、变量名的命名规则

  只可以以"英文字母""下划线" 开头。

  例子:

    int3x2  _a123;  //正确

    float2x2 _123;   //正确

    bool4x1 a123;   //正确

    float3x1 a_123;   //正确

    bool2x3 123;    //错误

    float3x3 123_a;   //错误

    int4x4  12ab;   //错误

 

4、变量的赋值方式有两种:

  (1)在变量定义时立即进行赋值

    例子:

    float1x2 a={1.0f,2.0f}; 

  (2)在变量定义后,再通过另一行代码进行赋值

    例子:

    float2x1 a;

    a={1.0f,2.0f};

 

到这里,我们就学习完HLSL中的矩阵类型变量这个知识点,而如何在HLSL的程序中去运用它

就可以通过下方的链接,下载完整的代码进行学习与训练,在下载的内容中,我们会结合

完整的代码继续详细分析每个知识点如何运用,这样,才可以一步一步地掌握HLSL 的程序开发。

 

>>>下载HLSL程序开发代码