From 1fc26a63a71e5627bf146d2704ab41d6116a8507 Mon Sep 17 00:00:00 2001 From: Wojtek Figat Date: Mon, 13 Jun 2022 00:50:34 +0200 Subject: [PATCH] Update gi branch changes to large worlds --- Content/Editor/Camera/M_Camera.flax | 4 +- .../DebugMaterials/SingleColor/Surface.flax | 4 +- Content/Editor/DefaultFontMaterial.flax | 4 +- Content/Editor/Gizmo/Material.flax | 4 +- Content/Editor/Gizmo/MaterialWire.flax | 4 +- .../Gizmo/SelectionOutlineMaterial.flax | 2 +- Content/Editor/Highlight Material.flax | 4 +- Content/Editor/Icons/IconsMaterial.flax | 4 +- .../Particles/Particle Material Color.flax | 4 +- Content/Editor/Particles/Smoke Material.flax | 4 +- Content/Engine/DefaultDeformableMaterial.flax | 2 +- Content/Engine/DefaultMaterial.flax | 4 +- Content/Engine/DefaultTerrainMaterial.flax | 2 +- Content/Engine/SingleColorMaterial.flax | 4 +- Content/Engine/SkyboxMaterial.flax | 4 +- .../GI/DynamicDiffuseGlobalIllumination.cpp | 40 +++++++++---------- .../GI/DynamicDiffuseGlobalIllumination.h | 8 ++-- 17 files changed, 51 insertions(+), 51 deletions(-) diff --git a/Content/Editor/Camera/M_Camera.flax b/Content/Editor/Camera/M_Camera.flax index b11c1331e..f43020380 100644 --- a/Content/Editor/Camera/M_Camera.flax +++ b/Content/Editor/Camera/M_Camera.flax @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:38a03c2e201ff0901b27bd48186fbe1331e445218a605346f914630bb0a2bd78 -size 30340 +oid sha256:3e5eecda3ca7e8614b56a674acab1e68a319aeff6ad4efc23c6350b3ed5a7ce4 +size 29740 diff --git a/Content/Editor/DebugMaterials/SingleColor/Surface.flax b/Content/Editor/DebugMaterials/SingleColor/Surface.flax index 9f1460ca1..eaebf22dd 100644 --- a/Content/Editor/DebugMaterials/SingleColor/Surface.flax +++ b/Content/Editor/DebugMaterials/SingleColor/Surface.flax @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:089813b532167491f17f8074125c06c35810194edf4bd791a6446638590804e3 -size 30236 +oid sha256:3f10decca71d66140c7ed4ed8bdd197c0c99948a8f6dfb4bd96b6e592c2cd90a +size 29636 diff --git a/Content/Editor/DefaultFontMaterial.flax b/Content/Editor/DefaultFontMaterial.flax index 451084abd..64d4b32ef 100644 --- a/Content/Editor/DefaultFontMaterial.flax +++ b/Content/Editor/DefaultFontMaterial.flax @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:424176ef59b8ef62099fe79ee89eb5db70b6fe937342da171a6081e76105e9ba -size 30415 +oid sha256:14c7aa6f518f8e19e1dff64fdd4580ff8fff6f38e29d97bed821f9fab0c5e051 +size 29815 diff --git a/Content/Editor/Gizmo/Material.flax b/Content/Editor/Gizmo/Material.flax index 7a5a8ce24..be197ed36 100644 --- a/Content/Editor/Gizmo/Material.flax +++ b/Content/Editor/Gizmo/Material.flax @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ba37d5537a22ea1483bf13c27a4ccb218517cffe7b6960d41d992272acd49032 -size 32570 +oid sha256:ea2cb3b4c098aaa9918b60fb19ff609443829395d4fe3f382f0ea3120c06ae4d +size 31970 diff --git a/Content/Editor/Gizmo/MaterialWire.flax b/Content/Editor/Gizmo/MaterialWire.flax index 648e5cb25..23f73cb6a 100644 --- a/Content/Editor/Gizmo/MaterialWire.flax +++ b/Content/Editor/Gizmo/MaterialWire.flax @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a76497c67dbaa7a6aa6c96147f7fc772c7e67b2c9f7d55cf1d79f79dcc149a00 -size 31783 +oid sha256:bbf3e89db589a1a8fa4310a3adc461a58efccc7c380980e03e557c0946967cd9 +size 31183 diff --git a/Content/Editor/Gizmo/SelectionOutlineMaterial.flax b/Content/Editor/Gizmo/SelectionOutlineMaterial.flax index 3eeab310f..ac19a8f33 100644 --- a/Content/Editor/Gizmo/SelectionOutlineMaterial.flax +++ b/Content/Editor/Gizmo/SelectionOutlineMaterial.flax @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:20415adad14b5a5a12a0287df8cad073ea9880f37cc8b8c0c0c1488d3fbacf02 +oid sha256:29741ab6c49bcb4ced0139b863393f87887aaa5ae75c4c55fe3279ca71f7f99e size 15899 diff --git a/Content/Editor/Highlight Material.flax b/Content/Editor/Highlight Material.flax index 02d9afe95..4ae43e508 100644 --- a/Content/Editor/Highlight Material.flax +++ b/Content/Editor/Highlight Material.flax @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b64eff61a0c30e2954d43f1afab9ac98b2e584ac772a00cb9f8179e11650827e -size 30382 +oid sha256:53e555255e324465c6d92c33a5dfa0c5c6ed9ff21c0e179ca4eb006482926f65 +size 29782 diff --git a/Content/Editor/Icons/IconsMaterial.flax b/Content/Editor/Icons/IconsMaterial.flax index abfd14d21..1722eed94 100644 --- a/Content/Editor/Icons/IconsMaterial.flax +++ b/Content/Editor/Icons/IconsMaterial.flax @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3a75aba2502ccad291ba5a3d4d65595140ee897909e4db11b6bf96a0889b5b34 -size 30310 +oid sha256:b6cfbdd620cbe28df8bb061b4bc168feabc0c76fe363e7e0736202ff81c7feb5 +size 29710 diff --git a/Content/Editor/Particles/Particle Material Color.flax b/Content/Editor/Particles/Particle Material Color.flax index 4ebc4703f..9b9ad8b51 100644 --- a/Content/Editor/Particles/Particle Material Color.flax +++ b/Content/Editor/Particles/Particle Material Color.flax @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:bceb91f3bf329b2c0ba673ea43cd636a572734b44217437faf5c3a8086bd5905 -size 30753 +oid sha256:b78aec9297f8b27b3161f049f2ae54a98b826fec1c0eab7bbf4326e3966bda93 +size 30092 diff --git a/Content/Editor/Particles/Smoke Material.flax b/Content/Editor/Particles/Smoke Material.flax index 22cd545f4..c53d86c0c 100644 --- a/Content/Editor/Particles/Smoke Material.flax +++ b/Content/Editor/Particles/Smoke Material.flax @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:060b26beeb9266dbb1e6887f7aa27d2b08354cc7a7d82af20ec57793e411248b -size 36864 +oid sha256:a8de37701fbc4356db2a6abe246cdb2940cc2f60f4e8bdf72976ee557fe405b5 +size 36203 diff --git a/Content/Engine/DefaultDeformableMaterial.flax b/Content/Engine/DefaultDeformableMaterial.flax index ebcc13b03..8eddae5d3 100644 --- a/Content/Engine/DefaultDeformableMaterial.flax +++ b/Content/Engine/DefaultDeformableMaterial.flax @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0275e7ac6c6dfc7b4cdaa1a6c4bfc59f2cc6f51711cc7a2374a68a47cc89dd1e +oid sha256:240cfda8ceaab035eba4fa58511be7a20fdedc9264b54892748213351cd7f6a4 size 19131 diff --git a/Content/Engine/DefaultMaterial.flax b/Content/Engine/DefaultMaterial.flax index a2e4278eb..adbe36925 100644 --- a/Content/Engine/DefaultMaterial.flax +++ b/Content/Engine/DefaultMaterial.flax @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ba558d6a9aa4d15b8fbee093d93f3c5f02b985f2e5ee0c3a0a078cb8ae96cc96 -size 32119 +oid sha256:1a5faa0d7d64f0a79ae1a663c624237ae1591333bf50526629e3e8b965f5a228 +size 31519 diff --git a/Content/Engine/DefaultTerrainMaterial.flax b/Content/Engine/DefaultTerrainMaterial.flax index fa556a1be..e4c79a130 100644 --- a/Content/Engine/DefaultTerrainMaterial.flax +++ b/Content/Engine/DefaultTerrainMaterial.flax @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0cbced27fa189bd7db1e18a467424d665837d8cfbcaad6f1dbe4046c7c98c5e3 +oid sha256:c53325b5e71c0b022bfe762341e788d21a64791fb35001483ce85a89bb9ef25f size 23624 diff --git a/Content/Engine/SingleColorMaterial.flax b/Content/Engine/SingleColorMaterial.flax index 819344ec4..b6f051463 100644 --- a/Content/Engine/SingleColorMaterial.flax +++ b/Content/Engine/SingleColorMaterial.flax @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:130b9e13a68376279b81de1ab323998e365e010301fb99b9553d65aafa04483c -size 30437 +oid sha256:afb3137a95177ce755beb4558268e9ead85a6e1f7ff80751be283f873d85e3ad +size 29837 diff --git a/Content/Engine/SkyboxMaterial.flax b/Content/Engine/SkyboxMaterial.flax index a2039ac86..33f529e40 100644 --- a/Content/Engine/SkyboxMaterial.flax +++ b/Content/Engine/SkyboxMaterial.flax @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d0e54ecc01e5556dcc0ccd8564956b2e0ad59a843cde250be4b6bebb4a5a64fe -size 31635 +oid sha256:e4941ac11d3c828bfd919126961525baa62f11b3eb6acfc561281a1709118586 +size 31035 diff --git a/Source/Engine/Renderer/GI/DynamicDiffuseGlobalIllumination.cpp b/Source/Engine/Renderer/GI/DynamicDiffuseGlobalIllumination.cpp index 7bf9a7cfc..1ae9ee20e 100644 --- a/Source/Engine/Renderer/GI/DynamicDiffuseGlobalIllumination.cpp +++ b/Source/Engine/Renderer/GI/DynamicDiffuseGlobalIllumination.cpp @@ -46,7 +46,7 @@ PACK_STRUCT(struct Data0 GlobalSignDistanceFieldPass::ConstantsData GlobalSDF; GlobalSurfaceAtlasPass::ConstantsData GlobalSurfaceAtlas; GBufferData GBuffer; - Vector2 Padding0; + Float2 Padding0; float ResetBlend; float TemporalTime; }); @@ -54,7 +54,7 @@ PACK_STRUCT(struct Data0 PACK_STRUCT(struct Data1 { // TODO: use push constants on Vulkan or root signature data on DX12 to reduce overhead of changing single DWORD - Vector2 Padding1; + Float2 Padding1; uint32 CascadeIndex; uint32 ProbeIndexOffset; }); @@ -64,7 +64,7 @@ class DDGICustomBuffer : public RenderBuffers::CustomBuffer public: struct { - Vector3 ProbesOrigin; + Float3 ProbesOrigin; float ProbesSpacing = 0.0f; Int3 ProbeScrollOffsets; Int3 ProbeScrollDirections; @@ -72,7 +72,7 @@ public: void Clear() { - ProbesOrigin = Vector3::Zero; + ProbesOrigin = Float3::Zero; ProbeScrollOffsets = Int3::Zero; ProbeScrollDirections = Int3::Zero; ProbeScrollClear[0] = false; @@ -303,7 +303,7 @@ bool DynamicDiffuseGlobalIlluminationPass::Render(RenderContext& renderContext, const float cascadesDistanceScales[] = { 1.0f, 3.0f, 6.0f, 10.0f }; // Scales each cascade further away from the camera origin const float distanceExtent = distance / cascadesDistanceScales[cascadesCount - 1]; const float verticalRangeScale = 0.8f; // Scales the probes volume size at Y axis (horizontal aspect ratio makes the DDGI use less probes vertically to cover whole screen) - Int3 probesCounts(Vector3::Ceil(Vector3(distanceExtent, distanceExtent * verticalRangeScale, distanceExtent) / probesSpacing)); + Int3 probesCounts(Float3::Ceil(Float3(distanceExtent, distanceExtent * verticalRangeScale, distanceExtent) / probesSpacing)); const int32 maxProbeSize = Math::Max(DDGI_PROBE_RESOLUTION_IRRADIANCE, DDGI_PROBE_RESOLUTION_DISTANCE) + 2; const int32 maxTextureSize = Math::Min(GPUDevice::Instance->Limits.MaximumTexture2DSize, GPU_MAX_TEXTURE_SIZE); while (probesCounts.X * probesCounts.Y * maxProbeSize > maxTextureSize @@ -315,7 +315,7 @@ bool DynamicDiffuseGlobalIlluminationPass::Render(RenderContext& renderContext, // Initialize cascades float probesSpacings[4]; - Vector3 viewOrigins[4]; + Float3 viewOrigins[4]; for (int32 cascadeIndex = 0; cascadeIndex < cascadesCount; cascadeIndex++) { // Each cascade has higher spacing between probes @@ -324,16 +324,16 @@ bool DynamicDiffuseGlobalIlluminationPass::Render(RenderContext& renderContext, probesSpacings[cascadeIndex] = cascadeProbesSpacing; // Calculate view origin for cascade by shifting it towards the view direction to account for better view frustum coverage - Vector3 viewOrigin = renderContext.View.Position; - Vector3 viewDirection = renderContext.View.Direction; - const Vector3 probesDistance = Vector3(probesCounts) * cascadeProbesSpacing; + Float3 viewOrigin = renderContext.View.Position; + Float3 viewDirection = renderContext.View.Direction; + const Float3 probesDistance = Float3(probesCounts) * cascadeProbesSpacing; const float probesDistanceMax = probesDistance.MaxValue(); - const Vector2 viewRayHit = CollisionsHelper::LineHitsBox(viewOrigin, viewOrigin + viewDirection * (probesDistanceMax * 2.0f), viewOrigin - probesDistance, viewOrigin + probesDistance); + const Float3 viewRayHit = CollisionsHelper::LineHitsBox(viewOrigin, viewOrigin + viewDirection * (probesDistanceMax * 2.0f), viewOrigin - probesDistance, viewOrigin + probesDistance); const float viewOriginOffset = viewRayHit.Y * probesDistanceMax * 0.6f; viewOrigin += viewDirection * viewOriginOffset; const float viewOriginSnapping = cascadeProbesSpacing; - viewOrigin = Vector3::Floor(viewOrigin / viewOriginSnapping) * viewOriginSnapping; - //viewOrigin = Vector3::Zero; + viewOrigin = Float3::Floor(viewOrigin / viewOriginSnapping) * viewOriginSnapping; + //viewOrigin = Float3::Zero; viewOrigins[cascadeIndex] = viewOrigin; } @@ -383,9 +383,9 @@ bool DynamicDiffuseGlobalIlluminationPass::Render(RenderContext& renderContext, { // Clear probes PROFILE_GPU("Clear"); - context->ClearUA(ddgiData.ProbesState, Vector4::Zero); - context->ClearUA(ddgiData.ProbesIrradiance, Vector4::Zero); - context->ClearUA(ddgiData.ProbesDistance, Vector4::Zero); + context->ClearUA(ddgiData.ProbesState, Float4::Zero); + context->ClearUA(ddgiData.ProbesIrradiance, Float4::Zero); + context->ClearUA(ddgiData.ProbesDistance, Float4::Zero); } // Calculate which cascades should be updated this frame @@ -416,8 +416,8 @@ bool DynamicDiffuseGlobalIlluminationPass::Render(RenderContext& renderContext, } // Calculate the count of grid cells between the view origin and the scroll anchor - const Vector3 volumeOrigin = cascade.ProbesOrigin + Vector3(cascade.ProbeScrollOffsets) * cascade.ProbesSpacing; - const Vector3 translation = viewOrigins[cascadeIndex] - volumeOrigin; + const Float3 volumeOrigin = cascade.ProbesOrigin + Float3(cascade.ProbeScrollOffsets) * cascade.ProbesSpacing; + const Float3 translation = viewOrigins[cascadeIndex] - volumeOrigin; for (int32 axis = 0; axis < 3; axis++) { const float value = translation.Raw[axis] / cascade.ProbesSpacing; @@ -438,7 +438,7 @@ bool DynamicDiffuseGlobalIlluminationPass::Render(RenderContext& renderContext, { auto& cascade = ddgiData.Cascades[cascadeIndex]; int32 probeScrollClear = cascade.ProbeScrollClear[0] + cascade.ProbeScrollClear[1] * 2 + cascade.ProbeScrollClear[2] * 4; // Pack clear flags into bits - ddgiData.Result.Constants.ProbesOriginAndSpacing[cascadeIndex] = Vector4(cascade.ProbesOrigin, cascade.ProbesSpacing); + ddgiData.Result.Constants.ProbesOriginAndSpacing[cascadeIndex] = Float4(cascade.ProbesOrigin, cascade.ProbesSpacing); ddgiData.Result.Constants.ProbesScrollOffsets[cascadeIndex] = Int4(cascade.ProbeScrollOffsets, probeScrollClear); ddgiData.Result.Constants.ProbeScrollDirections[cascadeIndex] = Int4(cascade.ProbeScrollDirections, 0); } @@ -448,7 +448,7 @@ bool DynamicDiffuseGlobalIlluminationPass::Render(RenderContext& renderContext, ddgiData.Result.Constants.ProbeHistoryWeight = probeHistoryWeight; ddgiData.Result.Constants.IrradianceGamma = 5.0f; ddgiData.Result.Constants.IndirectLightingIntensity = indirectLightingIntensity; - ddgiData.Result.Constants.FallbackIrradiance = fallbackIrradiance.ToVector3() * fallbackIrradiance.A; + ddgiData.Result.Constants.FallbackIrradiance = fallbackIrradiance.ToFloat3() * fallbackIrradiance.A; ddgiData.Result.ProbesState = ddgiData.ProbesState->View(); ddgiData.Result.ProbesDistance = ddgiData.ProbesDistance->View(); ddgiData.Result.ProbesIrradiance = ddgiData.ProbesIrradiance->View(); @@ -627,7 +627,7 @@ bool DynamicDiffuseGlobalIlluminationPass::Render(RenderContext& renderContext, debugRenderContext.View.Pass = DrawPass::GBuffer; debugRenderContext.View.Prepare(debugRenderContext); Matrix world; - Matrix::Scaling(Vector3(0.2f), world); + Matrix::Scaling(Float3(0.2f), world); const Mesh& debugMesh = _debugModel->LODs[0].Meshes[0]; for (int32 probeIndex = 0; probeIndex < probesCountTotal; probeIndex++) debugMesh.Draw(debugRenderContext, _debugMaterial, world, StaticFlags::None, true, DrawPass::GBuffer, (float)probeIndex); diff --git a/Source/Engine/Renderer/GI/DynamicDiffuseGlobalIllumination.h b/Source/Engine/Renderer/GI/DynamicDiffuseGlobalIllumination.h index 09e6b7bd6..5162fa6dc 100644 --- a/Source/Engine/Renderer/GI/DynamicDiffuseGlobalIllumination.h +++ b/Source/Engine/Renderer/GI/DynamicDiffuseGlobalIllumination.h @@ -15,7 +15,7 @@ public: // Constant buffer data for DDGI access on a GPU. PACK_STRUCT(struct ConstantsData { - Vector4 ProbesOriginAndSpacing[4]; + Float4 ProbesOriginAndSpacing[4]; Int4 ProbesScrollOffsets[4]; Int4 ProbeScrollDirections[4]; uint32 ProbesCounts[3]; @@ -24,10 +24,10 @@ public: float ProbeHistoryWeight; float RayMaxDistance; float IndirectLightingIntensity; - Vector4 RaysRotation; - Vector3 ViewDir; + Float4 RaysRotation; + Float3 ViewDir; uint32 RaysCount; - Vector3 FallbackIrradiance; + Float3 FallbackIrradiance; float Padding0; });