gpt4 book ai didi

opengl - 基于物理的渲染: role of ambient light in BRDF

转载 作者:行者123 更新时间:2023-12-02 02:16:27 34 4
gpt4 key购买 nike

我试图弄清楚我的 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 需要环境光,因为它是到达表面的照明的一部分。但另一方面,它已经通过将其与反照率颜色相乘来计算并添加为基色...

非常感谢任何帮助!

最佳答案

正确的公式是这样的(在我看来):

vec3 辐照度 = sunDiffuseRadiance * NdotL;

关于opengl - 基于物理的渲染: role of ambient light in BRDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42586533/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com