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 ",这是错误的操作

   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值