Adding transparency support

This commit is contained in:
Dynamitos
2024-06-20 21:57:26 +02:00
parent 2dc9d57c71
commit bd63b14260
27 changed files with 578 additions and 282 deletions
+9 -1
View File
@@ -10,7 +10,7 @@ DECLARE_NAME_REF(Gfx, Sampler)
class Material {
public:
Material();
Material(Gfx::PGraphics graphics, uint32 numTextures, uint32 numSamplers, uint32 numFloats,
Material(Gfx::PGraphics graphics, uint32 numTextures, uint32 numSamplers, uint32 numFloats, bool twoSided, float opacity,
std::string materialName, Array<OShaderExpression> expressions, Array<std::string> parameter, MaterialNode brdf);
~Material();
static void init(Gfx::PGraphics graphics);
@@ -23,8 +23,14 @@ class Material {
static uint32 addTextures(uint32 numTextures);
static uint32 addSamplers(uint32 numSamplers);
static uint32 addFloats(uint32 numFloats);
OMaterialInstance instantiate();
const std::string& getName() const { return materialName; }
bool isTwoSided() const;
bool hasTransparency() const;
float getOpacity() const;
constexpr uint64 getId() const { return materialId; }
static constexpr const PMaterial findMaterialById(uint64 id) { return materials[id]; }
@@ -41,6 +47,8 @@ class Material {
uint64 instanceId;
uint64 materialId;
std::string materialName;
bool twoSided;
float opacity;
Array<OShaderExpression> codeExpressions;
Array<std::string> parameters;
MaterialNode brdf;