Interface for objects with specialized rendering requirements.
virtual void draw() const =0
Performs custom rendering for this object.
Base interface for all renderable objects in the scene.
virtual Shader * getShader() const =0
Gets the shader used to render this object.
virtual uint32_t getObjectID() const =0
Gets the unique identifier for this object.
virtual ~IDrawable()=default
Virtual destructor for proper cleanup of derived classes.
virtual Mesh * getMesh() const =0
Gets the mesh geometry for this object.
Interface for objects that support GPU instanced rendering.
virtual glm::mat4 getModelMatrix() const =0
Gets the model transformation matrix for this instance.
virtual Rendering::InstanceData getInstanceData() const
Gets the complete per-instance data for GPU upload.
GPU mesh representation with support for instanced rendering.
Per-instance data for instanced rendering.