Pārlūkot izejas kodu

Added .obj support + minor crash fixes (#18651)

* Added .obj support + minor fixes

Signed-off-by: moudgils <[email protected]>

* Minor whitespace issue

Signed-off-by: moudgils <[email protected]>

---------

Signed-off-by: moudgils <[email protected]>
moudgils 5 mēneši atpakaļ
vecāks
revīzija
8efb37ce3a

+ 12 - 9
Gems/LyShine/Code/Source/LyShinePass.cpp

@@ -118,18 +118,21 @@ namespace LyShine
     {
         // Add a pass that renders to the specified texture
         AZ::RPI::PassSystemInterface* passSystem = AZ::RPI::PassSystemInterface::Get();
-        auto passName = attachmentImage->GetRHIImage()->GetName(); // Use attachment name (but not attachment id) as pass name so the pass can be found by GetRttPass() function
-        AZ::RPI::Ptr<RttChildPass> rttChildPass = azrtti_cast<RttChildPass*>(passSystem->CreatePassFromTemplate(AZ::Name("RttChildPassTemplate"), passName).get());
-        AZ_Assert(rttChildPass, "[LyShinePass] Unable to create a RttChildPass.");
+        if (attachmentImage)
+        {
+            auto passName = attachmentImage->GetRHIImage()->GetName(); // Use attachment name (but not attachment id) as pass name so the pass can be found by GetRttPass() function
+            AZ::RPI::Ptr<RttChildPass> rttChildPass = azrtti_cast<RttChildPass*>(passSystem->CreatePassFromTemplate(AZ::Name("RttChildPassTemplate"), passName).get());
+            AZ_Assert(rttChildPass, "[LyShinePass] Unable to create a RttChildPass.");
 
-        // Store the info needed to attach to slots and set up frame graph dependencies
-        rttChildPass->m_attachmentImage = attachmentImage;
-        rttChildPass->m_attachmentImageDependencies = attachmentImageDependencies;
+            // Store the info needed to attach to slots and set up frame graph dependencies
+            rttChildPass->m_attachmentImage = attachmentImage;
+            rttChildPass->m_attachmentImageDependencies = attachmentImageDependencies;
 
-        // Disable by default, the RenderGraph will enable it when render to render target
-        rttChildPass->SetEnabled(false);
+            // Disable by default, the RenderGraph will enable it when render to render target
+            rttChildPass->SetEnabled(false);
 
-        AddChild(rttChildPass);
+            AddChild(rttChildPass);
+        }
     }
 
     void LyShinePass::AddUiCanvasChildPass(LyShine::AttachmentImagesAndDependencies AttachmentImagesAndDependencies)

+ 5 - 2
Gems/LyShine/Code/Source/RenderGraph.cpp

@@ -1046,8 +1046,11 @@ namespace LyShine
                         attachmentImages.emplace_back(childRenderTargetRenderNode->GetRenderTarget());
                     }
                 }
-
-                attachmentImagesAndDependencies.emplace_back(AttachmentImageAndDependentsPair(renderTargetRenderNode->GetRenderTarget(), attachmentImages));
+                if (renderTargetRenderNode->GetRenderTarget())
+                {
+                    attachmentImagesAndDependencies.emplace_back(
+                        AttachmentImageAndDependentsPair(renderTargetRenderNode->GetRenderTarget(), attachmentImages));
+                }
             }
         }
     }

+ 2 - 1
Registry/sceneassetimporter.setreg

@@ -14,7 +14,8 @@
                     ".usd",
                     ".usda",
                     ".usdz",
-                    ".usdc"
+                    ".usdc",
+                    ".obj"
                 ]
             },
             "MaterialConverter":