Material Maker 0.8

Material Maker has been updated to 0.8, with user interface improvements and many new nodes. I have to admit that implementing some of those features has been a lot of fun and I hope you will enjoy this new release.

Please don't hesitate to report bugs, submit ideas for new features and new nodes, or show the awesome materials you create!

Regressions and incompatibilities

Bad news come first, as always:

2D SDF nodes do not output greyscale information and cannot be directly connected to greyscale/color/RGBA inputs anymore. you will have to use the sdShow Node

User interface

the 2D and 3D previews are now in separate tabs

the 3D preview in the background of the graph pane can now be shown and hidden using the "cube" button at the bottom left of the graph view and controlled independently,

the 2D preview now shows a tiled version of the selected node (so it's easy to check the result is seamless)

the 2D preview now has controls that can be associated to (float) node parameters (this applies mainly to shape/transform nodes)





the UI will now be dimmed when exiting the application (this change was contributed by Calinou)

Nodes and code generation

2 new types of node inputs/outputs have been added for 2D and 3D signed distance functions. Both types have a custom preview (distance field for 2DSDF and shaded scene for 3DSDF)

shader nodes inputs now have a "function" attribute. When this option is selected, the input is generated as a function and is usable in instance Functions. This feature made all 3D SDF nodes possible.

a few problems in convolution nodes have been fixed

New and improved nodes

all 2D signed distance functions have been modified to use the 2DSDF inputs/outputs (that are shown in orange). The sdShow node is now the only way to generate an image. Added 2DSDF transform and morph nodes.

the new 3D signed distance functions nodes can be used to describe 3D shapes. Many shapes (sphere, box, capsule, torus, cylinder...), transforms (translate, rotate, scale), operators (boolean, repeat, extrusion, revolution...) are provided and the Render node can be used to generate a height map and a normal map from 3DSDF information. All this is based on ray marching and can be used to describe 3D objects that can then be spread on the textures, as demonstrated in the "skulls" and "pile_of_bricks" examples.





the new 3D box and a sphere nodes are not based on 3DSDF and just output a height map

the new "workflow" nodes can be used to define base materials and mix them using height/orientation/offset maps, and to ultimately create complex materials without drawing spaghetti monsters in the graph view. A few simple base materials are provided in the node library as templates. The new "marble" and the updated "medieval_wall" examples show how to use all those nodes.