1
0
Fork 0
mirror of https://github.com/DanielnetoDotCom/YouPHPTube synced 2025-10-06 03:50:04 +02:00
Oinktube/node_modules/three/examples/jsm/renderers/webgpu/nodes/ShaderLib.js
2023-12-11 11:59:56 -03:00

146 lines
2.6 KiB
JavaScript

const ShaderLib = {
meshBasic: {
vertexShader: `#version 450
layout(location = 0) in vec3 position;
NODE_HEADER_ATTRIBUTES
NODE_HEADER_UNIFORMS
layout(set = 0, binding = 0) uniform ModelUniforms {
mat4 modelMatrix;
mat4 modelViewMatrix;
mat3 normalMatrix;
} modelUniforms;
layout(set = 0, binding = 1) uniform CameraUniforms {
mat4 projectionMatrix;
mat4 viewMatrix;
} cameraUniforms;
void main(){
NODE_BODY_ATTRIBUTES
gl_Position = cameraUniforms.projectionMatrix * modelUniforms.modelViewMatrix * vec4( position, 1.0 );
}`,
fragmentShader: `#version 450
NODE_HEADER_ATTRIBUTES
NODE_HEADER_UNIFORMS
layout(location = 0) out vec4 outColor;
void main() {
outColor = vec4( 1.0, 1.0, 1.0, 1.0 );
#ifdef NODE_COLOR
outColor = NODE_COLOR;
#endif
#ifdef NODE_OPACITY
outColor.a *= NODE_OPACITY;
#endif
}`
},
pointsBasic: {
vertexShader: `#version 450
layout(location = 0) in vec3 position;
NODE_HEADER_ATTRIBUTES
NODE_HEADER_UNIFORMS
layout(set = 0, binding = 0) uniform ModelUniforms {
mat4 modelMatrix;
mat4 modelViewMatrix;
} modelUniforms;
layout(set = 0, binding = 1) uniform CameraUniforms {
mat4 projectionMatrix;
mat4 viewMatrix;
} cameraUniforms;
void main(){
NODE_BODY_ATTRIBUTES
gl_Position = cameraUniforms.projectionMatrix * modelUniforms.modelViewMatrix * vec4( position, 1.0 );
}`,
fragmentShader: `#version 450
NODE_HEADER_ATTRIBUTES
NODE_HEADER_UNIFORMS
layout(location = 0) out vec4 outColor;
void main() {
outColor = vec4( 1.0, 1.0, 1.0, 1.0 );
#ifdef NODE_COLOR
outColor = NODE_COLOR;
#endif
#ifdef NODE_OPACITY
outColor.a = NODE_OPACITY;
#endif
}`
},
lineBasic: {
vertexShader: `#version 450
layout(location = 0) in vec3 position;
NODE_HEADER_ATTRIBUTES
NODE_HEADER_UNIFORMS
layout(set = 0, binding = 0) uniform ModelUniforms {
mat4 modelMatrix;
mat4 modelViewMatrix;
} modelUniforms;
layout(set = 0, binding = 1) uniform CameraUniforms {
mat4 projectionMatrix;
mat4 viewMatrix;
} cameraUniforms;
void main(){
NODE_BODY_ATTRIBUTES
gl_Position = cameraUniforms.projectionMatrix * modelUniforms.modelViewMatrix * vec4( position, 1.0 );
}`,
fragmentShader: `#version 450
NODE_HEADER_ATTRIBUTES
NODE_HEADER_UNIFORMS
layout(location = 0) out vec4 outColor;
void main() {
outColor = vec4( 1.0, 1.0, 1.0, 1.0 );
#ifdef NODE_COLOR
outColor = NODE_COLOR;
#endif
#ifdef NODE_OPACITY
outColor.a = NODE_OPACITY;
#endif
}`
}
};
export default ShaderLib;