standard_fragment.glsl 941 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. //
  2. // Fragment Shader template
  3. //
  4. #include <material>
  5. // Inputs from Vertex shader
  6. in vec3 ColorFrontAmbdiff;
  7. in vec3 ColorFrontSpec;
  8. in vec3 ColorBackAmbdiff;
  9. in vec3 ColorBackSpec;
  10. in vec2 FragTexcoord;
  11. // Output
  12. out vec4 FragColor;
  13. void main() {
  14. // Mix material color with textures colors
  15. vec4 texMixed = vec4(1);
  16. vec4 texColor;
  17. #if MAT_TEXTURES==1
  18. MIX_TEXTURE(0)
  19. #elif MAT_TEXTURES==2
  20. MIX_TEXTURE(0)
  21. MIX_TEXTURE(1)
  22. #elif MAT_TEXTURES==3
  23. MIX_TEXTURE(0)
  24. MIX_TEXTURE(1)
  25. MIX_TEXTURE(2)
  26. #endif
  27. vec4 colorAmbDiff;
  28. vec4 colorSpec;
  29. if (gl_FrontFacing) {
  30. colorAmbDiff = vec4(ColorFrontAmbdiff, MatOpacity);
  31. colorSpec = vec4(ColorFrontSpec, 0);
  32. } else {
  33. colorAmbDiff = vec4(ColorBackAmbdiff, MatOpacity);
  34. colorSpec = vec4(ColorBackSpec, 0);
  35. }
  36. FragColor = min(colorAmbDiff * texMixed + colorSpec, vec4(1));
  37. }