Optimize StaticModel draw into SDF and SurfaceAtlas if SDF texture is unused

This commit is contained in:
Wojtek Figat
2024-08-09 18:26:16 +02:00
parent 7ca45e1f54
commit 43afa76e60

View File

@@ -324,13 +324,13 @@ void StaticModel::Draw(RenderContext& renderContext)
return; return;
if (renderContext.View.Pass == DrawPass::GlobalSDF) if (renderContext.View.Pass == DrawPass::GlobalSDF)
{ {
if (EnumHasAnyFlags(DrawModes, DrawPass::GlobalSDF)) if (EnumHasAnyFlags(DrawModes, DrawPass::GlobalSDF) && Model->SDF.Texture)
GlobalSignDistanceFieldPass::Instance()->RasterizeModelSDF(this, Model->SDF, _transform, _box); GlobalSignDistanceFieldPass::Instance()->RasterizeModelSDF(this, Model->SDF, _transform, _box);
return; return;
} }
if (renderContext.View.Pass == DrawPass::GlobalSurfaceAtlas) if (renderContext.View.Pass == DrawPass::GlobalSurfaceAtlas)
{ {
if (EnumHasAnyFlags(DrawModes, DrawPass::GlobalSurfaceAtlas)) if (EnumHasAnyFlags(DrawModes, DrawPass::GlobalSurfaceAtlas) && Model->SDF.Texture)
GlobalSurfaceAtlasPass::Instance()->RasterizeActor(this, this, _sphere, _transform, Model->LODs.Last().GetBox()); GlobalSurfaceAtlasPass::Instance()->RasterizeActor(this, this, _sphere, _transform, Model->LODs.Last().GetBox());
return; return;
} }