Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
3d hlsl语法条件表达式_3d_Hlsl_C - Fatal编程技术网

3d hlsl语法条件表达式

3d hlsl语法条件表达式,3d,hlsl,c,3d,Hlsl,C,在“编程顶点、几何体和像素着色器”一书中,有一个带有以下说明的小型hlsl脚本: 返回(x!=y!=z) 这真的允许吗?这个语法正确吗?这是什么意思 返回(x!=y&&y!=z) (x!=y!=z)与(x!=y&&y!=z)不同。一般来说,遵循与相同的规则。在这种情况下,从左到右规则适用于=操作员。假设这些值是整数,表达式(x!=y!=z)等价于以下内容: int temp = (x != y); // true = 1, false = 0 int r = (temp != z); // tr

在“编程顶点、几何体和像素着色器”一书中,有一个带有以下说明的小型hlsl脚本:

返回(x!=y!=z)

这真的允许吗?这个语法正确吗?这是什么意思

返回(x!=y&&y!=z)

(x!=y!=z)
(x!=y&&y!=z)
不同。一般来说,遵循与相同的规则。在这种情况下,从左到右规则适用于
=操作员。假设这些值是整数,表达式
(x!=y!=z)
等价于以下内容:

int temp = (x != y); // true = 1, false = 0
int r = (temp != z); // true = 1, false = 0
因此,表达式将计算为
1
当且仅当
x
y
相等且
z
不是
0
,或者如果
x
y
不相等且
z
不是
1

如果值为
bool
s,或者可以保证为
0
1
,则表达式将简化为三个术语的逻辑异或(xor)