@@ -351,6 +351,7 @@ Renderer::InitializationData Renderer::initSceneObjects(const SAssetBundle& mesh
351
351
352
352
constexpr uint32_t kIndicesPerTriangle = 3u ;
353
353
core::vector<CPUMeshPacker::CombinedDataOffsetTable> cdot (mdiBoundMax);
354
+ core::vector<core::aabbox3df> aabbs (mdiBoundMax);
354
355
MDICall* mdiCall = nullptr ;
355
356
core::vector<int32_t > fatIndicesForRR (maxTrisBatch*kIndicesPerTriangle );
356
357
for (const auto & asset : contents)
@@ -361,7 +362,7 @@ Renderer::InitializationData Renderer::initSceneObjects(const SAssetBundle& mesh
361
362
const auto & instanceAuxData = meta->m_instanceAuxData ;
362
363
363
364
auto meshBuffers = cpumesh->getMeshBuffers ();
364
- const uint32_t actualMdiCnt = cpump->commit (&*pmbdIt,cdot.data (),nullptr ,&*allocDataIt,meshBuffers.begin (),meshBuffers.end ());
365
+ const uint32_t actualMdiCnt = cpump->commit (&*pmbdIt,cdot.data (),aabbs. data () ,&*allocDataIt,meshBuffers.begin (),meshBuffers.end ());
365
366
allocDataIt += meshBuffers.size ();
366
367
if (actualMdiCnt==0u )
367
368
{
@@ -374,6 +375,7 @@ Renderer::InitializationData Renderer::initSceneObjects(const SAssetBundle& mesh
374
375
const auto aabbMesh = cpumesh->getBoundingBox ();
375
376
// meshbuffers
376
377
auto cdotIt = cdot.begin ();
378
+ auto aabbsIt = aabbs.begin ();
377
379
for (auto mb : meshBuffers)
378
380
{
379
381
assert (mb->getInstanceCount ()==instanceData.size ());
@@ -402,7 +404,7 @@ Renderer::InitializationData Renderer::initSceneObjects(const SAssetBundle& mesh
402
404
);
403
405
404
406
const auto thisShapeInstancesBeginIx = rrInstances.size ();
405
- const auto & batchAABB = mb-> getBoundingBox (); // TODO: replace with batch AABB
407
+ const auto & batchAABB = *aabbsIt;
406
408
for (auto auxIt=instanceAuxData.begin (); auxIt!=instanceAuxData.end (); auxIt++)
407
409
{
408
410
const auto batchInstanceGUID = cullData.size ();
@@ -460,6 +462,7 @@ Renderer::InitializationData Renderer::initSceneObjects(const SAssetBundle& mesh
460
462
for (auto j=thisShapeInstancesBeginIx; j!=rrInstances.size (); j++)
461
463
rr->AttachShape (rrInstances[j]);
462
464
cdotIt++;
465
+ aabbsIt++;
463
466
}
464
467
//
465
468
if (!mdiCall || pmbdIt->mdiParameterOffset !=mdiCall->mdiOffset +mdiCall->mdiCount )
0 commit comments