3
私は自分のBRDFアプローチが正しいかどうかを調べようとしています。物理的レンダリング:BRDFの環境光の役割
// Calculate sun BRDF color
vec3 sunBrdf = brdf(tsLightSourceDir, tsEyeDir,
tsNormal, vtsTangent, vtsBinormal,
albedo.rgb,
NdotL, NdotV,
tRoughness, tMetallic, specular);
// brdf multiplied by incoming sun radiance -> color
vec3 irradiance = sunAmbientRadiance + sunDiffuseRadiance * NdotL;
vec3 brdfColor = sunBrdf * irradiance;
// Add base ambient color
vec3 ambientColor = albedo.rgb * sunAmbientRadiance;
resultColor = ambientColor;
resultColor += brdfColor;
// Interpolate by shadow
resultColor = mix(ambientColor,
resultColor,
shadowAmount);
私の質問:環境光2倍を追加します。周囲の色を計算するときは1x、BRDFに入る光の量に1xを加算して計算します。
BRDFは私の意見では表面に届く照明の一部なので、周囲の光が必要なので、これが正しいかどうかはわかりません。しかし一方で、それはすでにアルベドの色とそれを乗算して計算され、ベースカラーとして追加されます。
何か助けがありがとう!