ソースを参照

Change Build()-> operations in RayTracingShaderTable to declarative interface

Signed-off-by: Markus Prettner <[email protected]>
Markus Prettner 2 ヶ月 前
コミット
0d4a3bd2b8

+ 5 - 5
Gem/Code/Source/Passes/RayTracingAmbientOcclusionPass.cpp

@@ -121,11 +121,11 @@ namespace AZ
                 m_rayTracingShaderTable->Init(RHI::MultiDevice::AllDevices, rayTracingBufferPools);
 
                 AZStd::shared_ptr<RHI::RayTracingShaderTableDescriptor> descriptor = AZStd::make_shared<RHI::RayTracingShaderTableDescriptor>();
-                descriptor->Build(AZ::Name("RayTracingAOShaderTable"), m_rayTracingPipelineState)
-                    ->RayGenerationRecord(AZ::Name("AoRayGen"))
-                    ->MissRecord(AZ::Name("AoMiss"))
-                    ->HitGroupRecord(AZ::Name("ClosestHitGroup"))
-                    ;
+                descriptor->m_name = Name("RayTracingAOShaderTable");
+                descriptor->m_rayTracingPipelineState = m_rayTracingPipelineState;
+                descriptor->m_rayGenerationRecord.emplace_back(Name("AoRayGen"));
+                descriptor->m_missRecords.emplace_back(Name("AoMiss"));
+                descriptor->m_hitGroupRecords.emplace_back(Name("ClosestHitGroup"));
 
                 m_rayTracingShaderTable->Build(descriptor);
             }

+ 8 - 8
Gem/Code/Source/RHI/RayTracingExampleComponent.cpp

@@ -561,14 +561,14 @@ namespace AtomSampleViewer
 
                 // update the ray tracing shader table
                 AZStd::shared_ptr<RHI::RayTracingShaderTableDescriptor> descriptor = AZStd::make_shared<RHI::RayTracingShaderTableDescriptor>();
-                descriptor->Build(AZ::Name("RayTracingExampleShaderTable"), m_rayTracingPipelineState)
-                    ->RayGenerationRecord(AZ::Name("RayGenerationShader"))
-                    ->MissRecord(AZ::Name("MissShader"))
-                    ->HitGroupRecord(AZ::Name("HitGroupGradient")) // triangle1
-                    ->HitGroupRecord(AZ::Name("HitGroupGradient")) // triangle2
-                    ->HitGroupRecord(AZ::Name("HitGroupSolid")) // triangle3
-                    ->HitGroupRecord(AZ::Name("HitGroupSolid")) // rectangle
-                    ;
+                descriptor->m_name = AZ::Name("RayTracingExampleShaderTable");
+                descriptor->m_rayTracingPipelineState = m_rayTracingPipelineState;
+                descriptor->m_rayGenerationRecord.emplace_back(AZ::Name("RayGenerationShader"));
+                descriptor->m_missRecords.emplace_back(AZ::Name("MissShader"));
+                descriptor->m_hitGroupRecords.emplace_back(AZ::Name("HitGroupGradient")); // triangle1
+                descriptor->m_hitGroupRecords.emplace_back(AZ::Name("HitGroupGradient")); // triangle2
+                descriptor->m_hitGroupRecords.emplace_back(AZ::Name("HitGroupSolid")); // triangle3
+                descriptor->m_hitGroupRecords.emplace_back(AZ::Name("HitGroupSolid")); // rectangle
 
                 m_rayTracingShaderTable->Build(descriptor);
             }