2
3
4
5
20 m_Pack->for_each([&](
const uint32_t& k,
const std::shared_ptr<MeshPack>& v) {
22 auto& stages = v->GetMaterial()->GetShaderPath(
"rchit");
26 ss <<
"Material: " << v->GetMaterial()->GetName() <<
" do not has valid rchit shader.";
28 SPICES_CORE_ERROR(ss.str())
31 if (hitGroup.find(stages[0]) == hitGroup.end())
33 hitGroup[stages[0]] =
static_cast<uint32_t>(hitGroup.size());
35 v->SetHitShaderHandle(hitGroup[stages[0]]);
39 v->SetHitShaderHandle(hitGroup[stages[0]]);
50 m_Pack = std::make_shared<scl::linked_unordered_map<uint32_t, std::shared_ptr<MeshPack>>>();
57 meshPack->OnCreatePack();
59 m_Pack->push_back(m_PackNums, meshPack);
68 return std::make_shared<Mesh>(m_Pack);
#define SPICES_PROFILE_ZONE
MeshPack Class. This class defines some basic behaves and variables. This class need to be inherited ...
Builder & AddPack(std::shared_ptr< MeshPack > meshPack)
Add pack to mesh.
uint32_t m_PackNums
The packs nums.
Builder()
Constructor Function.
std::shared_ptr< Mesh > Build() const
Build a mesh shared pointer.
Builder Class. This class helps to create a mesh.
Mesh(std::shared_ptr< scl::linked_unordered_map< uint32_t, std::shared_ptr< MeshPack > > > meshPacks)
Constructor Function. Init member variables.
void AddMaterialToHitGroup(std::unordered_map< std::string, uint32_t > &hitGroup)
Add Mesh's material to hit group.
MeshRenderer Class. This class is a wrapper of mashpack.
The container combines hashmap and list together. Used in the case that we want iter a hashmap in ord...