math.glsl 488 B

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