From a945e2c2a5ee91ba13d78e419056bd1a19a292af Mon Sep 17 00:00:00 2001 From: Wojtek Figat Date: Tue, 1 Nov 2022 01:01:22 +0100 Subject: [PATCH] Fix GlobalSDF and GlobalSurfaceAtlas drawing if disabled by user --- Source/Engine/Level/Actors/StaticModel.cpp | 6 ++++-- Source/Engine/Terrain/Terrain.cpp | 4 ++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/Source/Engine/Level/Actors/StaticModel.cpp b/Source/Engine/Level/Actors/StaticModel.cpp index 4c9cb2cce..ed81fa353 100644 --- a/Source/Engine/Level/Actors/StaticModel.cpp +++ b/Source/Engine/Level/Actors/StaticModel.cpp @@ -258,12 +258,14 @@ void StaticModel::Draw(RenderContext& renderContext) return; if (renderContext.View.Pass == DrawPass::GlobalSDF) { - GlobalSignDistanceFieldPass::Instance()->RasterizeModelSDF(this, Model->SDF, _transform, _box); + if (DrawModes & DrawPass::GlobalSDF) + GlobalSignDistanceFieldPass::Instance()->RasterizeModelSDF(this, Model->SDF, _transform, _box); return; } if (renderContext.View.Pass == DrawPass::GlobalSurfaceAtlas) { - GlobalSurfaceAtlasPass::Instance()->RasterizeActor(this, this, _sphere, _transform, Model->LODs.Last().GetBox()); + if (DrawModes & DrawPass::GlobalSurfaceAtlas) + GlobalSurfaceAtlasPass::Instance()->RasterizeActor(this, this, _sphere, _transform, Model->LODs.Last().GetBox()); return; } Matrix world; diff --git a/Source/Engine/Terrain/Terrain.cpp b/Source/Engine/Terrain/Terrain.cpp index 8c701e9d5..5d98bdbc0 100644 --- a/Source/Engine/Terrain/Terrain.cpp +++ b/Source/Engine/Terrain/Terrain.cpp @@ -509,6 +509,8 @@ void Terrain::Draw(RenderContext& renderContext) return; if (renderContext.View.Pass == DrawPass::GlobalSDF) { + if ((DrawModes & DrawPass::GlobalSDF) == 0) + return; const float chunkSize = TERRAIN_UNITS_PER_VERTEX * (float)_chunkSize; const float posToUV = 0.25f / chunkSize; Float4 localToUV(posToUV, posToUV, 0.0f, 0.0f); @@ -527,6 +529,8 @@ void Terrain::Draw(RenderContext& renderContext) } if (renderContext.View.Pass == DrawPass::GlobalSurfaceAtlas) { + if ((DrawModes & DrawPass::GlobalSurfaceAtlas) == 0) + return; for (TerrainPatch* patch : _patches) { if (!patch->Heightmap)