shader.h 967 B

12345678910111213141516171819202122232425262728293031323334353637
  1. #ifndef SHADER_H
  2. #define SHADER_H
  3. #include "vector3.h"
  4. #include "matrix.h"
  5. struct IShader {
  6. virtual ~IShader() {};
  7. virtual Vector3 vertex(Vector3 &vertex, Matrix4 &MVP) = 0;
  8. virtual bool fragment(Vector3 &vertex) = 0;
  9. };
  10. struct FlatShader : public IShader {
  11. virtual Vector3 vertex(Vector3 &vertex, Matrix4 &MVP){
  12. return MVP.matMultVec(vertex);
  13. }
  14. virtual bool fragment(Vector3 &barCoordinates){
  15. return false;
  16. }
  17. };
  18. #endif
  19. // //View matrix transform
  20. // Vector3 v0 = viewMatrix.matMultVec((*vertices)[f.x-1]); //-1 because .obj file starts face count
  21. // Vector3 v1 = viewMatrix.matMultVec((*vertices)[f.y-1]); // from 1. Should probably fix this
  22. // Vector3 v2 = viewMatrix.matMultVec((*vertices)[f.z-1]); // At some point
  23. // // Projection matrix transformation
  24. // v0 = projectionMatrix.matMultVec(v0);
  25. // v1 = projectionMatrix.matMultVec(v1);
  26. // v2 = projectionMatrix.matMultVec(v2);