physical_fragment.glsl 857 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. //
  2. // Physical material fragment shader
  3. //
  4. // Inputs from vertex shader
  5. in vec4 Position; // Vertex position in camera coordinates.
  6. in vec3 Normal; // Vertex normal in camera coordinates.
  7. in vec3 CamDir; // Direction from vertex to camera
  8. in vec2 FragTexcoord;
  9. // Material parameters uniform array
  10. uniform vec4 Material[3];
  11. // Macros to access elements inside the Material array
  12. #define uBaseColor Material[0]
  13. #define uEmissiveColor Material[1]
  14. #define uMetallicFactor Material[2].x
  15. #define uRoughnessFactor Material[2].y
  16. #include <lights>
  17. // Final fragment color
  18. out vec4 FragColor;
  19. void main() {
  20. // Inverts the fragment normal if not FrontFacing
  21. vec3 fragNormal = Normal;
  22. if (!gl_FrontFacing) {
  23. fragNormal = -fragNormal;
  24. }
  25. // Final fragment color
  26. FragColor = uBaseColor;
  27. }