Material Maker Versions Save

A procedural textures authoring and 3D model painting tool based on the Godot game engine

0.94

3 years ago

A new website

Materials can now be shared on (and downloaded from) the new www.materialmaker.org website. The process has been made as simple as possible:

  • a button (with a "link" icon) in the user interface can open the website in your favorite web browser. The button shows the status of the "link" between Material Maker and the web page (broken link means the page is not open yet or not "connected" to Makerial Maker, white link means the page is open and materials can be imported, and "golden" link means you are logged in and can submit materials).
  • when browsing materials, it is possible to load one of them into Material Maker in a single click
  • when logged in on the website, a single click on the "send material to website" will generate a preview of your material, and open a form in your web browser to submit it.

3D model painting

Material Maker can now be used to paint PBR materials for 3D models. Albedo, roughness, metallic, emission and depth channels can be painted at the same time (the normal map is generated from the depth channel).

The main focus for this first release of the painting tool was on brushes, that are procedural and described using the same nodes as PBR materials. A few sample brushes are provided in the base brush library, to show some of the possibilities, such as 3D materials, triplanar mapping, following the cursor's movement etc. Since brushes can also be shared on the website, more samples will be available in the future.

The painting tool has basic support for layers: an alpha value can be defined for each channel of each layer, but it's not possible to define layer masks yet.

Note the painting tool only supports models in Wavefront (.obj) file format with a single material.

User interface

  • Graph views now have a minimap ("borrowed" from the ProtonGraph procedural content creation tool)
  • Connections to and from selected nodes are now highlighted in the graph view
  • The Add Node menu has been redesigned (by bonbonmiel) and is now shown when connecting node inputs
  • Nodes can now be minimized, and their previewed output is now saved in the project. When not minimized, the preview is now shown in front of parameters and is hidden when the mouse cursor enters the node
  • The 2D preview can now be zoomed and panned and has configurable axes representation
  • In the 3D preview panel, it is now possible to rotate the environment and the preview mesh menu was redesigned (this feature was contributed by bonbonmiel)
  • Curvature, Ambient Occlusion and Thickness maps can now be baked from custom models in the 3D preview panel (this feature was contributed by Roujel Williams)
  • The Reference panel now has a context menu to load and remove images

Engine

  • The rendering engine has been optimized and will now adapt the number of parallel renderers dynamically

Nodes

  • 2 new node parameter types are available: curve and polygon
  • A new Tonality node (a greyscale version of the Colorize node, using the new curve parameter type) and a new Signed Distance Function Polygon node have been added
  • The new Warp Dilate node deforms one of its input following the contours or slopes iof an input heightmap
  • The Dilate node now has a choice of 3 distance functions (Euclidian, Manhattan and Chebyshev) and a sampling problem has been fixed

0.93

3 years ago

User interface

  • The new Reference panel can be used to display images or rendered textures, and to pick colors and gradients from them. The colors and gradients can then be dragged and dropped either into a graph (to create Uniform or Colorize nodes) or into Color and Gradient parameters.
  • Dropping files into Material Maker now works. Dropping a .ptex file will open it, and dropping an image file in a graph view will create an Image node.
  • Inputs and outputs can now be grouped. Connecting the first port of a group to the first port of a compatible group will connect the whole group.
  • The 3D preview now has a simpler choice of base meshes, but UV scale can be configured and tesselation can be toggled.
  • The 3D preview now support custom 3D meshes in Wavefront (.obj) format, and can bake object normal maps and inverse UV maps.
  • Nodes now have tooltips on their titlebar, parameters and ports. Ports also have a short description, and hovering and input (resp. output) port will show the description of all input (resp. output) port.
  • The UI will now prompt to confirm when closing a project tab or the application. This behavior can be disabled in the new Preferences dialog.
  • Vertical synchronization can be disabled in the new Preferences dialog.
  • UI themes have been updated.
  • The mouse curcor is now captures when rotating 3D previews (this was contributed by escargot-sans-gluten).
  • The UI now has an FPS counter as well as a buffer renders progress bar.
  • Graph selections can now be loaded from and saved to files.
  • A new entry in the tools menu can be used to create a screenshot of large graphs (it automatically pans the graph to take screenshots of all parts and assembles them into a single image).

