I need to get the maximum of a vec3
in GLSL. Currently I am doing
max(max(col.r, col.g),col.b)
It works. But I am wondering if there a better way to do this with one built-in function call?
vec3 is a floating point vector with three components. It can be initialized by: Providing a scalar value for each component. Providing one scalar value. This value is used for all components.
So, the alignment of a mat4 is like that of a vec4, which is 16 bytes. And the size of a mat4 is 4*sizeof(vec4) = 4*16 bytes.
That is the best you are going to do in GLSL, unfortunately.
I have gotten used to writing that sort of thing. However, if it bothers you, you can always write your own function that does that.
float max3 (vec3 v) {
return max (max (v.x, v.y), v.z);
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With