slang-shaders/bezel/koko-aio/shaders/includes/pows.include.slang
2022-12-05 18:48:10 -06:00

60 lines
1.1 KiB
Plaintext

vec3 pow_2(vec3 v) {
return v*v*v;
}
vec3 pow_3(vec3 v) {
return v*v*v;
}
vec3 pow_4(vec3 v) {
vec3 v2 = v*v;
return v2*v2;
}
vec3 pow_5(vec3 v) {
vec3 v2 = v*v;
return v2*v2*v;
}
vec3 pow_6(vec3 v) {
vec3 v2 = v*v;
return v2*v2*v2;
}
vec3 pow_7(vec3 v) {
vec3 v2 = v*v;
return v2*v2*v2*v;
}
vec3 pow_8(vec3 v) {
vec3 v2 = v*v;
vec3 v4 = v2*v2;
return v4*v4;
}
vec3 pow_9(vec3 v) {
vec3 v2 = v*v;
vec3 v4 = v2*v2;
return v4*v4*v;
}
vec3 pow_10(vec3 v) {
vec3 v2 = v*v;
vec3 v4 = v2*v2;
return v4*v4*v2;
}
vec3 my_pow(vec3 c,float p) {
if (p == 1) return c;
else if (p == 2) return c * c ;
else if (p == 3) return pow_3(c);
else if (p == 4) return pow_4(c);
else if (p == 5) return pow_5(c);
else if (p == 6) return pow_6(c);
else if (p == 7) return pow_7(c);
else if (p == 8) return pow_8(c);
else if (p == 9) return pow_9(c);
else if (p == 10) return pow_10(c);
return pow(c,vec3(p));
}