|
|
@@ -8,7 +8,7 @@
|
|
|
|
|
|
struct IShader {
|
|
|
virtual ~IShader() {};
|
|
|
- virtual Vector3 vertex(Vector3 &vertex, Matrix4 &MVP, float intens) = 0;
|
|
|
+ virtual Vector3 vertex(Vector3 &vertex, Matrix4 &MVP, float intens=0) = 0;
|
|
|
virtual bool fragment(Vector3 &bari, Vector3 &color, float &depth, Vector3 &zVerts) = 0;
|
|
|
};
|
|
|
|
|
|
@@ -21,26 +21,24 @@ struct FlatShader : public IShader {
|
|
|
return MVP.matMultVec(vertex);
|
|
|
}
|
|
|
|
|
|
- virtual bool fragment(Vector3 &lambdas, Vector3 &color, float &depth, Vector3 &zVerts){
|
|
|
+ virtual bool fragment(Vector3 &bari, Vector3 &color, float &depth, Vector3 &zVerts){
|
|
|
color = rgb*intensity;
|
|
|
- depth = lambdas.dotProduct(zVerts);
|
|
|
+ depth = bari.dotProduct(zVerts);
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
};
|
|
|
|
|
|
-struct GourardShader : public IShader {
|
|
|
- float intensity;
|
|
|
+struct GouraudShader : public IShader {
|
|
|
+ Vector3 varying_intensity;
|
|
|
Vector3 rgb{255,255,255};
|
|
|
|
|
|
- virtual Vector3 vertex(Vector3 &vertex, Matrix4 &MVP, float intens){
|
|
|
- intensity = intens;
|
|
|
+ virtual Vector3 vertex(Vector3 &vertex, Matrix4 &MVP,float intens =0){
|
|
|
return MVP.matMultVec(vertex);
|
|
|
}
|
|
|
|
|
|
- virtual bool fragment(Vector3 &lambdas, Vector3 &color, float &depth, Vector3 &zVerts){
|
|
|
- color = rgb*intensity;
|
|
|
- depth = lambdas.dotProduct(zVerts);
|
|
|
+ virtual bool fragment(Vector3 &bari, Vector3 &color, float &depth, Vector3 &zVerts){
|
|
|
+ depth = bari.dotProduct(zVerts);
|
|
|
return false;
|
|
|
}
|
|
|
|