home *** CD-ROM | disk | FTP | other *** search
/ Hackers Magazine 57 / CdHackersMagazineNr57.iso / Software / Multimedia / k3d-setup-0.7.11.0.exe / share / k3d / shaders / glsl / gooch_fragment.glsl next >
Encoding:
Text File  |  2008-01-23  |  659 b   |  22 lines

  1. varying float NdotL;
  2. varying vec3 ReflectVec;
  3. varying vec3 ViewVec;
  4.  
  5. void main()
  6. {
  7.     const vec3 SurfaceColor = vec3(0.75, 0.75, 0.75);
  8.     const vec3 WarmColor = vec3(0.6, 0.6, 0.0);
  9.     const vec3 CoolColor = vec3(0.0, 0.0, 0.6);
  10.     const float DiffuseWarm = 0.45;
  11.     const float DiffuseCool = 0.45;
  12.  
  13.     vec3 kcool = min(CoolColor + DiffuseCool * SurfaceColor, 1.0);
  14.     vec3 kwarm = min(WarmColor + DiffuseWarm * SurfaceColor, 1.0);
  15.     vec3 kfinal = mix(kcool, kwarm, NdotL);
  16.     vec3 nreflect = normalize(ReflectVec);
  17.     vec3 nview = normalize(ViewVec);
  18.     float spec = max(dot(nreflect, nview), 0.0);
  19.     spec = pow(spec, 32.0);
  20.     gl_FragColor = vec4(min(kfinal + spec, 1.0), 1.0);
  21. }
  22.