2025-01-17 16:50:34 +01:00
|
|
|
|
|
|
|
// inefficient cuberoot function
|
|
|
|
float cbrt(float x) {
|
|
|
|
return pow(x, 1.0/3.0);
|
|
|
|
}
|
2025-01-24 22:16:45 +01:00
|
|
|
|
|
|
|
/*
|
|
|
|
Alpha Blending a over b after Bruce A. Wallace
|
|
|
|
source: https://en.wikipedia.org/wiki/Alpha_compositing
|
|
|
|
*/
|
|
|
|
vec4 alpha_blend(vec4 b, vec4 a) {
|
|
|
|
float alpha = a.a + (b.a * (1.0 - a.a));
|
|
|
|
vec3 col = ((a.rgb*a.a) + ((b.rgb*b.a) * (1.0 - a.a)) / alpha);
|
|
|
|
return vec4(col.r, col.g, col.b, alpha);
|
|
|
|
}
|