transparent_object.shader 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. [shaders]
  2. vertex =
  3. uniform highp mat4 u_viewProjectionMatrix;
  4. uniform highp mat4 u_modelMatrix;
  5. uniform highp mat4 u_normalMatrix;
  6. attribute highp vec4 a_vertex;
  7. attribute highp vec4 a_normal;
  8. attribute highp vec2 a_uvs;
  9. varying highp vec3 v_vertex;
  10. varying highp vec3 v_normal;
  11. varying highp vec2 v_uvs;
  12. void main()
  13. {
  14. vec4 world_space_vert = u_modelMatrix * a_vertex;
  15. gl_Position = u_viewProjectionMatrix * world_space_vert;
  16. v_vertex = world_space_vert.xyz;
  17. v_normal = (u_normalMatrix * normalize(a_normal)).xyz;
  18. v_uvs = a_uvs;
  19. }
  20. fragment =
  21. uniform mediump vec4 u_ambientColor;
  22. uniform mediump vec4 u_diffuseColor;
  23. uniform highp vec3 u_lightPosition;
  24. uniform highp vec3 u_viewPosition;
  25. uniform mediump float u_opacity;
  26. uniform sampler2D u_texture;
  27. varying highp vec3 v_vertex;
  28. varying highp vec3 v_normal;
  29. varying highp vec2 v_uvs;
  30. void main()
  31. {
  32. // Copied from platform.shader, removed texture
  33. mediump vec4 final_color = vec4(0.0);
  34. /* Ambient Component */
  35. final_color += u_ambientColor;
  36. highp vec3 normal = normalize(v_normal);
  37. highp vec3 light_dir = normalize(u_lightPosition - v_vertex);
  38. /* Diffuse Component */
  39. highp float n_dot_l = clamp(dot(normal, light_dir), 0.0, 1.0);
  40. final_color += (n_dot_l * u_diffuseColor);
  41. final_color.a = u_opacity;
  42. gl_FragColor = final_color;
  43. }
  44. [defaults]
  45. u_ambientColor = [0.3, 0.3, 0.3, 1.0]
  46. u_diffuseColor = [1.0, 1.0, 1.0, 1.0]
  47. u_opacity = 0.5
  48. u_texture = 0
  49. [bindings]
  50. u_viewProjectionMatrix = view_projection_matrix
  51. u_modelMatrix = model_matrix
  52. u_normalMatrix = normal_matrix
  53. u_lightPosition = light_0_position
  54. u_viewPosition = camera_position
  55. [attributes]
  56. a_vertex = vertex
  57. a_normal = normal
  58. a_uvs = uv0