Explorar el Código

Merge pull request #216 from aws-lumberyard-dev/Atom/mriegger/DirFix

Fix for directional light not having shadows in editor
mrieggeramzn hace 4 años
padre
commit
b8861cd575

+ 2 - 0
Gems/Atom/Feature/Common/Code/Source/CoreLights/DirectionalLightFeatureProcessor.cpp

@@ -1238,6 +1238,8 @@ namespace AZ
 
         void DirectionalLightFeatureProcessor::SetFilterParameterToPass(LightHandle handle, const RPI::View* cameraView)
         {
+            AZ_ATOM_PROFILE_FUNCTION("DirectionalLightFeatureProcessor", "DirectionalLightFeatureProcessor::SetFilterParameterToPass");
+
             if (handle != m_shadowingLightHandle)
             {
                 return;

+ 8 - 3
Gems/AtomLyIntegration/CommonFeatures/Code/Source/CoreLights/DirectionalLightComponentController.cpp

@@ -19,6 +19,9 @@
 #include <AzCore/Component/TransformBus.h>
 #include <AzCore/Serialization/SerializeContext.h>
 #include <AzCore/std/containers/vector.h>
+#include <Atom/RPI.Public/ViewportContext.h>
+#include <Atom/RPI.Public/ViewportContextBus.h>
+#include <Atom/RPI.Public/ViewProviderBus.h>
 
 namespace AZ
 {
@@ -586,9 +589,11 @@ namespace AZ
             }
             else
             {
-                Camera::ActiveCameraRequestBus::BroadcastResult(
-                    cameraTransform,
-                    &Camera::ActiveCameraRequestBus::Events::GetActiveCameraTransform);
+                if (const auto& viewportContext = AZ::Interface<AZ::RPI::ViewportContextRequestsInterface>::Get()->GetDefaultViewportContext())
+                {
+                    cameraTransform = viewportContext->GetCameraTransform();
+                }
+
             }
             if (cameraTransform == m_lastCameraTransform)
             {