CG表达式与控制语句

Cg中的表达式,表达式由操作符(operator)关联一个或多个操作数(operand)构成,我们首先阐述各种类型的操作符,并结合数据类型讲解操作符的具体使用方法。

cg中的操作符与c语言中的类似(操作符的功能和写法与c相同,但用法不尽相同),按照操作符的功能可以划分为:关系操作符、逻辑操作符、条件操作符。cg中有一类较为独特的操作符,称为swizzle操作符,这个操作符用于取出向量类型变量中的分量。此外,与c语言不同的是,cg允许在向量类型变量上使用操作符,例如>操作符可以用来比较两个向量各个分量的大小关系。cg中表达式还有很多与c语言不同的细节之处。

Cg语言中的移位操作符,功能和C语言中的一样,也可以作用在向量上,但
是向量类型必须是int类型。

swizzle 操作符

可以使用cg语言中的swizzle操作符(.)将一个向量的成员取出组成一个新的向量。swizzle操作符被GPU硬件高效支持。swizzle操作符后接x、y、z、w,
分别表示原始向量的第一个、第二个、第三个、第四个元素;swizzle操作符后接
r、g、b和a的含义与前者等同。不过为了程序的易读性,建议对于表示颜色值的
向量,使用swizzle操作符后接r、g、b和a的方式。
举例如下:
float4(a, b, c, d).xyz 等价于 float3(a, b, c)
float4(a, b, c, d).xyy 等价于 float3(a, b, b)
float4(a, b, c, d).wzyx 等价于 float4(d, c, b, a)
float4(a, b, c, d).w 等价于 float d

注意:swizzle操作符只能对结构体和向量使用,不能对数组使用

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值