A cross-platform library to make 3D graphics a little easier.
- Split shaders from programs into separate stages.
- Vertex and fragment shaders are not imported and processed individually into IShaderStage objects and then combined into an IShaderProgram object, instead of being imported and processed together as a single IShader.
- Created a ShaderUniforms class to hold values for shader uniforms.
- Replaced many occurrences of a materialOverride parameter in Draw calls with an Overrides class, that allows the overriding of material, ligthing, shader, shader stages, and shader uniform values.