fix: 影子中镜面高光残留导致"影子比天空亮"
掠射角下 GGX spec 分母 (4·NdotV·NdotL) 变小,HDR 值可达 8+; 阴影只把它乘 0.3,30% 的刺眼白仍比天空亮——观感即"影子发白"。 - spec 项按 shade 重映射(0.3→0,1.0→1):光源被遮挡,其镜面像 应完全消失;diffuse 保留 0.3 作间接近似 - ShadowPass 改正面剔除渲阴影图(标准 acne 治法):封闭网格只写 背面深度,正面深度天然比 ref 大一个表面厚度,从根上消自阴影 acne;代价是单面薄片在光背面时漏写(plane 单面朝上不受影响)
This commit is contained in:
@@ -55,7 +55,10 @@ namespace Engine::Passes
|
||||
cmd.setDepthBiasEnable(VK_TRUE);
|
||||
cmd.setDepthBias(0.006f, 0.0f, 0.006f);
|
||||
cmd.setPolygonModeEXT(vk::PolygonMode::eFill);
|
||||
cmd.setCullMode(vk::CullModeFlagBits::eNone);
|
||||
// 正面剔除渲染阴影图:封闭网格只写背面深度,正面深度比
|
||||
// ref 恒大一个表面厚度 → 从根上消除自阴影 acne,bias 只需
|
||||
// 兜底数值噪声。代价:单面薄片在光背面时会漏写(可接受)
|
||||
cmd.setCullMode(vk::CullModeFlagBits::eFront);
|
||||
cmd.setFrontFace(vk::FrontFace::eCounterClockwise);
|
||||
cmd.setPrimitiveTopology(vk::PrimitiveTopology::eTriangleList);
|
||||
cmd.setPrimitiveRestartEnable(VK_FALSE);
|
||||
|
||||
Reference in New Issue
Block a user