ShaderLib.js 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. const ShaderLib = {
  2. meshBasic: {
  3. vertexShader: `#version 450
  4. layout(location = 0) in vec3 position;
  5. layout(location = 1) in vec2 uv;
  6. layout(location = 0) out vec2 vUv;
  7. layout(set = 0, binding = 0) uniform ModelUniforms {
  8. mat4 modelMatrix;
  9. mat4 modelViewMatrix;
  10. mat3 normalMatrix;
  11. } modelUniforms;
  12. layout(set = 0, binding = 1) uniform CameraUniforms {
  13. mat4 projectionMatrix;
  14. mat4 viewMatrix;
  15. } cameraUniforms;
  16. void main(){
  17. vUv = uv;
  18. gl_Position = cameraUniforms.projectionMatrix * modelUniforms.modelViewMatrix * vec4( position, 1.0 );
  19. }`,
  20. fragmentShader: `#version 450
  21. NODE_UNIFORMS
  22. layout(location = 0) in vec2 vUv;
  23. layout(location = 0) out vec4 outColor;
  24. void main() {
  25. outColor = vec4( 1.0, 1.0, 1.0, 1.0 );
  26. #ifdef NODE_COLOR
  27. outColor.rgb *= NODE_COLOR;
  28. #endif
  29. #ifdef NODE_OPACITY
  30. outColor.a *= NODE_OPACITY;
  31. #endif
  32. }`
  33. },
  34. pointsBasic: {
  35. vertexShader: `#version 450
  36. layout(location = 0) in vec3 position;
  37. layout(set = 0, binding = 0) uniform ModelUniforms {
  38. mat4 modelMatrix;
  39. mat4 modelViewMatrix;
  40. } modelUniforms;
  41. layout(set = 0, binding = 1) uniform CameraUniforms {
  42. mat4 projectionMatrix;
  43. mat4 viewMatrix;
  44. } cameraUniforms;
  45. void main(){
  46. gl_Position = cameraUniforms.projectionMatrix * modelUniforms.modelViewMatrix * vec4( position, 1.0 );
  47. }`,
  48. fragmentShader: `#version 450
  49. layout(location = 0) out vec4 outColor;
  50. #ifdef NODE_UNIFORMS
  51. layout(set = 0, binding = 2) uniform NodeUniforms {
  52. NODE_UNIFORMS
  53. } nodeUniforms;
  54. #endif
  55. void main() {
  56. outColor = vec4( 1.0, 0.0, 0.0, 1.0 );
  57. #ifdef NODE_COLOR
  58. outColor.rgb = NODE_COLOR;
  59. #endif
  60. #ifdef NODE_OPACITY
  61. outColor.a *= NODE_OPACITY;
  62. #endif
  63. }`
  64. },
  65. lineBasic: {
  66. vertexShader: `#version 450
  67. layout(location = 0) in vec3 position;
  68. layout(set = 0, binding = 0) uniform ModelUniforms {
  69. mat4 modelMatrix;
  70. mat4 modelViewMatrix;
  71. } modelUniforms;
  72. layout(set = 0, binding = 1) uniform CameraUniforms {
  73. mat4 projectionMatrix;
  74. mat4 viewMatrix;
  75. } cameraUniforms;
  76. void main(){
  77. gl_Position = cameraUniforms.projectionMatrix * modelUniforms.modelViewMatrix * vec4( position, 1.0 );
  78. }`,
  79. fragmentShader: `#version 450
  80. layout(location = 0) out vec4 outColor;
  81. void main() {
  82. outColor = vec4( 1.0, 0.0, 0.0, 1.0 );
  83. }`
  84. }
  85. };
  86. export default ShaderLib;