GLSL中是否有内置函数用于AND,或者是否有一些优化的方法用于组件明智的AND?

时间:2014-07-06 19:23:15

标签: opengl glsl shader

GLSL具有lessThangreaterThan等的组件明智功能,返回bvec

还有any()all(),但似乎没有and()

如果我有两个bvec3并想要一个新的bvec3,相当于:

bvec3 new = bvec3(two.x && one.x, two.y && one.y, two.z && one.z);

有更快的方法或更优化的方法吗?

我正在尝试编写高度优化的GLSL代码。

1 个答案:

答案 0 :(得分:2)

根本不确定这是否会更有效,但我相信您可以将and两个bvec3值转换为另一种向量类型,例如uvec3或{{} 1}},对这些类型使用更广泛的操作(如按位和乘法),然后转换回来。

使用vec3bvec3one,这些是以下几种选择:

two

在使用之前你一定要做基准测试。组件表达的速度很快。