CG基本數據類型

CG中的基本數據類型 :

     float   -->  32位浮點數據,一個符號位。

     half    -->  16位浮點數據。

     fixed  -->  12位定點數,被所有的fragment profiles支持。

     int      -->   32位整型數據。

     bool  -->    true  or  false     三目運算 : col = b ? fixed(1,0,0,1) : fixed4(0,1,0,1)

     sampler* --> 分爲6類 :sampler、sampler1D、sampler2D、sampler3D、samplerCUBE、samplerRECT。DirectX profiles不支持samplerRECT類型

     CG中不支持string類型


float  -->  float2  -->  float3  -->  float4

half  -->  half2  -->  half3  -->  half4

fixed  -->  fixed2  -->  fixed3  -->  fixed4



swizzle操作

 例 :

         float2  fl2 = float2(1,0);

         float3  fl3 = float3(1,0,1);

         float4  fl4 = float4(1,1,0,1); 

 

         float4  fl = float4(fl2,0,1) / float4(fl3.xy,0,1) / float4(fl3.xyzz) / float4(fl3.xyzx) /float4(fl3.xxxx) / float4(fl4.xyzw) / float4(fl4.rgba) ;

         可以正序,也可以反序。但是隻能以xyzw 或者 rgba 兩種順序其中的一種來進行swizzle操作



爲類型指定類型別名 :

        使用關鍵字typedef

          typedef  float4  FL4;  --> 下文的所有float4都可以用FL4來代替


定義宏 :

     #define  M  float4(1,0,0,1);



矩陣 :

   float2x2  M2x2 = {1,0,0,1}       // 2x2階矩陣

   float2x4  M2x2 = { {1,0,1,1} , {1,1,1,1} }    //2x4階矩陣

   col = M2x4[0]    //將矩陣的第一行賦值給col變量


數組 :

  float  arr[4] = {1,0,0,1}

  col = float4(arr[1] , arr[2] , arr[3] , arr[4]);  // 用數組賦值,必須將數組中的元素對應賦值給一個分量,切忌 " col = arr ",這是錯誤的操作

   

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章