文章内容源自《GPU编程与CG语言之阳春白雪下里巴人》,因笔者读书易中途放弃,遂每读一章节,将其移至简书平台,以此作为对自己读书的勉励。笔者用粗体、斜体 标注了关键词句,望感兴趣的读者们一起学习共勉。猛戳这里查看更多!
6.3 数学操作符(Math Operators)
Cg语言对向量的数学操作提供了内置的支持,Cg中的数学操作符有:*
乘法、/
除法、-
取反、+
加法、—
减法、%
求余、++
、——
、*=
、/=
、+=
、-=
。后面四种运算符有时被归纳入赋值操作符,不过它们实际上进行数学计算,然后进行赋值, 所以这里也放入数学操作符中进行说明。
在文献【2】第3.3节Math Expressions中,其行文意思容易让人觉得“好像只有加减乘除等运算可以对向量进行”,实际上经过我的测试,++
、——
等数学运算符同样可以使用在向量上。所以“Cg语言对向量的数学操作提供内置支持 ” 这句话是非常准确的。
需要注意的是:求余操作符%
。只能在int类型数据间进行,否则编译器会提示错误信息:
error C1021: operands to “%” must be integral.
当使用这些数学操作符对一个标量和一个向量进行运算时,标量首先被复制到一个长度相同的向量中,然后进行运算,例如下面的代码形式是正确的:
void function() {
float2 a = float2(1.0, 1.0);
float b = 2.0;
f *= d;
f *= 2.0;
}
网友评论