2022-02-21 21:56:15 +00:00
|
|
|
# nodes_xyz
|
|
|
|
|
|
|
|
A collection of my commonly used blender node groups (shading nodes, geometry nodes, ...)
|
|
|
|
|
2022-11-05 22:25:15 +00:00
|
|
|
All the content is prepared to be used with blender's asset browser. Just add the root directory of this repository to
|
|
|
|
the asset libraries in the preferences and enjoy all the content.
|
|
|
|
|
2022-02-21 21:56:15 +00:00
|
|
|
## Getting started
|
|
|
|
|
2022-02-22 22:21:12 +00:00
|
|
|
To get the nodes either download the respecive blend file directly or download the full repository as a zip file using
|
|
|
|
this button (![download-icon](icons/download.png)) above.
|
2022-02-21 21:56:15 +00:00
|
|
|
|
2022-02-22 22:21:12 +00:00
|
|
|
To easily get access to the provided nodes, activate the
|
|
|
|
[Node Presets](https://docs.blender.org/manual/en/dev/addons/node/node_presets.html) add-on and configure it to parse
|
|
|
|
one of the subdirectories (e.g. [shadingNodes](./shadingNodes)).
|
2022-02-21 21:56:15 +00:00
|
|
|
|
2022-02-22 22:21:12 +00:00
|
|
|
As soon as the asset browser supports node groups in an official release, this organization might change a bit to
|
|
|
|
support the asset workflow.
|
2022-02-21 21:56:15 +00:00
|
|
|
|
2022-02-22 22:21:12 +00:00
|
|
|
# List of nodes
|
2022-02-21 21:56:15 +00:00
|
|
|
|
2022-06-15 21:51:34 +00:00
|
|
|
## Shading utility nodes
|
2022-02-21 21:56:15 +00:00
|
|
|
|
2022-02-22 22:21:12 +00:00
|
|
|
### [HSV_Object_Variation](shadingNodes/shadingNodeGroupCollection.blend)
|
2022-02-21 21:56:15 +00:00
|
|
|
|
2022-02-22 22:21:12 +00:00
|
|
|
> This node can be integated whenever a whole set of instances is being shaded (e.g. a bunch of rocks). It allows to
|
|
|
|
> vary each instance in hue, saturation and value.
|
2022-02-21 21:56:15 +00:00
|
|
|
|
2022-02-22 22:21:12 +00:00
|
|
|
### [If](shadingNodes/shadingNodeGroupCollection.blend)
|
2022-02-21 21:56:15 +00:00
|
|
|
|
2022-02-22 22:21:12 +00:00
|
|
|
> Switches between 2 vector values based on a boolean input.
|
2022-02-21 21:56:15 +00:00
|
|
|
|
2022-02-22 22:21:12 +00:00
|
|
|
### [Object Size](shadingNodes/shadingNodeGroupCollection.blend)
|
2022-02-21 21:56:15 +00:00
|
|
|
|
2022-02-22 22:21:12 +00:00
|
|
|
> A node, that can be used when shading multiple instances, that are scaled in size. Through this node, it's possible
|
|
|
|
> to get a factor of the size differences between the instances and align texture coordinates based on this factor.
|
2022-02-21 21:56:15 +00:00
|
|
|
|
2022-02-22 22:21:12 +00:00
|
|
|
### [Spherical Coords](shadingNodes/shadingNodeGroupCollection.blend)
|
2022-02-21 21:56:15 +00:00
|
|
|
|
2022-02-22 22:21:12 +00:00
|
|
|
> A node, that takes e.g. a shading position and calculates the angles of spherical coordinates.
|
2022-02-21 21:56:15 +00:00
|
|
|
|
2022-02-22 22:21:12 +00:00
|
|
|
### [Voronoi Based Noise](shadingNodes/shadingNodeGroupCollection.blend)
|
2022-02-21 21:56:15 +00:00
|
|
|
|
2022-02-22 22:21:12 +00:00
|
|
|
> A kind of noise node, that is based on a voronoi pattern
|
2022-02-21 21:56:15 +00:00
|
|
|
|
2022-06-15 21:51:34 +00:00
|
|
|
## Full materials
|
|
|
|
|
|
|
|
### [Water](shadingNodes/water.blend)
|
|
|
|
|
|
|
|
<img src="shadingNodes/water.png" height=200/>
|
|
|
|
|
|
|
|
> A volumetric water material.
|
|
|
|
|
2022-11-05 22:25:15 +00:00
|
|
|
## World shader nodes
|
|
|
|
|
|
|
|
### [LocalEnvUV](worldNodes/halfDomeEnv.blend)
|
|
|
|
|
|
|
|
<img src="worldNodes/halfDomeEnv.png" height=200 />
|
|
|
|
|
|
|
|
> A node, that calculates environment map UVs for realizing a flat ground on an HDRI based world environment. Just
|
|
|
|
> connect this node to your environment image and adjust the size, camera height and the orientation angle to setup the
|
|
|
|
> HDRI.
|
|
|
|
|
|
|
|
|
2022-02-22 22:21:12 +00:00
|
|
|
## Geometry nodes
|
2022-02-21 21:56:15 +00:00
|
|
|
|
2022-02-22 22:21:12 +00:00
|
|
|
### [Tissue](geoNodes/tissue.blend) (Blender 3.1)
|
2022-02-22 22:46:57 +00:00
|
|
|
|
|
|
|
<img src="geoNodes/tissue.jpg" height=200/>
|
|
|
|
|
2022-02-22 22:21:12 +00:00
|
|
|
> This is a geo node group, that mimicks what the
|
|
|
|
> [Tissue](https://docs.blender.org/manual/en/latest/addons/mesh/tissue.html) addon provided with blender is doing.
|
2022-02-21 21:56:15 +00:00
|
|
|
|
2022-02-22 22:21:12 +00:00
|
|
|
### [Deform Objects to curve](geoNodes/deformObjectsToCurve.blend) (Blender 3.1)
|
2022-02-21 21:56:15 +00:00
|
|
|
|
2022-02-22 22:46:57 +00:00
|
|
|
<img src="geoNodes/deformObjectsToCurve.jpg" height=200/>
|
|
|
|
|
2022-02-22 22:21:12 +00:00
|
|
|
> This node group aligns a set of objects on a curve and additionally allows deforming them along the curve itself.
|
2022-02-21 21:56:15 +00:00
|
|
|
|
2022-02-22 22:21:12 +00:00
|
|
|
### [BBoxField](geoNodes/deformObjectsToCurve.blend) (Blender 3.1)
|
2022-02-21 21:56:15 +00:00
|
|
|
|
2022-02-22 22:21:12 +00:00
|
|
|
> Contained within the `deformObjectsToCurve.blend` file, this node provides a field output, that defines the bounding
|
|
|
|
> box of each instance being provided through the Instances parameter.
|
2022-02-21 21:56:15 +00:00
|
|
|
|
2022-02-22 22:21:12 +00:00
|
|
|
### [BoxDeform](geoNodes/deformObjectsToCurve.blend) (Blender 3.1)
|
2022-02-21 21:56:15 +00:00
|
|
|
|
2022-02-22 22:21:12 +00:00
|
|
|
> Also contained within the `deformObjectsToCurve.blend` file, this node takes a normalized geometry (e.g. contained
|
|
|
|
> within the [0..1] cube) and interpolates the point positions to a box provided by the 8 corner input parameters.
|
2022-02-21 21:56:15 +00:00
|
|
|
|
2022-02-22 22:21:12 +00:00
|
|
|
### [Lerp](geoNodes/deformObjectsToCurve.blend) (Blender 3.1)
|
2022-02-21 21:56:15 +00:00
|
|
|
|
2022-02-22 22:26:20 +00:00
|
|
|
> Contained within the `deformObjectsToCurve.blend` file, this is a simple node, that interpolates between 2 vector
|
2022-02-22 22:21:12 +00:00
|
|
|
> values based on a numeric input t, which is given in the range of [0..1].
|
2022-02-21 21:56:15 +00:00
|
|
|
|
2022-04-26 21:35:49 +00:00
|
|
|
### [IslandCenterField](geoNodes/islandCenterField.blend) (Blender 3.1)
|
|
|
|
|
|
|
|
<img src="geoNodes/islandCenterField.jpg" height=200 />
|
|
|
|
|
|
|
|
> A field node, that returns the center point of each mesh island.
|
|
|
|
|
2022-05-15 20:27:49 +00:00
|
|
|
### [SetUpAxisTilt](geoNodes/setUpAxisTilt.blend) (Blender 3.1)
|
|
|
|
|
|
|
|
<img src="geoNodes/setUpAxisTilt.jpg" height=200 />
|
|
|
|
|
2022-05-15 20:32:49 +00:00
|
|
|
> A node, that mimics blender's native z-Up curve orientation by calculating the corresponding tilt angles.
|
2022-05-15 20:27:49 +00:00
|
|
|
|
2022-04-26 21:35:49 +00:00
|
|
|
### [VisualizeInt](geoNodes/visualizeInt.blend) (Blender 3.1)
|
|
|
|
|
|
|
|
<img src="geoNodes/visualizeInt.jpg" height=200 />
|
|
|
|
|
|
|
|
> Three nodes to debug node trees. They take a geometry and an integer field to display the field numbers at the
|
|
|
|
> respective geometrical elements. Available implementations:
|
|
|
|
> * VisualizePointInt
|
|
|
|
> * VisualizeEdgeInt
|
|
|
|
> * VisualizeFaceInt
|
|
|
|
>
|
|
|
|
> Screenshot above shows the edge visualizer.
|
|
|
|
|
2022-05-02 20:31:06 +00:00
|
|
|
### [VisualizeVector](geoNodes/visualizeVector.blend) (Blender 3.1)
|
2022-04-26 21:35:49 +00:00
|
|
|
|
2022-05-02 20:31:06 +00:00
|
|
|
<img src="geoNodes/visualizeVector.jpg" height=200 />
|
2022-04-26 21:35:49 +00:00
|
|
|
|
2022-05-02 21:10:27 +00:00
|
|
|
> Four nodes to debug node trees. They take a geometry and a vector field. It evaluates the field at each respective
|
2022-05-02 20:31:06 +00:00
|
|
|
> geometrical element and places an arrow which represents the vector of the field visually with its direction and
|
|
|
|
> magnitude. Available implementations:
|
|
|
|
> * VisualizePointVector
|
|
|
|
> * VisualizeEdgeVector
|
|
|
|
> * VisualizeFaceVector
|
2022-05-02 21:10:27 +00:00
|
|
|
> * VisualizeFaceCornerVector
|
2022-02-21 21:56:15 +00:00
|
|
|
|
2022-02-22 22:21:12 +00:00
|
|
|
# Assets
|
2022-02-21 21:56:15 +00:00
|
|
|
|
2022-02-22 22:21:12 +00:00
|
|
|
The repository also will contain a list of small assets, that can be reused in multiple projects.
|
2022-02-21 21:56:15 +00:00
|
|
|
|
2022-02-22 22:21:12 +00:00
|
|
|
## Eye
|
2022-02-21 21:56:15 +00:00
|
|
|
|
2022-06-15 21:51:34 +00:00
|
|
|
[<img src="assets/eye.png" height=200/>](assets/eye.blend)
|
|
|
|
|
|
|
|
## UFO
|
|
|
|
|
|
|
|
[<img src="assets/ufo.png" height=200/>](assets/ufo.blend)
|
|
|
|
|
2022-11-05 22:25:15 +00:00
|
|
|
> A procedural UFO, that utilizes geometry nodes to build the spaceship from a cross section curve. This model
|
|
|
|
> additionally is rigged and has a laser mounted at the bottom.
|
|
|
|
|
|
|
|
# Scripts
|
|
|
|
|
|
|
|
The [scripts](scripts/) directory contains some little utility scripts, that are useful for asset handling.
|
|
|
|
|
|
|
|
* [createAssetCatalogsFromFileTree.py](scripts/createAssetCatalogsFromFileTree.py) takes a directory structure and
|
|
|
|
creates/updates a catalog file for blender's asset browser.
|
|
|
|
* [mark_scene_entities_as_asset.sh](scripts/mark_scene_entities_as_asset.sh) is a little script, that takes a scene file
|
|
|
|
and marks the content as assets. It looks into the scene file and if there's only a single object, this objects gets
|
|
|
|
marked as an asset, otherwise all top level collections will be assets. Additionally is finds the right catalog to
|
|
|
|
sort the assets into, ensures there's a preview image and if needed even renders one.
|