Staging before meshlet linearization

This commit is contained in:
Dynamitos
2024-05-09 08:41:46 +02:00
parent 46a2713729
commit 7fc7ba56d4
33 changed files with 888 additions and 709 deletions
+5
View File
@@ -9,6 +9,9 @@
using namespace Seele;
std::atomic_uint64_t Material::materialIdCounter = 0;
Array<PMaterial> Material::materials;
Material::Material()
{
}
@@ -30,7 +33,9 @@ Material::Material(Gfx::PGraphics graphics,
, codeExpressions(std::move(expressions))
, parameters(std::move(parameter))
, brdf(std::move(brdf))
, materialId(materialIdCounter++)
{
materials.add(this);
}
Material::~Material()
+5
View File
@@ -22,6 +22,8 @@ public:
Gfx::PDescriptorLayout getDescriptorLayout() { return layout; }
OMaterialInstance instantiate();
const std::string& getName() const { return materialName; }
constexpr const uint64 getId() const { return materialId; }
static constexpr const PMaterial findMaterialById(uint64 id) { return materials[id]; }
void save(ArchiveBuffer& buffer) const;
void load(ArchiveBuffer& buffer);
@@ -33,11 +35,14 @@ private:
uint32 uniformDataSize;
uint32 uniformBinding;
uint64 instanceId;
uint64 materialId;
Gfx::ODescriptorLayout layout;
std::string materialName;
Array<OShaderExpression> codeExpressions;
Array<std::string> parameters;
MaterialNode brdf;
static std::atomic_uint64_t materialIdCounter;
static Array<PMaterial> materials;
};
DEFINE_REF(Material)