nodes_xyz/README.md

7.4 KiB

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.

Getting started

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) above.

To easily get access to the provided nodes, activate the Node Presets add-on and configure it to parse one of the subdirectories (e.g. shadingNodes).

As soon as the asset browser supports node groups in an official release, this organization might change a bit to support the asset workflow.

List of nodes

Shading utility nodes

HSV_Object_Variation

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.

If

Switches between 2 vector values based on a boolean input.

Object Size

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.

Spherical Coords

A node, that takes e.g. a shading position and calculates the angles of spherical coordinates.

Voronoi Based Noise

A kind of noise node, that is based on a voronoi pattern

InteriorMapping

This is a shading node, that computes texture coordinates to make an image of a rendered room, like above, having depth. It can handle generating UVs for multiple rooms organized with UDIMs. The folder shadingNodes/rooms/ contains 4 example rooms with 2 different sizes. The example scene demonstrates how to use them and also how to set up the UVs of the quads representing the windows into the rooms.

Full materials

Water

A volumetric water material.

World shader nodes

LocalEnvUV

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.

Geometry nodes

Bricker (Blender 3.4)

This group takes a set of polygons lying flat on the xy plane. It then subdivides all of them along the principal x- and y-axes. Options are whether the quads of the grid are kept only if lying completely within the original polygon or if a partial overlap is okay. For partial overlap it's also possible, to align the outside points to the original geometry. In that case, the boundary layer wil not be squares anymore, but the geometry is aligning much closer to the original one.

OffsetCurve (Blender 3.4)

This group generates a curve, that is a specified distance apart from the input curve. It works also on non-planar curves and concave ones.

Tissue (Blender 3.1)

This is a geo node group, that mimicks what the Tissue addon provided with blender is doing.

Deform Objects to curve (Blender 3.1)

This node group aligns a set of objects on a curve and additionally allows deforming them along the curve itself.

BBoxField (Blender 3.1)

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.

BoxDeform (Blender 3.1)

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.

Lerp (Blender 3.1)

Contained within the deformObjectsToCurve.blend file, this is a simple node, that interpolates between 2 vector values based on a numeric input t, which is given in the range of [0..1].

IslandCenterField (Blender 3.1)

A field node, that returns the center point of each mesh island.

SetUpAxisTilt (Blender 3.1)

A node, that mimics blender's native z-Up curve orientation by calculating the corresponding tilt angles.

VisualizeInt (Blender 3.1)

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 (Blender 3.1)

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
  • VisualizeFaceCornerVector

Assets

The repository also will contain a list of small assets, that can be reused in multiple projects.

Eye

UFO

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 directory contains some little utility scripts, that are useful for asset handling.

  • createAssetCatalogsFromFileTree.py takes a directory structure and creates/updates a catalog file for blender's asset browser.
  • 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.