ShaderLib.js 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. const ShaderLib = {
  2. common: {
  3. vertexShader:
  4. `#version 450
  5. NODE_HEADER_ATTRIBUTES
  6. NODE_HEADER_UNIFORMS
  7. NODE_HEADER_VARYS
  8. void main(){
  9. NODE_BODY_VARYS
  10. NODE_BODY_VARS
  11. gl_Position = NODE_MVP;
  12. }`,
  13. fragmentShader:
  14. `#version 450
  15. NODE_HEADER_ATTRIBUTES
  16. NODE_HEADER_UNIFORMS
  17. NODE_HEADER_VARYS
  18. layout(location = 0) out vec4 outColor;
  19. void main() {
  20. NODE_BODY_VARS
  21. MaterialDiffuseColor = vec4( 1.0 );
  22. #ifdef NODE_COLOR
  23. NODE_CODE_COLOR
  24. MaterialDiffuseColor = NODE_COLOR;
  25. #endif
  26. #ifdef NODE_OPACITY
  27. NODE_CODE_OPACITY
  28. MaterialDiffuseColor.a *= NODE_OPACITY;
  29. #endif
  30. #ifdef NODE_ALPHA_TEST
  31. if ( MaterialDiffuseColor.a < NODE_ALPHA_TEST ) discard;
  32. #endif
  33. #ifdef NODE_LIGHT
  34. NODE_CODE_LIGHT
  35. outColor.rgb = NODE_LIGHT;
  36. outColor.a = MaterialDiffuseColor.a;
  37. #else
  38. outColor = MaterialDiffuseColor;
  39. #endif
  40. }`
  41. },
  42. phong: {
  43. vertexShader:
  44. `#version 450
  45. NODE_HEADER_ATTRIBUTES
  46. NODE_HEADER_UNIFORMS
  47. NODE_HEADER_VARYS
  48. void main(){
  49. NODE_BODY_VARYS
  50. NODE_BODY_VARS
  51. gl_Position = NODE_MVP;
  52. }`,
  53. fragmentShader:
  54. `#version 450
  55. NODE_HEADER_ATTRIBUTES
  56. NODE_HEADER_UNIFORMS
  57. NODE_HEADER_VARYS
  58. layout(location = 0) out vec4 outColor;
  59. void main() {
  60. NODE_BODY_VARS
  61. MaterialDiffuseColor = vec4( 1.0 );
  62. MaterialSpecularColor = vec3( 1.0 );
  63. MaterialSpecularShininess = 30.0;
  64. NODE_CODE_COLOR
  65. MaterialDiffuseColor = NODE_COLOR;
  66. NODE_CODE_OPACITY
  67. MaterialDiffuseColor.a *= NODE_OPACITY;
  68. #ifdef NODE_ALPHA_TEST
  69. if ( MaterialDiffuseColor.a < NODE_ALPHA_TEST ) discard;
  70. #endif
  71. NODE_CODE_SPECULAR
  72. MaterialSpecularColor = NODE_SPECULAR;
  73. NODE_CODE_SHININESS
  74. MaterialSpecularShininess = NODE_SHININESS;
  75. #ifdef NODE_LIGHT
  76. NODE_CODE_LIGHT
  77. outColor.rgb = NODE_LIGHT;
  78. outColor.a = MaterialDiffuseColor.a;
  79. #else
  80. outColor = MaterialDiffuseColor;
  81. #endif
  82. }`
  83. }
  84. };
  85. export default ShaderLib;