我想检查vec3值是否具有相同的组件。用于比较vec3值的正确关系运算符/函数?
int same = 0;
vec3 v1 = vec3(1.0f, 0.0f, 0.0f);
vec3 v2 = vec3(0.0f, 0.0f, 0.0f);
if (v1 == v2) // <- this part
{
same = 1;
}
是== vec3类型的正确关系运算符吗?
如果不是,我可以使用什么(操作符和函数也可以)比较vec3的值?
我想检查vec3值是否具有相同的组件。用于比较vec3值的正确关系运算符/函数?
int same = 0;
vec3 v1 = vec3(1.0f, 0.0f, 0.0f);
vec3 v2 = vec3(0.0f, 0.0f, 0.0f);
if (v1 == v2) // <- this part
{
same = 1;
}
是== vec3类型的正确关系运算符吗?
如果不是,我可以使用什么(操作符和函数也可以)比较vec3的值?
的GLSL 4.5 Specification,第5.9节规定:
等式运算符等于(==)和不等于(!=)对所有类型的操作[...]。它们导致一个标量布尔值。 [...]对于向量,矩阵,结构和阵列,一个操作数的所有组件,成员或元素必须等于对应的组件, 成员或其他操作数中的元素,以使操作数被视为相等。
要回答你的问题:是的,==
运算符比较天气两个向量在所有组件中具有相同的值。
也许['equal()'*(来自我刚刚尝试阅读的书)*](https://thebookofshaders.com/glossary/?search=equal) – derM
'equal'将执行组件明智的比较,返回一个布尔向量。 – BDL