Engine

  • Shader nodes now support an include section to include global functions from other shader nodes.
  • The engine performance has been improved further by generating textures in parallel and taking dependencies between generated buffer into account.

New and updated nodes

  • A new Text node has been added.
  • New CircleSplatter (greyscale and color) nodes have been added, to splat an input shape in circles or spiral.
  • Pixelize and MakeTilable nodes have been added.
  • New Repeat and CircleRepeat nodes have been added in the 2D SDF section.
  • The sdAnnular shape can nos generate multiple layers.
  • The Fill To Position node now has a Radial option.
  • The FBM node now has a Fold parameter to fold the result in value space.
  • The Transform node now has 3 choices regarding how the input is extended (clamp, repeat, extend).
  • The Splatter and Tiler nodes now have scale parameters to scale their input.
  • The CustomUV node now accepts atlases of 4 or 16 shapes as input.
  • The Voronoi node now has a Fill compatible output.
  • The Material node now has a transparency channel and parameter.
  • The image node automatically checks for changes in the source image file.

Bug fixes

  • The very annoying bug that could prevent grabbing graph ports to connect them should now be fixed.
  • A bug related to using gradient parameters in remote nodes has been fixed.

0.92

3 years ago

User interface

  • Optimized performance by making all float parameters uniforms and avoiding shader generation when they are modified.
  • New histogram panel.
  • In the 3D preview, the shader for tesselated meshes has(finally) been fixed and a new tesselated quad mesh (useful to visualize steep depth maps) has been added.
  • The 2D preview pane now has a menu that can be used to select the preview type and save the preview as a PNG image file. The previews inside graph nodes also have a menu to save as PNG.
  • Material Maker will now remember the directory where you loaded or saved projects, previews... No more navigating your whole hard disk whenever you want to load or save a file.
  • A selected group can now be entered using the Tab keyboard shortcut and exited using Shift-Tab or Backspace.
  • Themes have been tweaked a little bit and optimized (making Material Maker loading time be a bit shorter).

Export

  • Unity has a new export option for HDRP, which was contributed by luggage66.

New and updated nodes

  • The new Tones mode shows an histogram of color channels in the image and can be used to tweak color tones.
  • The new Fill node detects areas inside white lines from its input. Its output cannot be used directly, but can be processed by Fill companion nodes such as Fill to position, Fill to size, Fill to random color, Fill to UV...
  • The new Dilate node expands white shapes from its input and can get colors from an optional secondary input. The screenshot below shows the output of the Dilate node on the Splatter image with (main preview on the right) and without (thumbnail preview of the top Dilate node) that secondary input.
  • The new Math node provides quite a few operations that will apply to 2D greyscale inputs (or constant parameters defined in the node). They can be pretty useful (for example) when tweaking the parameters exposed by groups.
  • All convolution nodes (blur, sharpen, normal map...) have been rewritten as shader nodes and the convolution node type is now deprecated.
  • The new Curve node can be used to create simple bezier curves (defined by 3 control points), filled with an optional input texture. As many nodes that rely on tricky math formulas (mostly 2D and 3D SDF nodes to be honest), it is based on a shadertoy project by Inigo Quilez.
  • The gaussian and directional blur nodes now have a new input that controls the intensity of the blur effect on the output image (see screenhot below). The blur family also has a new member, the slope blur, that is some kind of mix between a warp and a blur effect.
  • Both Tiler nodes now have a parameter to define a fixed offset applied to odd lines. This makes it possible to tile their input on a hex grid. Greyscale Tiler and Splatter nodes also have a secondary output that assign a random color to each object placed on the generated output. All Splatter and Tiler nodes also have an extra random value/opacity parameter.
  • New simple transform nodes (translate, rotate and scale) have been added as smaller alternatives to the Transform node. They also are slightly different since they don't clamp their result and rotate and scale transforms have a customizable center. A new Shear transform node is also available
  • The Line and Arc signed distance nodes now have a width parameter.
  • The new Iterate Buffer node type is a Buffer node that memorizes its input, applies a subgraph (that is between its bottom output and its bottom input) to its buffer a given number of times and outputs the result. The example below applies a simple transform to create an interesting spiral pattern. Note the Fill node relies heavily on this one.
  • Buffer nodes now save their contents as a 16 bits float per pixel per channel images, so their output should be a bit (or to be more precise at least 3 bits) more accurate.

