Hi, Im not sure if this is the correct Place to post this, let me know if this is not
I want to discuss on an idea call Material Instance (or whatever it is), and would like to know how others think about this
So in my Opinion, Blender Material System is nice, but it could be improved in my opinion,
Problems
Here are the problem I want to address
Messy Catagorization / Long Material Name as Identifier
- All Materials Are Lumped together in One Giant List, there is no way to categorize them, which turn it into a Gigantic Mess of list.
- The only way to Categorize or Identify the Material is by using Long Descriptive Name, and use search function to find them.
Duplicated Similar Material
- To make variation of similar material, the only way to do it is to Duplicate them, which will make it really hard to manage, in terms of tweaking the material, and it makes the material list even bigger
Possible Solution Idea
There are many possible ways to solve this problem,
A way that I personally think can solve this problem is the idea of Material Instance (or whatever you call it)
There is Two Intended Problem to solve with this Idea
- To Scope the Material so You don’t need to face the Gigantic Material List Everytime and Memorize the name for the specific Material for this object
- To Reduce Material Duplication
Material System Proposal
Currently, The Materials in Blender is like a “Global Variable” in coding, where everything is available everywhere, To Solve this problem, the Idea is to Scope them and put into Groups
Master Material
This is just the regular material You know and love. It have Node Tree and you can do Your Node Magic in here. However, theres one addition to this, Which is making “Group Input” Work on Material Space
This is basicly Similar to Geometry Node, You make your node tree, and Choose what Property you want to Expose, using the “Group Input Node”.
Material Instance
Material Instance will be Store in Master Material (Or other places whichever works) in a List Form
The Material Instance will be the Same As Master Material, Except the Parameter that is Expose from Group Input Node will be inside of Material Instance
This way, You can do something like this
Master Material 01: Principled Shader Material
-Instance 01: Red Shiny Material
-Instance 02: Blue Rough Material
Master Material 02: Fancy NPR Material
-Instance 01: Fancy NPR Style 1
-Instance 02: Fancy NPR Style 2
Differences
What are the differences between Master Material?
So Master Material is the Material with the Node Tree, you add a Group Input to it
Material Instance is a Variation of the Master Material that have it’s own Setting (determined by Group Info)
Setting Materials
When Selecting Material, First You Select the Master Material, and then You select the Material Instance
This will Drastically Reduce the amount of Duplicated Material making things more organized, and easier to work with material variation
Think “Select a Material” and then “Select the Material Variation / Instance”
When you want to have a fundalmental change, All you need is to edit the master material, and the
instances will inherit them
Mockup
Properties Panel UI
It would be great if you can show the Group Input inside here, so the maker of material can decide which parameter to expose, (Similar to Geometry Nodes)
Perhaps a Tabs to Switch between the Old UI and the Exposed Input Group UI
Extras
This is probably Nice but I don’t think is important, which is the ability to Overwrite the “Group Input Property” on object level, a On/Off button next the the parameter would be nice. However I think this is more of a Nice to Have
How do you guys think? Agree? Disagree? More Idea to Throw in?
Would It work? Would it Create more problem than it solves?