three
Version:
JavaScript 3D library
147 lines (97 loc) • 2.63 kB
JavaScript
const ShaderLib = {
meshBasic: {
vertexShader: `
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: `
NODE_HEADER_ATTRIBUTES
NODE_HEADER_UNIFORMS
layout(location = 0) out vec4 outColor;
void main() {
outColor = vec4( 1.0, 1.0, 1.0, 1.0 );
outColor = NODE_COLOR;
outColor.a *= NODE_OPACITY;
}`
},
pointsBasic: {
vertexShader: `
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: `
NODE_HEADER_ATTRIBUTES
NODE_HEADER_UNIFORMS
layout(location = 0) out vec4 outColor;
void main() {
outColor = vec4( 1.0, 1.0, 1.0, 1.0 );
outColor = NODE_COLOR;
outColor.a = NODE_OPACITY;
}`
},
lineBasic: {
vertexShader: `
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: `
NODE_HEADER_ATTRIBUTES
NODE_HEADER_UNIFORMS
layout(location = 0) out vec4 outColor;
void main() {
outColor = vec4( 1.0, 1.0, 1.0, 1.0 );
outColor = NODE_COLOR;
outColor.a = NODE_OPACITY;
}`
}
};
export default ShaderLib;