math.glsl 535 B

123456789101112131415161718192021222324
  1. #ifndef _MATH_GLSL_
  2. #define _MATH_GLSL_
  3. const float PI = 3.1415926535;
  4. const float PI2 = PI * 2.0;
  5. vec2 envMapEquirect(const vec3 normal, const float angle) {
  6. const float PI = 3.1415926535;
  7. const float PI2 = PI * 2.0;
  8. float phi = acos(normal.z);
  9. float theta = atan(-normal.y, normal.x) + PI + angle;
  10. return vec2(theta / PI2, phi / PI);
  11. }
  12. float rand(const vec2 co) { // Unreliable
  13. return fract(sin(dot(co.xy, vec2(12.9898, 78.233))) * 43758.5453);
  14. }
  15. float attenuate(const float dist) {
  16. return 1.0 / (dist * dist);
  17. }
  18. #endif