armortools
armortools copied to clipboard
Start property panel
I implemented a short proof of concept for https://github.com/armory3d/armorpaint/issues/1289 The main idea is to reduce the need to use nodes. While nodes are a very flexible tool to create materials they are harder to use while texturing. My vision is that the nodes are used to build new (parametric) materials that can be customized by parameters while texturing. Examples:
- Edge wear applied as a fill layer
- Generic metal material that can be customized by setting the metal color or some surface pattern.
- Material templates for specific art styles like "blocky materials" (minecraft-style)
Currently no textures can be selected in the panel but suppose it would be possible.
The concept has multiple benefits imho
- It is easier to play around with materials.
- There can be templates to adapt to a certain situation without having to dig in the node graph, without the need to understand the parameters and so on. The cloud could contain such materials.
- It is much easier to use on tablets because the user can focus on the viewport without the need to share the space with the node editor.
Current Limitations:
- Only one set of parameters per material. While this makes sense while painting it would make sense for fill layers to adjust the parameters on a fill layer basis. Node groups have this property because they can be instantiated in multiple materials. This property is of high value.
- The panel position is not the final one. It might be a good idea to bring back thethird tab view on the right sidebar.
- No textures. For me this is a must have feature. The best way is to extend the RGBA type to allow textures, too. I'm a bit unsure how to implement it though. First idea: the same way as it is done for image nodes. The input node would get an input slot for texture coordinates. Second idea: give the image node an input slot that sets the texture. I believe my first idea is better while the second one would be more flexible. In any case the functionality would also enhance node groups as well.
- Parameters like the operation in math nodes can not be customized that way. By using "Values" as boolean-switches it is easy to work around most of these situations.
- The properties panel is not updated when the current material is renamed or a different material is selected
- No direct compatibility with layer or mask node. It would be super cool to be able to access the mask(s) of a layer in this way.
- It might be useful to add a button to the panel to create a new material with these special parameters to save it for later use in the project.
- Tooltips to explain the parameters could be useful, too.
Please do not merge yet, looking for your feedback first. It definitely needs polishing. Any feedback so far? Interested in this approach?