Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript] Tajemniczy język javascript
Forum PHP.pl > Forum > Przedszkole
Dominator
Co robi język GLSL w javascripcie ?

  1. <script id="fishNormalMapFragmentShader" type="text/something-not-javascript">
  2. #ifdef GL_ES
  3. precision highp float;
  4. #endif
  5. uniform vec4 lightColor;
  6. varying vec4 v_position;
  7. varying vec2 v_texCoord;
  8. varying vec3 v_tangent; // #normalMap
  9. varying vec3 v_binormal; // #normalMap
  10. varying vec3 v_normal;
  11. varying vec3 v_surfaceToLight;
  12. varying vec3 v_surfaceToView;
  13.  
  14. uniform vec4 ambient;
  15. uniform sampler2D diffuse;
  16. uniform vec4 specular;
  17. uniform sampler2D normalMap; // #normalMap
  18. uniform float shininess;
  19. uniform float specularFactor;
  20. // #fogUniforms
  21.  
  22. vec4 lit(float l ,float h, float m) {
  23. return vec4(1.0,
  24. max(l, 0.0),
  25. (l > 0.0) ? pow(max(0.0, h), m) : 0.0,
  26. 1.0);
  27. }
  28. void main() {
  29. vec4 diffuseColor = texture2D(diffuse, v_texCoord);
  30. mat3 tangentToWorld = mat3(v_tangent, // #normalMap
  31. v_binormal, // #normalMap
  32. v_normal); // #normalMap
  33. vec4 normalSpec = texture2D(normalMap, v_texCoord.xy); // #normalMap
  34. vec4 normalSpec = vec4(0,0,0,0); // #noNormalMap
  35. vec3 tangentNormal = normalSpec.xyz - vec3(0.5, 0.5, 0.5); // #normalMap
  36. tangentNormal = normalize(tangentNormal + vec3(0, 0, 2)); // #normalMap
  37. vec3 normal = (tangentToWorld * tangentNormal); // #normalMap
  38. normal = normalize(normal); // #normalMap
  39. vec3 normal = normalize(v_normal); // #noNormalMap
  40. vec3 surfaceToLight = normalize(v_surfaceToLight);
  41. vec3 surfaceToView = normalize(v_surfaceToView);
  42. vec3 halfVector = normalize(surfaceToLight + surfaceToView);
  43. vec4 litR = lit(dot(normal, surfaceToLight),
  44. dot(normal, halfVector), shininess);
  45. vec4 outColor = vec4(
  46. (lightColor * (diffuseColor * litR.y + diffuseColor * ambient +
  47. specular * litR.z * specularFactor * normalSpec.a)).rgb,
  48. diffuseColor.a);
  49. // #fogCode
  50. gl_FragColor = outColor;
  51. }
  52. </script>
!*!
Cytat(Dominator @ 16.11.2012, 16:29:21 ) *
Co robi język GLSL w javascripcie ?

Burdel lub tworzy świat. GLSL jest "częścią" html5, pod webGL dla canvas.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.