添加体积阴影和光照:统一与Unity版本一致
This commit is contained in:
13
main.cpp
13
main.cpp
@@ -290,7 +290,7 @@ int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLi
|
||||
DirectX::XMFLOAT4X4 invViewProjMat;
|
||||
DirectX::XMStoreFloat4x4(&invViewProjMat, invViewProj);
|
||||
|
||||
float volumeCBData[32];
|
||||
float volumeCBData[36];
|
||||
memcpy(volumeCBData, &invViewProjMat, sizeof(float) * 16);
|
||||
volumeCBData[16] = -10.0f;
|
||||
volumeCBData[17] = 73.0f;
|
||||
@@ -303,9 +303,16 @@ 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] = 2000;
|
||||
volumeCBData[27] = 2000.0f; // MaxSteps as float
|
||||
volumeCBData[28] = timeSinceAppStartInSecond * 0.3f; // RotationY
|
||||
UpdateConstantBuffer(volumeCB, volumeCBData, sizeof(float) * 29);
|
||||
volumeCBData[29] = 0.0f; // Pad0
|
||||
volumeCBData[30] = 0.0f; // Pad1
|
||||
volumeCBData[31] = 0.0f; // Pad2
|
||||
volumeCBData[32] = 0.5f; // LightDir X
|
||||
volumeCBData[33] = 0.8f; // LightDir Y
|
||||
volumeCBData[34] = 0.3f; // LightDir Z
|
||||
volumeCBData[35] = 8.0f; // LightSamples as float
|
||||
UpdateConstantBuffer(volumeCB, volumeCBData, sizeof(float) * 36);
|
||||
if (frameCount == 1) {
|
||||
printf("Volume BBox: [%.2f, %.2f, %.2f] - [%.2f, %.2f, %.2f]\n",
|
||||
volumeCBData[20], volumeCBData[21], volumeCBData[22],
|
||||
|
||||
Reference in New Issue
Block a user