ShaderLib.js 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  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_LIGHT
  31. NODE_CODE_LIGHT
  32. outColor.rgb = NODE_LIGHT;
  33. outColor.a = MaterialDiffuseColor.a;
  34. #else
  35. outColor = MaterialDiffuseColor;
  36. #endif
  37. }`
  38. },
  39. phong: {
  40. vertexShader:
  41. `#version 450
  42. NODE_HEADER_ATTRIBUTES
  43. NODE_HEADER_UNIFORMS
  44. NODE_HEADER_VARYS
  45. void main(){
  46. NODE_BODY_VARYS
  47. NODE_BODY_VARS
  48. gl_Position = NODE_MVP;
  49. }`,
  50. fragmentShader:
  51. `#version 450
  52. NODE_HEADER_ATTRIBUTES
  53. NODE_HEADER_UNIFORMS
  54. NODE_HEADER_VARYS
  55. layout(location = 0) out vec4 outColor;
  56. void main() {
  57. NODE_BODY_VARS
  58. MaterialDiffuseColor = vec4( 1.0 );
  59. MaterialSpecularColor = vec3( 1.0 );
  60. MaterialSpecularShininess = 30.0;
  61. NODE_CODE_COLOR
  62. MaterialDiffuseColor = NODE_COLOR;
  63. NODE_CODE_OPACITY
  64. MaterialDiffuseColor.a *= NODE_OPACITY;
  65. NODE_CODE_SPECULAR
  66. MaterialSpecularColor = NODE_SPECULAR;
  67. NODE_CODE_SHININESS
  68. MaterialSpecularShininess = NODE_SHININESS;
  69. #ifdef NODE_LIGHT
  70. NODE_CODE_LIGHT
  71. outColor.rgb = NODE_LIGHT;
  72. outColor.a = MaterialDiffuseColor.a;
  73. #else
  74. outColor = MaterialDiffuseColor;
  75. #endif
  76. }`
  77. }
  78. };
  79. export default ShaderLib;