Advertisement
Geometrian

Untitled

Sep 25th, 2014
338
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.88 KB | None | 0 0
  1. "#define ETA(SPECTRUM_PART) (1.0/(ior+abbe*SPECTRUM_PART))\n"
  2. "#define N 30\n"
  3. "vec3 samples = vec3(0);\n"
  4. "vec3 total = vec3(0);\n"
  5. "for (int i=0;i<N;++i) {\n"
  6. "   float part = float(i)/float(N);\n"
  7. "   float H = part * 300.0;\n" //Not not using all of the hues
  8. "   vec3 mask = HSL_to_RGB(H);\n"
  9. "   samples += mask * get_cubemap_refract(texCube_1,vec_norm_wld,ETA(part)).rgb;\n"
  10. "   total += mask;\n"
  11. "}\n"
  12. "vec4 sample_refract = vec4(samples/total,1.0);\n"
  13.  
  14. "vec3 HSL_to_RGB(float H) {\n" //S==L==1
  15. "   #define C 1\n"
  16. "   float Hp = H / 60.0;\n"
  17. "   float X = C*(1.0 - abs(mod(Hp,2.0)-1.0));\n"
  18. "   if (Hp>=0.0 && Hp<1.0) return vec3(C,X,0);\n"
  19. "   if (Hp>=1.0 && Hp<2.0) return vec3(X,C,0);\n"
  20. "   if (Hp>=2.0 && Hp<3.0) return vec3(0,C,X);\n"
  21. "   if (Hp>=3.0 && Hp<4.0) return vec3(0,X,C);\n"
  22. "   if (Hp>=4.0 && Hp<5.0) return vec3(X,0,C);\n"
  23. "                          return vec3(C,0,X);\n"
  24. "}\n"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement