Materials for rendering abstract class
- Add a new class for materials, which is attached to render delegates to enable the user to define material details for each object.
- Initial abstract implementation:
- Textures (all of these are technically optional):
- Diffuse
- Normal
- Specular (classical)
- Metalness (PBR)
- Roughness (PBR)
- AO (optional)
- Cavity (optional)
- Cubemap (optional)
- State
- Diffuse color (default is white)
- Specular color (default is white)
- Metalness (PBR, default to 0.0)
- Roughness (PBR, default to 1.0)
- Casts shadows
- Receives shadows
- Wireframe
- Line width
- Shaders
- Custom vertex shader (optional)
- Custom geometry shader (optional)
- Custom fragment shader (optional)