From 412334cf74d54946f5f2385793d2178bc3092fdd Mon Sep 17 00:00:00 2001 From: ssdfasd <2156608475@qq.com> Date: Wed, 11 Mar 2026 22:17:49 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BD=93=E7=A7=AF=E4=BA=91?= =?UTF-8?q?=E8=A2=AB=E5=88=87=E5=89=B2=E9=97=AE=E9=A2=98=EF=BC=9A=E7=A7=BB?= =?UTF-8?q?=E9=99=A4=E8=BE=B9=E7=95=8C=E6=A1=86=E9=99=90=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 问题:之前的 intersectBox 限制了射线采样范围, 导致靠近相机的一侧云被切掉 修复:移除边界框检测,直接使用相机裁剪平面 [0.1, 1000] 让 HDDA 树遍历器自己处理空区域 效果:体积云渲染完整,不再有切割感 --- Res/Shader/volume.hlsl | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/Res/Shader/volume.hlsl b/Res/Shader/volume.hlsl index 82b618a2..30ef62ea 100644 --- a/Res/Shader/volume.hlsl +++ b/Res/Shader/volume.hlsl @@ -112,12 +112,8 @@ float4 MainPS(PSInput input) : SV_TARGET { float3 rayDir = normalize(input.worldPos - _CameraPos); - float tmin, tmax; - if (!intersectBox(_CameraPos, rayDir, _BBoxMin, _BBoxMax, tmin, tmax)) { - return float4(0, 0, 0, 0); - } - - tmin = max(0, tmin); + float tmin = 0.1; + float tmax = 1000.0; NanoVolume volume; initVolume(volume);