0.9

4 years ago

User interface

  • Side panels can now be moved (to top left, top right, bottom left or bottom right) by dragging their title bar or hidden using the View -> Panes to customize the UI.
  • Added a Hierarchy pane that shows the current material's group hierarchy. It can show from 0 to 3 output previews for each group (this can be configured by right clicking in the pane). The button that shows the hierarchy popup in the graph pane in case you don't want to see this pane
  • The graph pane can now show a 2D preview as background
  • Added a popup menu for adding nodes on graph edit with the space key, or by connecting an output to an empty space (contributed by Metin ÇETİN)
  • Added a menu to select the UI theme (3 themes are available, nicer themes are being created for future releases)
  • Update Paste and Duplicate commands to create the new nodes at the mouse pointer's location
  • Nodes don't have "eye" buttons for their preview anymore. Just click on an output slot to show (or hide) its preview

Export

  • Added 3 export options: Godot, Unity and Unreal engine. Godot and Unity exports generate ready-to-use materials, Unreal export generates PNG files usable directly in an Unreal material. Creating a simple Unreal material from those is described in the documentation.

Command line

  • the path to a .ptex file can be specified as command line argument to directly open a project. this makes it possible to associate Material Maker with the .ptex extension to open Material maker when double-clicking a .ptex file
  • It is possible to export several materials for Godot, Unity or Unreal engine using the --export command line argument

Nodes

  • Added editable title and color to Comment nodes
  • Updated 3D signed distance function nodes to support a color index, and added a color index output to the 3D/SDF/Render node
  • Added nodes for 3D textures (2D texture projection, pattern, fractional Brownian motion), 3D textures operators (rotate, colorize, distort, blend), a node to mix 3D textures per index, and a node to apply a 3D texture. All this is based on hacks by Paulo Falcão
  • Added 2D fractional Brownian motion node
  • Added splatter and tiler nodes. Splatter instanciates its input image several times to its outputs. Tiler does the same by placing instances on a grid and applying a random offset (results are similar, but tiler can handle a lot more instances). Both can randomly scale and rotate instances, and support an input mask that define zones where instances cannot be created. Finally, both accept 2x2 or 4x4 arrays of images and pick them randomly for each instance, and have a greyscale and a color variant
  • Added a Tiler2x2 node that has 4 inputs and outputs a 2x2 array of its inputs, mainly useful to produce arrays for Splatter and Tiler
  • Made it possible to create new input/output slots types by editing a .json file

0.8

4 years ago
  • Regressions & incompatibilities:

    • 2D SDF nodes do not output greyscale information and cannot be directly connected to greyscale/color/RGBA inputs anymore
  • 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 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. 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.
    • 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.
    • the bricks node has been improved with round brick corners and output UV information for each brick and each brick corner. Also added an output that gives brick orientation.
    • the new CustomUV node uses one of its input as coordinates to read the other input and can thus be used to implement psychedelic image transforms
    • the new generic truchet tiles its input, randomly flipping it horizontally, vertically or both
    • the beehive node just outputs hexagonal tiles
    • the 4 new convolution nodes are 3 edge detectors and a sharpen filter
    • the normal map node has a new option to disable its input buffer (the buffer should still be used when the input is complex)
    • the new greyscale node converts color input to greyscale with a choice of 5 algorithms
    • the new swap channels node replaces all channels (R, G, B, A) of its output with 0, 1 or a (optionnally inverted) channel of its input

