You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
147 lines
2.0 KiB
147 lines
2.0 KiB
const ShaderLib = {
|
|
|
|
common: {
|
|
|
|
vertexShader:
|
|
`#version 450
|
|
|
|
NODE_HEADER_ATTRIBUTES
|
|
NODE_HEADER_UNIFORMS
|
|
NODE_HEADER_VARYS
|
|
|
|
void main(){
|
|
|
|
NODE_BODY_VARYS
|
|
NODE_BODY_VARS
|
|
|
|
gl_Position = NODE_MVP;
|
|
|
|
}`,
|
|
|
|
fragmentShader:
|
|
`#version 450
|
|
|
|
NODE_HEADER_ATTRIBUTES
|
|
NODE_HEADER_UNIFORMS
|
|
NODE_HEADER_VARYS
|
|
|
|
layout(location = 0) out vec4 outColor;
|
|
|
|
void main() {
|
|
|
|
NODE_BODY_VARS
|
|
|
|
MaterialDiffuseColor = vec4( 1.0 );
|
|
|
|
#ifdef NODE_COLOR
|
|
|
|
NODE_CODE_COLOR
|
|
|
|
MaterialDiffuseColor = NODE_COLOR;
|
|
|
|
#endif
|
|
|
|
#ifdef NODE_OPACITY
|
|
|
|
NODE_CODE_OPACITY
|
|
|
|
MaterialDiffuseColor.a *= NODE_OPACITY;
|
|
|
|
#endif
|
|
|
|
#ifdef NODE_ALPHA_TEST
|
|
|
|
if ( MaterialDiffuseColor.a < NODE_ALPHA_TEST ) discard;
|
|
|
|
#endif
|
|
|
|
#ifdef NODE_LIGHT
|
|
|
|
NODE_CODE_LIGHT
|
|
|
|
outColor.rgb = NODE_LIGHT;
|
|
outColor.a = MaterialDiffuseColor.a;
|
|
|
|
#else
|
|
|
|
outColor = MaterialDiffuseColor;
|
|
|
|
#endif
|
|
|
|
}`
|
|
|
|
},
|
|
|
|
phong: {
|
|
|
|
vertexShader:
|
|
`#version 450
|
|
|
|
NODE_HEADER_ATTRIBUTES
|
|
NODE_HEADER_UNIFORMS
|
|
NODE_HEADER_VARYS
|
|
|
|
void main(){
|
|
|
|
NODE_BODY_VARYS
|
|
NODE_BODY_VARS
|
|
|
|
gl_Position = NODE_MVP;
|
|
|
|
}`,
|
|
|
|
fragmentShader:
|
|
`#version 450
|
|
|
|
NODE_HEADER_ATTRIBUTES
|
|
NODE_HEADER_UNIFORMS
|
|
NODE_HEADER_VARYS
|
|
|
|
layout(location = 0) out vec4 outColor;
|
|
|
|
void main() {
|
|
|
|
NODE_BODY_VARS
|
|
|
|
MaterialDiffuseColor = vec4( 1.0 );
|
|
MaterialSpecularColor = vec3( 1.0 );
|
|
MaterialSpecularShininess = 30.0;
|
|
|
|
NODE_CODE_COLOR
|
|
MaterialDiffuseColor = NODE_COLOR;
|
|
|
|
NODE_CODE_OPACITY
|
|
MaterialDiffuseColor.a *= NODE_OPACITY;
|
|
|
|
#ifdef NODE_ALPHA_TEST
|
|
|
|
if ( MaterialDiffuseColor.a < NODE_ALPHA_TEST ) discard;
|
|
|
|
#endif
|
|
|
|
NODE_CODE_SPECULAR
|
|
MaterialSpecularColor = NODE_SPECULAR;
|
|
|
|
NODE_CODE_SHININESS
|
|
MaterialSpecularShininess = NODE_SHININESS;
|
|
|
|
#ifdef NODE_LIGHT
|
|
|
|
NODE_CODE_LIGHT
|
|
|
|
outColor.rgb = NODE_LIGHT;
|
|
outColor.a = MaterialDiffuseColor.a;
|
|
|
|
#else
|
|
|
|
outColor = MaterialDiffuseColor;
|
|
|
|
#endif
|
|
|
|
}`
|
|
|
|
}
|
|
|
|
};
|
|
|
|
export default ShaderLib;
|
|
|