mirror of
https://github.com/Relintai/material-maker.git
synced 2024-12-23 21:16:54 +01:00
112 lines
4.1 KiB
Markdown
112 lines
4.1 KiB
Markdown
This is a tool based on the Godot game engine that can be used to create textures procedurally. It can also be used as a Godot addon (but there's no good reason for not using it as a standalone tool).
|
|
|
|
Its user interface is based on Godot's GraphEditor: textures are described as interconnected texture generators and operators.
|
|
|
|
![Screenshot](doc/screenshot.png)
|
|
|
|
## Generators
|
|
|
|
### Image
|
|
|
|
This node reads a bitmap from disk
|
|
|
|
### Pattern
|
|
|
|
This generator creates a greyscale image by mixing an horizontal and a vertical pattern.
|
|
Patterns can either be based on a sine, triangle, square, saw or "constant" waveform (i.e. the color as function of the x or y coordinate).
|
|
The frequency (number of waves per unit) can be configure for both axes.
|
|
Mix functions can also be configured.
|
|
|
|
![Pattern](doc/pattern.png)
|
|
|
|
### Bricks
|
|
|
|
This generator creates bricks greyscale patterns.
|
|
|
|
The Bricks generator has 5 parameters:
|
|
* the number of brick rows
|
|
* the number of bricks per row
|
|
* the offset between even and odd rows
|
|
* the mortar space between bricks
|
|
* the bevel at the edge of the bricks
|
|
|
|
The bricks generator has 2 output:
|
|
* the first one will show mortal as black and bricks as white (bevel being shown as a gradient). It can be used as mask to mix brick and mortar, or to generate depth and normal textures
|
|
* the second one will just show a different color for each brick. It can be used to affect the brick's colors (and will be used in the future to offset textures).
|
|
|
|
![Bricks pattern](doc/bricks.png)
|
|
|
|
### Perlin Noise
|
|
|
|
The Perlin Noise generator creates a greyscale pattern and has 4 parameters:
|
|
* the horizontal and vertical scale of the first iteration
|
|
* the number of iteration
|
|
* the persistence (the weight ratio between 2 iterations)
|
|
|
|
![Perlin Noise](doc/perlin.png)
|
|
|
|
### Voronoi Noise
|
|
|
|
The Voronoi Noise generator creates greyscale patterns based on Voronoi diagrams and has 3 parameters:
|
|
* the horizontal and vertical scale (the number of feature points)
|
|
* the "intensity" of the noise (used to adjust the generated color)
|
|
|
|
The Voronoi generator has 3 outputs:
|
|
* The first output shows a greyscale image where intensity depends on the distance to the cell centers
|
|
* The second output shows a greyscale image where intensity depends on the distance to the cell edges
|
|
* The third output shows a different color for each cell.
|
|
|
|
![Voronoi Noise](doc/voronoi.png)
|
|
|
|
## Filters
|
|
|
|
### Colorize
|
|
|
|
This filter accepts a greyscale image as input and is configured using a gradient. The output image is obtained by applying the gradient to the greyscale image (the example below shows a colorized perlin noise).
|
|
|
|
![Colorize](doc/colorize.png)
|
|
|
|
### Blend
|
|
|
|
This filter accepts 2 inputs and an optional mask and blends the 2 images according to the selected blend algorithm.
|
|
|
|
### Blur
|
|
|
|
This node applies a Gaussian blur to the input image.
|
|
|
|
### Combine
|
|
|
|
This node accepts 3 greyscale images as inputs (one for each R, G and B channels) and combines them into a single image. It is useful to create textures that combine distinct features (for example Metallic and Roughness for Godot's Spatial materials).
|
|
|
|
### Emboss
|
|
|
|
This node creates a lighting effect from a greyscale image, with a configurable light direction.
|
|
|
|
![Emboss](doc/emboss.png)
|
|
|
|
### Normal map
|
|
|
|
This node creates a normal map from a greyscale height map.
|
|
|
|
### Transform
|
|
|
|
This node applies a transform (translation, rotation, and scale) to its input image. Whether the input image is clamped or repeated when downsizing is configurable.
|
|
|
|
This can be combined with the pattern node to create a great variety of shapes.
|
|
|
|
### Warp
|
|
|
|
This node deforms an input image according to the gradient of another image (generally perlin noise).
|
|
|
|
![Warp](doc/warp.png)
|
|
|
|
## Miscellaneous
|
|
|
|
### Material
|
|
|
|
This node defines the material shown in the 3d preview. It accepts textures for a subset of the PBR lighting model as implemented in the Godot engine. When exporting the material, each texture will be saved as a PNG file named after the project's name and a suffix for each material node input.
|
|
|
|
### Export
|
|
|
|
This node can be used to export extra PNG files (for example a combined PNG to be used with Godot materials).
|