Solution

Files changed (1) hide show
  1. lab4-shading/shading.frag +4 -1
lab4-shading/shading.frag CHANGED
@@ -90,11 +90,14 @@ vec3 calculateDirectIllumiunation(vec3 wo, vec3 n, vec3 base_color)
90
90
  float denominator = 4.0 * clamp(ndotwo * ndotwi, 0.0001, 1.0);
91
91
  float brdf = D * F * G / denominator;
92
92
 
93
- return brdf * dot(n, wi) * Li;
94
93
 
95
94
  ///////////////////////////////////////////////////////////////////////////
96
95
  // Task 3 - Make your shader respect the parameters of our material model.
97
96
  ///////////////////////////////////////////////////////////////////////////
97
+ vec3 dielectric_term = brdf * ndotwi * Li + (1.0 - F) * diffuse_term;
98
+ vec3 metal_term = brdf * base_color * ndotwi * Li;
99
+ vec3 microfacet_term = material_metalness * metal_term + (1.0 - material_metalness) * dielectric_term;
100
+ direct_illum = microfacet_term;
98
101
 
99
102
  return direct_illum;
100
103
  }