修渲染两处:透明段剔除背面(闭合体正反面乱序 over 混合=深度错乱,单面玻璃 UE/Unity 语义);prefilter mip0 128→256(roughness 0 镜面反射块状马赛克)
This commit is contained in:
@@ -32,7 +32,9 @@ namespace Engine
|
|||||||
{
|
{
|
||||||
constexpr u32 kFaceCount = 6;
|
constexpr u32 kFaceCount = 6;
|
||||||
constexpr u32 kIrradianceFaceSize = 32; // 漫反射辐照度面边长(低频)
|
constexpr u32 kIrradianceFaceSize = 32; // 漫反射辐照度面边长(低频)
|
||||||
constexpr u32 kPrefilterFaceSize = 128; // pre-filter 面边长(mip0)
|
// pre-filter 面边长(mip0):roughness→0 的镜面反射采 mip0,
|
||||||
|
// 128²/面放大到全屏 = 块状马赛克;256 = 无 SSR 时的清晰度底线
|
||||||
|
constexpr u32 kPrefilterFaceSize = 256;
|
||||||
constexpr u32 kPrefilterMips = 5; // mip 分级 roughness 数
|
constexpr u32 kPrefilterMips = 5; // mip 分级 roughness 数
|
||||||
constexpr u32 kBrdfLutSize = 128; // BRDF LUT 边长
|
constexpr u32 kBrdfLutSize = 128; // BRDF LUT 边长
|
||||||
constexpr u32 kGroupSize = 8; // compute local_size(shader 同步)
|
constexpr u32 kGroupSize = 8; // compute local_size(shader 同步)
|
||||||
|
|||||||
@@ -279,6 +279,11 @@ namespace Engine::Passes
|
|||||||
// frag 仍写 gl_FragDepth 的时期做的(禁 early-Z),归因存疑;
|
// frag 仍写 gl_FragDepth 的时期做的(禁 early-Z),归因存疑;
|
||||||
// gl_FragDepth 已删除,FALSE 若复现病态再另行隔离。
|
// gl_FragDepth 已删除,FALSE 若复现病态再另行隔离。
|
||||||
cmd.setDepthWriteEnable(VK_FALSE);
|
cmd.setDepthWriteEnable(VK_FALSE);
|
||||||
|
// 单面玻璃:透明段剔除背面。不透明段 cullNone + depthWrite
|
||||||
|
// 无所谓(深度裁决),透明段 cullNone 会让闭合体(cube)的
|
||||||
|
// 正反面片按 mesh 顺序乱序 over 混合 = "深度错乱";cull back
|
||||||
|
// 每像素至多一面。双面透明(树叶卡片)将来加材质开关
|
||||||
|
cmd.setCullMode(vk::CullModeFlagBits::eBack);
|
||||||
|
|
||||||
vk::ColorBlendEquationEXT premul;
|
vk::ColorBlendEquationEXT premul;
|
||||||
premul.setSrcColorBlendFactor(vk::BlendFactor::eSrcAlpha)
|
premul.setSrcColorBlendFactor(vk::BlendFactor::eSrcAlpha)
|
||||||
|
|||||||
Reference in New Issue
Block a user