From f3fd9f813e40331b78e30a66d6dc8aec060074d4 Mon Sep 17 00:00:00 2001 From: ssdfasd <2156608475@qq.com> Date: Wed, 11 Mar 2026 22:34:55 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E6=B8=B2=E6=9F=93=E5=8F=82?= =?UTF-8?q?=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - tmin 从 0.1 改为 0.01(相机近平面) - MaxSteps 从 128 增加到 500 - DensityScale 从 0.01 调整到 0.05 - 相机位置调整到 z=-800 --- Res/Shader/volume.hlsl | 2 +- main.cpp | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Res/Shader/volume.hlsl b/Res/Shader/volume.hlsl index 30ef62ea..1bd1e975 100644 --- a/Res/Shader/volume.hlsl +++ b/Res/Shader/volume.hlsl @@ -112,7 +112,7 @@ float4 MainPS(PSInput input) : SV_TARGET { float3 rayDir = normalize(input.worldPos - _CameraPos); - float tmin = 0.1; + float tmin = 0.01; float tmax = 1000.0; NanoVolume volume; diff --git a/main.cpp b/main.cpp index 102a634c..31aab440 100644 --- a/main.cpp +++ b/main.cpp @@ -176,7 +176,7 @@ int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLi DirectX::XMMATRIX projectionMatrix=DirectX::XMMatrixPerspectiveFovLH( (45.0f*3.141592f)/180.0f,1280.0f/720.0f,0.1f,1000.0f); DirectX::XMMATRIX viewMatrix = DirectX::XMMatrixLookAtLH( - DirectX::XMVectorSet(-10.0f, 73.0f, -600.0f, 1.0f), + DirectX::XMVectorSet(-10.0f, 73.0f, -800.0f, 1.0f), DirectX::XMVectorSet(-10.0f, 73.0f, 0.0f, 1.0f), DirectX::XMVectorSet(0.0f, 1.0f, 0.0f, 1.0f)); DirectX::XMMATRIX modelMatrix = DirectX::XMMatrixTranslation(0.0f,0.0f,5.0f); @@ -294,8 +294,8 @@ int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLi memcpy(volumeCBData, &invViewProjMat, sizeof(float) * 16); volumeCBData[16] = -10.0f; volumeCBData[17] = 73.0f; - volumeCBData[18] = -600.0f; - volumeCBData[19] = 0.01f; // DensityScale + volumeCBData[18] = -800.0f; + volumeCBData[19] = 0.05f; // DensityScale volumeCBData[20] = (float)nanoVDBData.worldBBox[0]; volumeCBData[21] = (float)nanoVDBData.worldBBox[1]; volumeCBData[22] = (float)nanoVDBData.worldBBox[2]; @@ -303,7 +303,7 @@ int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLi volumeCBData[24] = (float)nanoVDBData.worldBBox[3]; volumeCBData[25] = (float)nanoVDBData.worldBBox[4]; volumeCBData[26] = (float)nanoVDBData.worldBBox[5]; - volumeCBData[27] = 128; + volumeCBData[27] = 500; UpdateConstantBuffer(volumeCB, volumeCBData, sizeof(float) * 28); if (frameCount == 1) { printf("Volume BBox: [%.2f, %.2f, %.2f] - [%.2f, %.2f, %.2f]\n",