Added documentation for all 3D signed distance functions nodes.
@ -8,6 +8,7 @@ to describe procedural materials.
|
||||
:maxdepth: 2
|
||||
|
||||
nodes_simple
|
||||
nodes_3d
|
||||
nodes_pattern
|
||||
nodes_noise
|
||||
nodes_filter
|
||||
|
BIN
addons/material_maker/doc/images/node_sdf3d_boolean.png
Normal file
After Width: | Height: | Size: 3.8 KiB |
BIN
addons/material_maker/doc/images/node_sdf3d_boolean_sample.png
Normal file
After Width: | Height: | Size: 9.4 KiB |
BIN
addons/material_maker/doc/images/node_sdf3d_box.png
Normal file
After Width: | Height: | Size: 4.8 KiB |
BIN
addons/material_maker/doc/images/node_sdf3d_box_sample.png
Normal file
After Width: | Height: | Size: 4.2 KiB |
BIN
addons/material_maker/doc/images/node_sdf3d_capsule.png
Normal file
After Width: | Height: | Size: 4.1 KiB |
BIN
addons/material_maker/doc/images/node_sdf3d_capsule_sample.png
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
addons/material_maker/doc/images/node_sdf3d_circlerepeat.png
Normal file
After Width: | Height: | Size: 3.0 KiB |
After Width: | Height: | Size: 6.8 KiB |
BIN
addons/material_maker/doc/images/node_sdf3d_cone.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
BIN
addons/material_maker/doc/images/node_sdf3d_cone_sample.png
Normal file
After Width: | Height: | Size: 9.7 KiB |
BIN
addons/material_maker/doc/images/node_sdf3d_cylinder.png
Normal file
After Width: | Height: | Size: 4.3 KiB |
BIN
addons/material_maker/doc/images/node_sdf3d_cylinder_sample.png
Normal file
After Width: | Height: | Size: 7.5 KiB |
BIN
addons/material_maker/doc/images/node_sdf3d_extrusion.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
BIN
addons/material_maker/doc/images/node_sdf3d_extrusion_sample.png
Normal file
After Width: | Height: | Size: 4.3 KiB |
BIN
addons/material_maker/doc/images/node_sdf3d_render.png
Normal file
After Width: | Height: | Size: 2.8 KiB |
BIN
addons/material_maker/doc/images/node_sdf3d_repeat.png
Normal file
After Width: | Height: | Size: 3.8 KiB |
BIN
addons/material_maker/doc/images/node_sdf3d_repeat_sample.png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
addons/material_maker/doc/images/node_sdf3d_revolution.png
Normal file
After Width: | Height: | Size: 3.2 KiB |
After Width: | Height: | Size: 19 KiB |
BIN
addons/material_maker/doc/images/node_sdf3d_rotate.png
Normal file
After Width: | Height: | Size: 3.5 KiB |
BIN
addons/material_maker/doc/images/node_sdf3d_roundedshape.png
Normal file
After Width: | Height: | Size: 2.9 KiB |
After Width: | Height: | Size: 13 KiB |
BIN
addons/material_maker/doc/images/node_sdf3d_samples.png
Normal file
After Width: | Height: | Size: 16 KiB |
BIN
addons/material_maker/doc/images/node_sdf3d_scale.png
Normal file
After Width: | Height: | Size: 2.4 KiB |
BIN
addons/material_maker/doc/images/node_sdf3d_smoothboolean.png
Normal file
After Width: | Height: | Size: 5.0 KiB |
After Width: | Height: | Size: 12 KiB |
BIN
addons/material_maker/doc/images/node_sdf3d_sphere.png
Normal file
After Width: | Height: | Size: 2.6 KiB |
BIN
addons/material_maker/doc/images/node_sdf3d_sphere_sample.png
Normal file
After Width: | Height: | Size: 19 KiB |
BIN
addons/material_maker/doc/images/node_sdf3d_torus.png
Normal file
After Width: | Height: | Size: 3.2 KiB |
BIN
addons/material_maker/doc/images/node_sdf3d_torus_sample.png
Normal file
After Width: | Height: | Size: 26 KiB |
BIN
addons/material_maker/doc/images/node_sdf3d_translate.png
Normal file
After Width: | Height: | Size: 3.6 KiB |
69
addons/material_maker/doc/node_3d_sdf.rst
Normal file
@ -0,0 +1,69 @@
|
||||
3D signed distance function geometry nodes
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The signed distance function nodes can be used to define complex 3D geometry using simple
|
||||
shapes.
|
||||
|
||||
They are based on a very small set of basic shapes, that can be combined using operators,
|
||||
and finally output as a greyscale heightmap and a color normal map using the **render** node.
|
||||
|
||||
Describing 3D objects using SDF primitives is more difficult than using existing meshes, but this
|
||||
method integrates smoothly with shader generation, and (as many nodes in Material Maker) is
|
||||
resolution independant.
|
||||
|
||||
All output samples shown in this section are preview images.
|
||||
|
||||
All Signed Distance Functions nodes are based on code written by Inigo Quilez that can be found
|
||||
`on this page`__.
|
||||
|
||||
.. _sdf3dpage: https://www.iquilezles.org/www/articles/distfunctions/distfunctions.htm
|
||||
|
||||
__ sdf3dpage_
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
node_3d_sdf_render
|
||||
|
||||
Shapes
|
||||
++++++
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
node_3d_sdf_shapes_sphere
|
||||
node_3d_sdf_shapes_box
|
||||
node_3d_sdf_shapes_cylinder
|
||||
node_3d_sdf_shapes_capsule
|
||||
node_3d_sdf_shapes_cone
|
||||
node_3d_sdf_shapes_torus
|
||||
|
||||
Operators
|
||||
+++++++++
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
node_3d_sdf_operators_boolean
|
||||
node_3d_sdf_operators_smoothboolean
|
||||
node_3d_sdf_operators_rounded
|
||||
node_3d_sdf_operators_repeat
|
||||
node_3d_sdf_operators_circlerepeat
|
||||
node_3d_sdf_operators_extrusion
|
||||
node_3d_sdf_operators_revolution
|
||||
|
||||
Transforms
|
||||
++++++++++
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
node_3d_sdf_transforms_translate
|
||||
node_3d_sdf_transforms_scale
|
||||
node_3d_sdf_transforms_rotate
|
||||
|
||||
Example images
|
||||
++++++++++++++
|
||||
|
||||
.. image:: images/node_sdf3d_samples.png
|
||||
:align: center
|
31
addons/material_maker/doc/node_3d_sdf_operators_boolean.rst
Normal file
@ -0,0 +1,31 @@
|
||||
Boolean node
|
||||
............
|
||||
|
||||
The **Boolean** node generates a 3D signed distance function for the combination (union,
|
||||
intersection or difference) of its inputs.
|
||||
|
||||
.. image:: images/node_sdf3d_boolean.png
|
||||
:align: center
|
||||
|
||||
Inputs
|
||||
::::::
|
||||
|
||||
The **Boolean** node accepts 2 inputs in 3D signed distance function format.
|
||||
|
||||
Outputs
|
||||
:::::::
|
||||
|
||||
The **Boolean** node generates a signed distance function of the
|
||||
combination of its inputs.
|
||||
|
||||
Parameters
|
||||
::::::::::
|
||||
|
||||
The **Boolean** node accepts *the operator it applies (union, intersection or
|
||||
difference)* as parameter.
|
||||
|
||||
Example images
|
||||
::::::::::::::
|
||||
|
||||
.. image:: images/node_sdf3d_boolean_sample.png
|
||||
:align: center
|
@ -0,0 +1,30 @@
|
||||
CircleRepeat node
|
||||
...........
|
||||
|
||||
The **CircleRepeat** node generates a 3D signed distance image of a circular repetition of its
|
||||
input. The source object must be offset in the positive Y direction from the center.
|
||||
|
||||
.. image:: images/node_sdf3d_circlerepeat.png
|
||||
:align: center
|
||||
|
||||
Inputs
|
||||
::::::
|
||||
|
||||
The **CircleRepeat** node accepts an input in 3D signed distance function format.
|
||||
|
||||
Outputs
|
||||
:::::::
|
||||
|
||||
The **CircleRepeat** node generates a signed distance function of the
|
||||
repeated version of the input shape.
|
||||
|
||||
Parameters
|
||||
::::::::::
|
||||
|
||||
The **CircleRepeat** node accepts *the number of repetitions* as parameter.
|
||||
|
||||
Example images
|
||||
::::::::::::::
|
||||
|
||||
.. image:: images/node_sdf3d_circlerepeat_sample.png
|
||||
:align: center
|
@ -0,0 +1,30 @@
|
||||
Extrusion node
|
||||
..............
|
||||
|
||||
The **Extrusion** node generates a 3D signed distance function of a shape based on
|
||||
its (2D signed function) input extruded along the Y axis.
|
||||
|
||||
.. image:: images/node_sdf3d_extrusion.png
|
||||
:align: center
|
||||
|
||||
Inputs
|
||||
::::::
|
||||
|
||||
The **Extrusion** node accepts an input in 2D signed distance function format.
|
||||
|
||||
Outputs
|
||||
:::::::
|
||||
|
||||
The **Extrusion** node generates a signed distance function of the
|
||||
extruded version of the input shape.
|
||||
|
||||
Parameters
|
||||
::::::::::
|
||||
|
||||
The **Extrusion** node accepts the *the length* of the extruded shape as parameter.
|
||||
|
||||
Example images
|
||||
::::::::::::::
|
||||
|
||||
.. image:: images/node_sdf3d_extrusion_sample.png
|
||||
:align: center
|
34
addons/material_maker/doc/node_3d_sdf_operators_repeat.rst
Normal file
@ -0,0 +1,34 @@
|
||||
Repeat node
|
||||
...........
|
||||
|
||||
The **Repeat** node generates a 3D signed distance image of a repetition of its
|
||||
input on the X and Y axes. It can also apply a random rotation to the repeated
|
||||
object instances.
|
||||
|
||||
.. image:: images/node_sdf3d_repeat.png
|
||||
:align: center
|
||||
|
||||
Inputs
|
||||
::::::
|
||||
|
||||
The **Repeat** node accepts an input in 3D signed distance function format.
|
||||
|
||||
Outputs
|
||||
:::::::
|
||||
|
||||
The **Repeat** node generates a signed distance function of the
|
||||
repeated version of the input shape.
|
||||
|
||||
Parameters
|
||||
::::::::::
|
||||
|
||||
The **Repeat** node accepts the following parameters:
|
||||
|
||||
* *the repetition offset* for both X and Y axes
|
||||
* *the amount of random rotation* applied to all instances
|
||||
|
||||
Example images
|
||||
::::::::::::::
|
||||
|
||||
.. image:: images/node_sdf3d_repeat_sample.png
|
||||
:align: center
|
@ -0,0 +1,30 @@
|
||||
Revolution node
|
||||
...............
|
||||
|
||||
The **Revolution** node generates a 3D signed distance function of a shape based on
|
||||
the revolution along the Z axis of its (2D signed function) input.
|
||||
|
||||
.. image:: images/node_sdf3d_revolution.png
|
||||
:align: center
|
||||
|
||||
Inputs
|
||||
::::::
|
||||
|
||||
The **Revolution** node accepts an input in 2D signed distance function format.
|
||||
|
||||
Outputs
|
||||
:::::::
|
||||
|
||||
The **Revolution** node generates a signed distance function of the
|
||||
revolution of the input shape.
|
||||
|
||||
Parameters
|
||||
::::::::::
|
||||
|
||||
The **Revolution** node accepts the *the radius* of the revolution operation as parameter.
|
||||
|
||||
Example images
|
||||
::::::::::::::
|
||||
|
||||
.. image:: images/node_sdf3d_revolution_sample.png
|
||||
:align: center
|
33
addons/material_maker/doc/node_3d_sdf_operators_rounded.rst
Normal file
@ -0,0 +1,33 @@
|
||||
Rounded node
|
||||
.................
|
||||
|
||||
The **Rounded** node generates a 3D signed distance function of a rounded shape
|
||||
based on its input, by substracting a constant from its input (i.e.
|
||||
"growing" it towards the outside).
|
||||
|
||||
.. image:: images/node_sdf3d_roundedshape.png
|
||||
:align: center
|
||||
|
||||
Inputs
|
||||
::::::
|
||||
|
||||
The **Rounded** node accepts an input in 3D signed distance function format.
|
||||
|
||||
Outputs
|
||||
:::::::
|
||||
|
||||
The **Rounded** node generates a signed distance function of the
|
||||
rounded version of the input shape.
|
||||
|
||||
Parameters
|
||||
::::::::::
|
||||
|
||||
The **Rounded** node accepts the following parameters:
|
||||
|
||||
* *the distance* to be substracted from the function
|
||||
|
||||
Example images
|
||||
::::::::::::::
|
||||
|
||||
.. image:: images/node_sdf3d_roundedshape_sample.png
|
||||
:align: center
|
@ -0,0 +1,33 @@
|
||||
SmoothBoolean node
|
||||
..................
|
||||
|
||||
The **SmoothBoolean** node generates a 3D signed distance image for the combination (union,
|
||||
intersection or difference) of its inputs.
|
||||
|
||||
.. image:: images/node_sdf3d_smoothboolean.png
|
||||
:align: center
|
||||
|
||||
Inputs
|
||||
::::::
|
||||
|
||||
The **SmoothBoolean** node accepts 2 inputs in signed distance function format.
|
||||
|
||||
Outputs
|
||||
:::::::
|
||||
|
||||
The **SmoothBoolean** node generates a signed distance function of the
|
||||
combination of its inputs.
|
||||
|
||||
Parameters
|
||||
::::::::::
|
||||
|
||||
The **SmoothBoolean** node accepts the following parameters:
|
||||
|
||||
* *the operator it applies (union, intersection or difference)*
|
||||
* *the smoothness* of the operation
|
||||
|
||||
Example images
|
||||
::::::::::::::
|
||||
|
||||
.. image:: images/node_sdf3d_smoothboolean_sample.png
|
||||
:align: center
|
27
addons/material_maker/doc/node_3d_sdf_render.rst
Normal file
@ -0,0 +1,27 @@
|
||||
Render node
|
||||
...........
|
||||
|
||||
The **Render** node generates images from a 3D signed distance function inputs.
|
||||
|
||||
.. image:: images/node_sdf3d_render.png
|
||||
:align: center
|
||||
|
||||
Inputs
|
||||
::::::
|
||||
|
||||
The **Render** node accepts an input in 3D signed distance function format.
|
||||
|
||||
Outputs
|
||||
:::::::
|
||||
|
||||
The **Render** node generates two images from its input:
|
||||
|
||||
* a *height map* of the rendered input along the Z axis
|
||||
* a *normal map* of the rendered input calculated directly
|
||||
using the 3D signed function (and consequently more
|
||||
accurate than a normal map generated from the height map)
|
||||
|
||||
Parameters
|
||||
::::::::::
|
||||
|
||||
The **Render** node does no accept any parameter.
|
31
addons/material_maker/doc/node_3d_sdf_shapes_box.rst
Normal file
@ -0,0 +1,31 @@
|
||||
Box node
|
||||
........
|
||||
|
||||
The **Box** node generates a 3d signed distance function for a box with rounded corners.
|
||||
|
||||
.. image:: images/node_sdf3d_box.png
|
||||
:align: center
|
||||
|
||||
Inputs
|
||||
::::::
|
||||
|
||||
The **Box** node does not accept any input.
|
||||
|
||||
Outputs
|
||||
:::::::
|
||||
|
||||
The **Box** node generates a signed distance function for a box.
|
||||
|
||||
Parameters
|
||||
::::::::::
|
||||
|
||||
The **Box** node accepts the following parameters:
|
||||
|
||||
* the X, Y and Z sizes of the box (not including the rounded corners and edges)
|
||||
* the radius of the rounded corners and edges
|
||||
|
||||
Example images
|
||||
::::::::::::::
|
||||
|
||||
.. image:: images/node_sdf3d_box_sample.png
|
||||
:align: center
|
28
addons/material_maker/doc/node_3d_sdf_shapes_capsule.rst
Normal file
@ -0,0 +1,28 @@
|
||||
Capsule node
|
||||
............
|
||||
|
||||
The **Capsule** node generates a 3d signed distance function for a capsule.
|
||||
|
||||
.. image:: images/node_sdf3d_capsule.png
|
||||
:align: center
|
||||
|
||||
Inputs
|
||||
::::::
|
||||
|
||||
The **Capsule** node does not accept any input.
|
||||
|
||||
Outputs
|
||||
:::::::
|
||||
|
||||
The **Capsule** node generates a signed distance function for a capsule.
|
||||
|
||||
Parameters
|
||||
::::::::::
|
||||
|
||||
The **Capsule** node accepts as parameters the length of the capsule and its radius.
|
||||
|
||||
Example images
|
||||
::::::::::::::
|
||||
|
||||
.. image:: images/node_sdf3d_capsule_sample.png
|
||||
:align: center
|
28
addons/material_maker/doc/node_3d_sdf_shapes_cone.rst
Normal file
@ -0,0 +1,28 @@
|
||||
Capsule node
|
||||
............
|
||||
|
||||
The **Capsule** node generates a 3d signed distance function for a capsule.
|
||||
|
||||
.. image:: images/node_sdf3d_capsule.png
|
||||
:align: center
|
||||
|
||||
Inputs
|
||||
::::::
|
||||
|
||||
The **Capsule** node does not accept any input.
|
||||
|
||||
Outputs
|
||||
:::::::
|
||||
|
||||
The **Capsule** node generates a signed distance function for a capsule.
|
||||
|
||||
Parameters
|
||||
::::::::::
|
||||
|
||||
The **Capsule** node accepts as parameters the length of the capsule and its radius.
|
||||
|
||||
Example images
|
||||
::::::::::::::
|
||||
|
||||
.. image:: images/node_sdf3d_capsule_sample.png
|
||||
:align: center
|
28
addons/material_maker/doc/node_3d_sdf_shapes_cylinder.rst
Normal file
@ -0,0 +1,28 @@
|
||||
Cylinder node
|
||||
.............
|
||||
|
||||
The **Cylinder** node generates a 3d signed distance function for a cylinder.
|
||||
|
||||
.. image:: images/node_sdf3d_cylinder.png
|
||||
:align: center
|
||||
|
||||
Inputs
|
||||
::::::
|
||||
|
||||
The **Cylinder** node does not accept any input.
|
||||
|
||||
Outputs
|
||||
:::::::
|
||||
|
||||
The **Cylinder** node generates a signed distance function for a cylinder.
|
||||
|
||||
Parameters
|
||||
::::::::::
|
||||
|
||||
The **Cylinder** node accepts as parameters the length of the cylinder and its radius.
|
||||
|
||||
Example images
|
||||
::::::::::::::
|
||||
|
||||
.. image:: images/node_sdf3d_cylinder_sample.png
|
||||
:align: center
|
28
addons/material_maker/doc/node_3d_sdf_shapes_sphere.rst
Normal file
@ -0,0 +1,28 @@
|
||||
Sphere node
|
||||
...........
|
||||
|
||||
The **Sphere** node generates a 3d signed distance function for a sphere.
|
||||
|
||||
.. image:: images/node_sdf3d_sphere.png
|
||||
:align: center
|
||||
|
||||
Inputs
|
||||
::::::
|
||||
|
||||
The **Sphere** node does not accept any input.
|
||||
|
||||
Outputs
|
||||
:::::::
|
||||
|
||||
The **Sphere** node generates a signed distance function for a sphere.
|
||||
|
||||
Parameters
|
||||
::::::::::
|
||||
|
||||
The **Sphere** node accepts a single parameter, its radius.
|
||||
|
||||
Example images
|
||||
::::::::::::::
|
||||
|
||||
.. image:: images/node_sdf3d_sphere_sample.png
|
||||
:align: center
|
28
addons/material_maker/doc/node_3d_sdf_shapes_torus.rst
Normal file
@ -0,0 +1,28 @@
|
||||
Torus node
|
||||
..........
|
||||
|
||||
The **Torus** node generates a 3d signed distance function for a torus.
|
||||
|
||||
.. image:: images/node_sdf3d_torus.png
|
||||
:align: center
|
||||
|
||||
Inputs
|
||||
::::::
|
||||
|
||||
The **Torus** node does not accept any input.
|
||||
|
||||
Outputs
|
||||
:::::::
|
||||
|
||||
The **Torus** node generates a signed distance function for a torus.
|
||||
|
||||
Parameters
|
||||
::::::::::
|
||||
|
||||
The **Torus** node accepts as parameters both radiuses of the torus.
|
||||
|
||||
Example images
|
||||
::::::::::::::
|
||||
|
||||
.. image:: images/node_sdf3d_torus_sample.png
|
||||
:align: center
|
24
addons/material_maker/doc/node_3d_sdf_transforms_rotate.rst
Normal file
@ -0,0 +1,24 @@
|
||||
Rotate node
|
||||
...........
|
||||
|
||||
The **Rotate** node generates a 3D signed distance function of a rotated shape
|
||||
based on its input.
|
||||
|
||||
.. image:: images/node_sdf3d_rotate.png
|
||||
:align: center
|
||||
|
||||
Inputs
|
||||
::::::
|
||||
|
||||
The **Rotate** node accepts an input in 3D signed distance function format.
|
||||
|
||||
Outputs
|
||||
:::::::
|
||||
|
||||
The **Rotate** node generates a signed distance function of the
|
||||
rotated input shape.
|
||||
|
||||
Parameters
|
||||
::::::::::
|
||||
|
||||
The **Rotate** node accepts *the angles of the rotations around the X, Y and Z axes* as parameters.
|
24
addons/material_maker/doc/node_3d_sdf_transforms_scale.rst
Normal file
@ -0,0 +1,24 @@
|
||||
Scale node
|
||||
..........
|
||||
|
||||
The **Scale** node generates a 3D signed distance function of a scaled shape
|
||||
based on its input.
|
||||
|
||||
.. image:: images/node_sdf3d_scale.png
|
||||
:align: center
|
||||
|
||||
Inputs
|
||||
::::::
|
||||
|
||||
The **Scale** node accepts an input in 3D signed distance function format.
|
||||
|
||||
Outputs
|
||||
:::::::
|
||||
|
||||
The **Scale** node generates a signed distance function of the
|
||||
scaled input shape.
|
||||
|
||||
Parameters
|
||||
::::::::::
|
||||
|
||||
The **Scale** node accepts *its scale factor* as parameters.
|
@ -0,0 +1,24 @@
|
||||
Translate node
|
||||
..............
|
||||
|
||||
The **Translate** node generates a 3D signed distance function of a translated shape
|
||||
based on its input.
|
||||
|
||||
.. image:: images/node_sdf3d_translate.png
|
||||
:align: center
|
||||
|
||||
Inputs
|
||||
::::::
|
||||
|
||||
The **Translate** node accepts an input in 3D signed distance function format.
|
||||
|
||||
Outputs
|
||||
:::::::
|
||||
|
||||
The **Translate** node generates a signed distance function of the
|
||||
translated input shape.
|
||||
|
||||
Parameters
|
||||
::::::::::
|
||||
|
||||
The **Translate** node accepts *the X, Y and Z components of the translation* as parameters.
|
@ -1,5 +1,5 @@
|
||||
Signed distance function geometry nodes
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
2D Signed distance function geometry nodes
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The signed distance function nodes can be used to define complex geometry using simple
|
||||
shapes.
|
||||
@ -7,7 +7,7 @@ shapes.
|
||||
They are based on a very small set of basic shapes, that can be combined using operators,
|
||||
and finally output as a greyscale image using the **sdShow** node.
|
||||
|
||||
All output samples shown in this sections are images generated through the **sdView** node.
|
||||
All output samples shown in this sections are images generated through the **sdShow** node.
|
||||
|
||||
All Signed Distance Functions nodes are based on code written by Inigo Quilez that can be found
|
||||
`on this page`__.
|
||||
|
10
addons/material_maker/doc/nodes_3d.rst
Normal file
@ -0,0 +1,10 @@
|
||||
3D nodes
|
||||
--------
|
||||
|
||||
The simple nodes are nodes that do not accept any input and generate one or several simple shapes.
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 0
|
||||
|
||||
node_3d_sdf
|
||||
|
@ -21,11 +21,12 @@ shortcut will make it possible to edit its contents using the pencil button.
|
||||
The newly created subgraph contains:
|
||||
|
||||
* all nodes that have been grouped
|
||||
* an **Input** and an **Output** node that rep^resent the inputs and the outputs
|
||||
* an **Input** and an **Output** node that represent the inputs and the outputs
|
||||
of the subgraph. Selecting them and using the **Control+W** shortcut makes them
|
||||
editable so the subgraph inputs and outputs can be added, removed reordered or
|
||||
renamed. Please note that all those operations will (when possible) keep
|
||||
connectivity inside and outside the subgraph.
|
||||
editable so the subgraph inputs and outputs can be added, removed, reordered,
|
||||
renamed or have their types modified.
|
||||
Please note that all those operations will (when possible) keep connectivity
|
||||
inside and outside the subgraph.
|
||||
* A **Parameters** node that is a **remote** can be edited to expose selected
|
||||
parameters to the parent graph. When grouping nodes with a **remote**, the
|
||||
remote will automatically be used as **Parameters** node in the nealy created
|
||||
|
@ -6,12 +6,6 @@
|
||||
"to": "colorize",
|
||||
"to_port": 0
|
||||
},
|
||||
{
|
||||
"from": "colorize",
|
||||
"from_port": 0,
|
||||
"to": "Material",
|
||||
"to_port": 2
|
||||
},
|
||||
{
|
||||
"from": "perlin",
|
||||
"from_port": 0,
|
||||
@ -30,18 +24,6 @@
|
||||
"to": "Material",
|
||||
"to_port": 6
|
||||
},
|
||||
{
|
||||
"from": "_3_2",
|
||||
"from_port": 0,
|
||||
"to": "colorize_3",
|
||||
"to_port": 0
|
||||
},
|
||||
{
|
||||
"from": "_3_2",
|
||||
"from_port": 0,
|
||||
"to": "occlusion",
|
||||
"to_port": 0
|
||||
},
|
||||
{
|
||||
"from": "occlusion",
|
||||
"from_port": 0,
|
||||
@ -84,24 +66,12 @@
|
||||
"to": "colorize_4",
|
||||
"to_port": 0
|
||||
},
|
||||
{
|
||||
"from": "_3_2",
|
||||
"from_port": 0,
|
||||
"to": "colorize_5",
|
||||
"to_port": 0
|
||||
},
|
||||
{
|
||||
"from": "colorize_2",
|
||||
"from_port": 0,
|
||||
"to": "blend",
|
||||
"to_port": 0
|
||||
},
|
||||
{
|
||||
"from": "colorize_5",
|
||||
"from_port": 0,
|
||||
"to": "blend",
|
||||
"to_port": 2
|
||||
},
|
||||
{
|
||||
"from": "colorize_4",
|
||||
"from_port": 0,
|
||||
@ -204,17 +174,65 @@
|
||||
"to": "blend_2",
|
||||
"to_port": 2
|
||||
},
|
||||
{
|
||||
"from": "graph_3",
|
||||
"from_port": 0,
|
||||
"to": "sdf3d_scale",
|
||||
"to_port": 0
|
||||
},
|
||||
{
|
||||
"from": "_3_2",
|
||||
"from_port": 0,
|
||||
"to": "buffer",
|
||||
"to_port": 0
|
||||
},
|
||||
{
|
||||
"from": "buffer",
|
||||
"from_port": 0,
|
||||
"to": "colorize_5",
|
||||
"to_port": 0
|
||||
},
|
||||
{
|
||||
"from": "buffer",
|
||||
"from_port": 0,
|
||||
"to": "colorize_5_2",
|
||||
"to_port": 0
|
||||
},
|
||||
{
|
||||
"from": "graph_3",
|
||||
"from": "buffer",
|
||||
"from_port": 0,
|
||||
"to": "sdf3d_scale",
|
||||
"to": "occlusion",
|
||||
"to_port": 0
|
||||
},
|
||||
{
|
||||
"from": "buffer",
|
||||
"from_port": 0,
|
||||
"to": "colorize_3",
|
||||
"to_port": 0
|
||||
},
|
||||
{
|
||||
"from": "colorize",
|
||||
"from_port": 0,
|
||||
"to": "blend_3",
|
||||
"to_port": 0
|
||||
},
|
||||
{
|
||||
"from": "blend_3",
|
||||
"from_port": 0,
|
||||
"to": "Material",
|
||||
"to_port": 2
|
||||
},
|
||||
{
|
||||
"from": "colorize_5",
|
||||
"from_port": 0,
|
||||
"to": "blend_3",
|
||||
"to_port": 1
|
||||
},
|
||||
{
|
||||
"from": "colorize_5_2",
|
||||
"from_port": 0,
|
||||
"to": "blend",
|
||||
"to_port": 2
|
||||
}
|
||||
],
|
||||
"label": "Graph",
|
||||
@ -227,8 +245,8 @@
|
||||
{
|
||||
"name": "Material",
|
||||
"node_position": {
|
||||
"x": 463,
|
||||
"y": 1358
|
||||
"x": 390,
|
||||
"y": 1354
|
||||
},
|
||||
"parameters": {
|
||||
"albedo_color": {
|
||||
@ -256,18 +274,18 @@
|
||||
"y": 1196.349854
|
||||
},
|
||||
"parameters": {
|
||||
"iterations": 7,
|
||||
"persistence": 0.75,
|
||||
"scale_x": 4,
|
||||
"scale_y": 4
|
||||
"iterations": 5,
|
||||
"persistence": 0.7,
|
||||
"scale_x": 32,
|
||||
"scale_y": 32
|
||||
},
|
||||
"type": "perlin"
|
||||
},
|
||||
{
|
||||
"name": "colorize",
|
||||
"node_position": {
|
||||
"x": -367.399658,
|
||||
"y": 1344.349976
|
||||
"x": -347.399658,
|
||||
"y": 1342.349976
|
||||
},
|
||||
"parameters": {
|
||||
"gradient": {
|
||||
@ -275,16 +293,16 @@
|
||||
"points": [
|
||||
{
|
||||
"a": 1,
|
||||
"b": 0.171875,
|
||||
"g": 0.171875,
|
||||
"pos": 0.1,
|
||||
"r": 0.171875
|
||||
"b": 0,
|
||||
"g": 0,
|
||||
"pos": 0.118182,
|
||||
"r": 0
|
||||
},
|
||||
{
|
||||
"a": 1,
|
||||
"b": 1,
|
||||
"g": 1,
|
||||
"pos": 1,
|
||||
"pos": 0.909091,
|
||||
"r": 1
|
||||
}
|
||||
],
|
||||
@ -365,11 +383,11 @@
|
||||
{
|
||||
"name": "uniform_greyscale",
|
||||
"node_position": {
|
||||
"x": 114.446899,
|
||||
"y": 1316.272949
|
||||
"x": 138.446899,
|
||||
"y": 1239.272949
|
||||
},
|
||||
"parameters": {
|
||||
"color": 0
|
||||
"color": 0.31
|
||||
},
|
||||
"type": "uniform_greyscale"
|
||||
},
|
||||
@ -411,7 +429,7 @@
|
||||
},
|
||||
"parameters": {
|
||||
"a": 0,
|
||||
"s": 0.33,
|
||||
"s": 0.3,
|
||||
"x": 0.35,
|
||||
"y": 0,
|
||||
"z": 0
|
||||
@ -426,7 +444,7 @@
|
||||
},
|
||||
"parameters": {
|
||||
"a": 0,
|
||||
"r": 0.35,
|
||||
"r": 0.25,
|
||||
"rx": 4,
|
||||
"ry": 4,
|
||||
"s": 0.3,
|
||||
@ -505,7 +523,7 @@
|
||||
"y": 1400.797363
|
||||
},
|
||||
"parameters": {
|
||||
"x": 0.35,
|
||||
"x": 0.4,
|
||||
"y": 0.35,
|
||||
"z": 0
|
||||
},
|
||||
@ -536,7 +554,7 @@
|
||||
},
|
||||
"parameters": {
|
||||
"a": 0,
|
||||
"r": 0.35,
|
||||
"r": 0.25,
|
||||
"rx": 4,
|
||||
"ry": 4,
|
||||
"s": 0.3,
|
||||
@ -579,26 +597,26 @@
|
||||
{
|
||||
"name": "colorize_5",
|
||||
"node_position": {
|
||||
"x": -131.127869,
|
||||
"y": 1320.013184
|
||||
"x": -147.127869,
|
||||
"y": 1324.013184
|
||||
},
|
||||
"parameters": {
|
||||
"gradient": {
|
||||
"interpolation": 1,
|
||||
"interpolation": 0,
|
||||
"points": [
|
||||
{
|
||||
"a": 1,
|
||||
"b": 0,
|
||||
"g": 0,
|
||||
"pos": 0,
|
||||
"r": 0
|
||||
},
|
||||
{
|
||||
"a": 1,
|
||||
"b": 1,
|
||||
"g": 1,
|
||||
"pos": 0.063636,
|
||||
"pos": 0,
|
||||
"r": 1
|
||||
},
|
||||
{
|
||||
"a": 1,
|
||||
"b": 0.520833,
|
||||
"g": 0.520833,
|
||||
"pos": 0.036364,
|
||||
"r": 0.520833
|
||||
}
|
||||
],
|
||||
"type": "Gradient"
|
||||
@ -609,8 +627,8 @@
|
||||
{
|
||||
"name": "blend",
|
||||
"node_position": {
|
||||
"x": 78.872131,
|
||||
"y": 1216.013184
|
||||
"x": 126.872131,
|
||||
"y": 1141.013184
|
||||
},
|
||||
"parameters": {
|
||||
"amount": 0.5,
|
||||
@ -1030,7 +1048,7 @@
|
||||
},
|
||||
"parameters": {
|
||||
"amount": 0.5,
|
||||
"param0": 10,
|
||||
"param0": 11,
|
||||
"param1": 1.02,
|
||||
"param2": 0,
|
||||
"size": 4
|
||||
@ -1147,12 +1165,6 @@
|
||||
"to": "sdf3d_smoothboolean_3_2_3",
|
||||
"to_port": 0
|
||||
},
|
||||
{
|
||||
"from": "sdf3d_translate_4_3_3",
|
||||
"from_port": 0,
|
||||
"to": "gen_outputs",
|
||||
"to_port": 0
|
||||
},
|
||||
{
|
||||
"from": "sdf3d_smoothboolean_3_2_3",
|
||||
"from_port": 0,
|
||||
@ -1284,6 +1296,12 @@
|
||||
"from_port": 0,
|
||||
"to": "sdf3d_boolean",
|
||||
"to_port": 1
|
||||
},
|
||||
{
|
||||
"from": "sdf3d_translate_4_3_3",
|
||||
"from_port": 0,
|
||||
"to": "gen_outputs",
|
||||
"to_port": 0
|
||||
}
|
||||
],
|
||||
"label": "Skull",
|
||||
@ -1304,7 +1322,7 @@
|
||||
"cx": 0,
|
||||
"cy": 0,
|
||||
"h": 0.08,
|
||||
"k": 0.1,
|
||||
"k": 0.04,
|
||||
"op": 0,
|
||||
"r": 0.3,
|
||||
"w": 0.28
|
||||
@ -1423,7 +1441,7 @@
|
||||
},
|
||||
"parameters": {
|
||||
"a": 0,
|
||||
"ax": -32,
|
||||
"ax": -30,
|
||||
"ay": 45,
|
||||
"az": 0,
|
||||
"x": 0.35,
|
||||
@ -1441,7 +1459,7 @@
|
||||
"parameters": {
|
||||
"x": 0,
|
||||
"y": 0.11,
|
||||
"z": 0.21
|
||||
"z": 0.19
|
||||
},
|
||||
"type": "sdf3d_translate"
|
||||
},
|
||||
@ -1593,8 +1611,8 @@
|
||||
{
|
||||
"name": "gen_outputs",
|
||||
"node_position": {
|
||||
"x": -238.318359,
|
||||
"y": 1764.935181
|
||||
"x": -194.318359,
|
||||
"y": 1767.935181
|
||||
},
|
||||
"parameters": {
|
||||
|
||||
@ -1908,6 +1926,30 @@
|
||||
|
||||
},
|
||||
"type": "graph"
|
||||
},
|
||||
{
|
||||
"name": "buffer",
|
||||
"node_position": {
|
||||
"x": -353.830994,
|
||||
"y": 1560.222534
|
||||
},
|
||||
"parameters": {
|
||||
"lod": 0,
|
||||
"size": 11
|
||||
},
|
||||
"type": "buffer"
|
||||
},
|
||||
{
|
||||
"name": "blend_3",
|
||||
"node_position": {
|
||||
"x": 84.334427,
|
||||
"y": 1296.834595
|
||||
},
|
||||
"parameters": {
|
||||
"amount": 1,
|
||||
"blend_type": 3
|
||||
},
|
||||
"type": "blend"
|
||||
}
|
||||
],
|
||||
"parameters": {
|
||||
|
@ -13,7 +13,7 @@
|
||||
},
|
||||
"shader_model": {
|
||||
"code": "",
|
||||
"global": "vec2 rotate(vec2 uv, float a) {\n\tvec2 rv;\n\tfloat c = cos(a);\n\tfloat s = sin(a);\n\tuv -= vec2(0.5);\n\trv.x = uv.x*c+uv.y*s;\n\trv.y = -uv.x*s+uv.y*c;\n\treturn rv+vec2(0.5);\n}\n",
|
||||
"global": "",
|
||||
"inputs": [
|
||||
{
|
||||
"default": "0.0",
|
||||
|
@ -12,7 +12,7 @@
|
||||
},
|
||||
"shader_model": {
|
||||
"code": "",
|
||||
"global": "vec2 rotate(vec2 uv, float a) {\n\tvec2 rv;\n\tfloat c = cos(a);\n\tfloat s = sin(a);\n\tuv -= vec2(0.5);\n\trv.x = uv.x*c+uv.y*s;\n\trv.y = -uv.x*s+uv.y*c;\n\treturn rv+vec2(0.5);\n}\n",
|
||||
"global": "vec2 sdf2d_rotate(vec2 uv, float a) {\n\tvec2 rv;\n\tfloat c = cos(a);\n\tfloat s = sin(a);\n\tuv -= vec2(0.5);\n\trv.x = uv.x*c+uv.y*s;\n\trv.y = -uv.x*s+uv.y*c;\n\treturn rv+vec2(0.5);\n}\n",
|
||||
"inputs": [
|
||||
{
|
||||
"default": "0.0",
|
||||
@ -25,7 +25,7 @@
|
||||
"name": "Rotate",
|
||||
"outputs": [
|
||||
{
|
||||
"sdf2d": "$in(rotate($uv, $a*0.01745329251))",
|
||||
"sdf2d": "$in(sdf2d_rotate($uv, $a*0.01745329251))",
|
||||
"type": "sdf2d"
|
||||
}
|
||||
],
|
||||
|