The current setup for materials sucks. The syntax is bad and having two different asset types for materials and multi-materials is a hack.
Ultimately I don't want to bring in an external library for parsing so the syntax needs to be as simple as possible but I'd also like it to be uniform and relatively C-like.
Some other issues:
Material Entry duplication - There is lots of replication in material files, in particular for shader listings.
Shader Program duplication - Because there are no longer program assets each material uses a new program even if not unique. This wastes GPU memory.
Internal access - Dealing with materials in the C code also is horrible.
Blurry Concept - Because they are used by deferred and forward renders, materials are a horrible blurred concept. Should deferred using a different asset type? One that isn't so catch-all?
The current setup for materials sucks. The syntax is bad and having two different asset types for materials and multi-materials is a hack.
Ultimately I don't want to bring in an external library for parsing so the syntax needs to be as simple as possible but I'd also like it to be uniform and relatively C-like.
Some other issues: