ShaderLib.js 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  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. layout(set = 0, binding = 2) uniform OpacityUniforms {
  22. float opacity;
  23. } opacityUniforms;
  24. layout(set = 0, binding = 3) uniform sampler mySampler;
  25. layout(set = 0, binding = 4) uniform texture2D myTexture;
  26. layout(location = 0) in vec2 vUv;
  27. layout(location = 0) out vec4 outColor;
  28. void main() {
  29. outColor = texture( sampler2D( myTexture, mySampler ), vUv );
  30. outColor.a *= opacityUniforms.opacity;
  31. }`
  32. },
  33. pointsBasic: {
  34. vertexShader: `#version 450
  35. layout(location = 0) in vec3 position;
  36. layout(set = 0, binding = 0) uniform ModelUniforms {
  37. mat4 modelMatrix;
  38. mat4 modelViewMatrix;
  39. } modelUniforms;
  40. layout(set = 0, binding = 1) uniform CameraUniforms {
  41. mat4 projectionMatrix;
  42. mat4 viewMatrix;
  43. } cameraUniforms;
  44. void main(){
  45. gl_Position = cameraUniforms.projectionMatrix * modelUniforms.modelViewMatrix * vec4( position, 1.0 );
  46. }`,
  47. fragmentShader: `#version 450
  48. layout(location = 0) out vec4 outColor;
  49. void main() {
  50. outColor = vec4( 1.0, 0.0, 0.0, 1.0 );
  51. }`
  52. },
  53. lineBasic: {
  54. vertexShader: `#version 450
  55. layout(location = 0) in vec3 position;
  56. layout(set = 0, binding = 0) uniform ModelUniforms {
  57. mat4 modelMatrix;
  58. mat4 modelViewMatrix;
  59. } modelUniforms;
  60. layout(set = 0, binding = 1) uniform CameraUniforms {
  61. mat4 projectionMatrix;
  62. mat4 viewMatrix;
  63. } cameraUniforms;
  64. void main(){
  65. gl_Position = cameraUniforms.projectionMatrix * modelUniforms.modelViewMatrix * vec4( position, 1.0 );
  66. }`,
  67. fragmentShader: `#version 450
  68. layout(location = 0) out vec4 outColor;
  69. void main() {
  70. outColor = vec4( 1.0, 0.0, 0.0, 1.0 );
  71. }`
  72. }
  73. };
  74. export default ShaderLib;