ShaderLib.js 2.0 KB

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