Create BottomLevelAS with all MeshComponents.
- Parameters
-
| [in] | frameInfo | FrameInfo. |
| [in] | view | Component View. |
| [in] | rayTracingInstance | VulkanRayTracingInstance. |
BLAS - Storing each primitive in a geometry.
Iter all MeshComponents.
Skip if no blas build requirment.
Build BLAS.
BLAS - Storing each primitive in a geometry.
Iter all MeshComponents.
Skip if no blas build requirment.
Build BLAS.
Definition at line 204 of file RayTracingRenderer.cpp.
205 {
207
211 std::vector<VulkanRayTracing::BlasInput> allBlas;
212
216 frameInfo.m_World->ViewComponent<MeshComponent>(*view, [&](
auto e,
auto& meshComp){
217
218 meshComp.GetMesh()->GetPacks().for_each([&](const uint32_t& k, const std::shared_ptr<MeshPack>& v) {
219
220 if (v->HasBlasAccel()) return false;
221
222 auto blas = v->MeshPackToVkGeometryKHR();
223 allBlas.emplace_back(blas);
224
225 return false;
226 });
227
228 return false;
229 });
230
234 if(allBlas.empty()) return;
235
239 rayTracingInstance->BuildBLAS(
240 allBlas,
241 VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR |
242 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR
243
244 );
245 }
#define SPICES_PROFILE_ZONE