如何使用 Vec3 作为迭代器限制 GLSL 中的 for 循环?

How do I limit a for-loop in GLSL with a Vec3 as iterator?

vec3 Origin = vec3(0,0,0);
vec3 StepValue = vec3(0,1,0);
vec3 Destination = Origin + (10*StepValue);

for (vec3 Stepper; Stepper==Destination; Stepper += StepValue)

这不是我的实际代码,而是一个做同样事情的例子, 除了我的载体不像这些那样干净和简单。

这不起作用。循环根本不迭代!

使用...

for(vec3 Stepper; Stepper==Stepper; Stepper += StepValue)

... 遍历循环直到驱动程序崩溃, 或者直到循环手动终止。

运算符 ><>=<= 不允许用于向量 lessThan / greaterThan 都不是。

除了 运行 无限循环之外,我该如何处理它?

除了使用 == 还有其他选择吗?

谢谢!

for (vec3 Stepper = Origin; all(lessThan(Stepper, Destination)); Stepper += StepValue)

lessThanlessThanEqual 等 return 一个 bvec* 可以使用函数计算为布尔值所有任何。但是,请注意,这仍然不会在您的示例中迭代,因为您目的地的 x 和 z 为 0,因此不是 >= Stepper。