Kaynağa Gözat

Removed the manual enable/disable of the MSAA resolve passes since this is now handled internally by the pass classes.

Doug McDiarmid 4 yıl önce
ebeveyn
işleme
dda6fe1d6c
1 değiştirilmiş dosya ile 23 ekleme ve 44 silme
  1. 23 44
      Gem/Code/Source/MSAA_RPI_ExampleComponent.cpp

+ 23 - 44
Gem/Code/Source/MSAA_RPI_ExampleComponent.cpp

@@ -46,29 +46,6 @@ namespace AtomSampleViewer
         }
     }
 
-    void MSAA_RPI_ExampleComponent::Deactivate()
-    {
-        GetMeshFeatureProcessor()->ReleaseMesh(m_meshHandle);
-        AZ::Debug::CameraControllerRequestBus::Event(GetCameraEntityId(), &AZ::Debug::CameraControllerRequestBus::Events::Disable);
-        m_defaultIbl.Reset();
-
-        // clear the non-MSAA pipeline and the RPI scene
-        AZ::RPI::ShaderSystemInterface::Get()->SetSupervariantName(AZ::Name(""));
-        SampleComponentManagerRequestBus::Broadcast(&SampleComponentManagerRequests::ClearRPIScene);
-
-        AZ::Render::Bootstrap::DefaultWindowNotificationBus::Handler::BusDisconnect();
-        ExampleComponentRequestBus::Handler::BusDisconnect();
-        AZ::TickBus::Handler::BusDisconnect();
-        m_imguiSidebar.Deactivate();
-    }
-
-    void MSAA_RPI_ExampleComponent::OnModelReady(AZ::Data::Instance<AZ::RPI::Model> model)
-    {
-        AZ::Data::Asset<AZ::RPI::ModelAsset> modelAsset = model->GetModelAsset();
-        m_meshChangedHandler.Disconnect();
-        ScriptRunnerRequestBus::Broadcast(&ScriptRunnerRequests::ResumeScript);
-    }
-
     void MSAA_RPI_ExampleComponent::Activate()
     {
         m_imguiSidebar.Activate();
@@ -92,6 +69,22 @@ namespace AtomSampleViewer
         ActivateIbl();
     }
 
+    void MSAA_RPI_ExampleComponent::Deactivate()
+    {
+        GetMeshFeatureProcessor()->ReleaseMesh(m_meshHandle);
+        AZ::Debug::CameraControllerRequestBus::Event(GetCameraEntityId(), &AZ::Debug::CameraControllerRequestBus::Events::Disable);
+        m_defaultIbl.Reset();
+
+        // clear the non-MSAA pipeline and the RPI scene
+        AZ::RPI::ShaderSystemInterface::Get()->SetSupervariantName(AZ::Name(""));
+        SampleComponentManagerRequestBus::Broadcast(&SampleComponentManagerRequests::ClearRPIScene);
+
+        AZ::Render::Bootstrap::DefaultWindowNotificationBus::Handler::BusDisconnect();
+        ExampleComponentRequestBus::Handler::BusDisconnect();
+        AZ::TickBus::Handler::BusDisconnect();
+        m_imguiSidebar.Deactivate();
+    }
+
     void MSAA_RPI_ExampleComponent::ChangeRenderPipeline()
     {
         AZ::RPI::ScenePtr defaultScene = AZ::RPI::RPISystemInterface::Get()->GetDefaultScene();
@@ -147,27 +140,6 @@ namespace AtomSampleViewer
 
         // create an ImGuiActiveContextScope to ensure the ImGui context on the new pipeline's ImGui pass is activated.
         m_imguiScope = AZ::Render::ImGuiActiveContextScope::FromPass(AZ::RPI::PassHierarchyFilter({ m_samplePipeline->GetId().GetCStr(), "ImGuiPass" }));
-
-        // enable/disable resolve passes as appropriate
-        bool enableResolvePass = !isNonMsaaPipeline;
-
-        AZStd::vector<AZ::Name> resolvePassNames =
-        {
-            AZ::Name("MSAAResolveDepthPass"),
-            AZ::Name("MSAAResolveDiffusePass"),
-            AZ::Name("MSAAResolveSpecularPass"),
-            AZ::Name("MSAAResolveScatterDistancePass")
-        };
-
-        for (const auto& resolvePassName : resolvePassNames)
-        {
-            AZ::RPI::PassHierarchyFilter passFilter(resolvePassName);
-            const AZStd::vector<AZ::RPI::Pass*>& passes = AZ::RPI::PassSystemInterface::Get()->FindPasses(passFilter);
-            for (auto& pass : passes)
-            {
-                pass->SetEnabled(enableResolvePass);
-            }
-        }
     }
 
     void MSAA_RPI_ExampleComponent::ResetCamera()
@@ -227,6 +199,13 @@ namespace AtomSampleViewer
         }
     }
 
+    void MSAA_RPI_ExampleComponent::OnModelReady(AZ::Data::Instance<AZ::RPI::Model> model)
+    {
+        AZ::Data::Asset<AZ::RPI::ModelAsset> modelAsset = model->GetModelAsset();
+        m_meshChangedHandler.Disconnect();
+        ScriptRunnerRequestBus::Broadcast(&ScriptRunnerRequests::ResumeScript);
+    }
+
     void MSAA_RPI_ExampleComponent::ActivateIbl()
     {
         m_defaultIbl.Init(AZ::RPI::RPISystemInterface::Get()->GetDefaultScene().get());