float float_from_vec4(vec4 vector) { return dot(vector.rgb, vec3(1.0)) / 3.0; } float float_from_vec3(vec3 vector) { return dot(vector, vec3(1.0)) / 3.0; } vec3 vec3_from_vec4(vec4 vector) { return vector.rgb; } vec3 vec3_from_float(float value) { return vec3(value); } vec4 vec4_from_vec3(vec3 vector) { return vec4(vector, 1.0); } vec4 vec4_from_float(float value) { return vec4(vec3(value), 1.0); }