我需要在GLSL中获取一个vec3
的最大值。目前我正在做以下操作:
max(max(col.r, col.g),col.b)
它有效。但我想知道是否有更好的方法可以通过一个内置函数调用实现?
很不幸,这就是在GLSL中你所能做到的最好的。
我已经习惯了写这样的东西。然而,如果你觉得不舒服,你可以自己编写一个函数来完成这个任务。
float max3 (vec3 v) {
return max (max (v.x, v.y), v.z);
}
vec2 maxPairs = max(v.xy, v.zw);
float maxValue = max(maxPairs.x, maxPairs.y);
max
找到两个vec4
的最大值。vec4 v = max(a, b);
vec2 maxPairs = max(v.xy, v.zw);
float maxValue = max(maxPairs .x, maxPairs.y);