v0.7

4 years ago
  • Regressions/annoying stuff:
    • Save format for size parameters changed, so it's likely old projects will not load correctly (all sizes will have to be fixed).
    • Make editable is now Control-W (used to be Control-F)
  • User interface
    • Many UI improvements: nice shortcuts to center view, set zoom to 1:1... (contributed by Hugo Locurcio and Jack Perkins)
    • Fullscreen toggle by pressing F11 or Alt+Enter, remember window position and size (Hugo Locurcio)
    • Many preview improvements: better looking 3d preview, button that controls rotation, object and camera can be rotated... (contributed by Hugo Locurcio and Jack Perkins)
    • Fewer, but better preview environments (including a white light studio contributed by Cory Petkovsek)
    • Added a menu option to export the whole library
    • JSON files are not garbled anymore
    • In shader editor, inputs, parameters and outputs can be reordered
    • A graph tree can be shown and used to navigate the material's hierarchy
    • Graph loops are detected (again)
  • New features for nodes:
    • Updated gradient parameters: 4 interpolation options, changes in editor widget
    • New float parameter editor widget to replace the Spinbox and the HSlider
    • Updated support for randomness: button to lock random seed, nodes can inherit seed from parent group
    • Added support for shader material (the tesselated sphere model uses a shader, but it seems roughness does not work properly)
    • Added support for subsurface scattering texture in material
    • Added editable inputs/outputs nodes for groups
    • Updated the switch node's UI
    • Normal Map node now has 3 options (Default, DirectX, OpenGL)
    • Image node supports many additional file formats including SVG
    • Buffer node now has a LOD output and a parameter to semect its LOD level
  • Many bug fixes
  • New nodes:
    • Greyscale Uniform
    • Color Noise
    • Color Perlin Noise
    • Scratches
    • Signed distance functions geometry
    • Invert
    • Brightness/Contrast
    • Ambient occlusion (from height map)
    • Quantize
    • Circle map
    • Debug
  • New examples
    • Mediaval wall
    • Improved bricks (created by Rafe Hall)
    • Halloween (from pumpkin video)

0.5p1

5 years ago

This is a fixed 0.5 release for the godot addon.

This release adds support for the Switch and Remote nodes that can be used to create configurable materials. A Comment node has also been added.

0.5

5 years ago

This release adds support for the Switch and Remote nodes that can be used to create configurable materials. A Comment node has also been added.

0.4

5 years ago
  • Added AdjustHSV node
  • Added export size selection in Material and Export nodes
  • Replaced the TabContainer with a Tabs control, which makes it possible to close tabs by clicking their close buttons and reorder tabs
  • Fixes in cut/copy/paste

0.3

5 years ago
  • Added a small user manual
  • Added the following nodes:
    • Combine: combines 3 greyscale inputs into a color output
    • Decompose: decomposes a color input into 3 greyscale outputs
    • Emboss: generate a lighting effect from an input image (light direction can be configured)
    • Export: defines a custom output image file when exporting
    • Noise: just random black and white pixels
  • Added new patterns to the Bricks node
  • Rewrote the Blur node: now can be applied horizontally, vertically or both
  • Updated the Transform node so its transform can be affected per pixel with greyscale inputs (one per transform parameter)
  • Added cut/copy/paste operations
  • Added "C" shortcut to center the view
  • Library items can now be groups of interconnected nodes

Edit: Attached a patch release for windows that mitigates the mouse-being-captured-during-drag'n'drop problem.