nodes_xyz/README.md

155 wiersze
6.1 KiB
Markdown
Czysty Zwykły widok Historia

2022-02-21 21:56:15 +00:00
# nodes_xyz
A collection of my commonly used blender node groups (shading nodes, geometry nodes, ...)
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
## 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
## Full materials
### [Water](shadingNodes/water.blend)
<img src="shadingNodes/water.png" height=200/>
> A volumetric water material.
## 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)
<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
<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
### [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.
### [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.
### [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.
### [VisualizeVector](geoNodes/visualizeVector.blend) (Blender 3.1)
<img src="geoNodes/visualizeVector.jpg" height=200 />
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
> 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
[<img src="assets/eye.png" height=200/>](assets/eye.blend)
## UFO
[<img src="assets/ufo.png" height=200/>](assets/ufo.blend)
> 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.