@@ -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
|
}
|