[Bf-docboard-svn] bf-manual: [8631] branches/blender-3.0-release/blender_docs/manual: Geometry Nodes: Add new page explaining instances behavior

Hans Goudey noreply at blender.org
Tue Nov 16 15:56:02 CET 2021


Revision: 8631
          https://developer.blender.org/rBM8631
Author:   HooglyBoogly
Date:     2021-11-16 15:56:02 +0100 (Tue, 16 Nov 2021)
Log Message:
-----------
Geometry Nodes: Add new page explaining instances behavior

Modified Paths:
--------------
    branches/blender-3.0-release/blender_docs/manual/modeling/geometry_nodes/index.rst
    branches/blender-3.0-release/blender_docs/manual/modeling/geometry_nodes/input/position.rst
    branches/blender-3.0-release/blender_docs/manual/modeling/geometry_nodes/instances/instance_on_points.rst

Added Paths:
-----------
    branches/blender-3.0-release/blender_docs/manual/images/modeling_geometry-nodes_instances-nested-tree.png
    branches/blender-3.0-release/blender_docs/manual/images/modeling_geometry-nodes_instances-nested.png
    branches/blender-3.0-release/blender_docs/manual/images/modeling_geometry-nodes_instances.png
    branches/blender-3.0-release/blender_docs/manual/modeling/geometry_nodes/instances.rst

Added: branches/blender-3.0-release/blender_docs/manual/images/modeling_geometry-nodes_instances-nested-tree.png
===================================================================
(Binary files differ)

Index: branches/blender-3.0-release/blender_docs/manual/images/modeling_geometry-nodes_instances-nested-tree.png
===================================================================
--- branches/blender-3.0-release/blender_docs/manual/images/modeling_geometry-nodes_instances-nested-tree.png	2021-11-16 13:48:12 UTC (rev 8630)
+++ branches/blender-3.0-release/blender_docs/manual/images/modeling_geometry-nodes_instances-nested-tree.png	2021-11-16 14:56:02 UTC (rev 8631)

Property changes on: branches/blender-3.0-release/blender_docs/manual/images/modeling_geometry-nodes_instances-nested-tree.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Added: branches/blender-3.0-release/blender_docs/manual/images/modeling_geometry-nodes_instances-nested.png
===================================================================
(Binary files differ)

Index: branches/blender-3.0-release/blender_docs/manual/images/modeling_geometry-nodes_instances-nested.png
===================================================================
--- branches/blender-3.0-release/blender_docs/manual/images/modeling_geometry-nodes_instances-nested.png	2021-11-16 13:48:12 UTC (rev 8630)
+++ branches/blender-3.0-release/blender_docs/manual/images/modeling_geometry-nodes_instances-nested.png	2021-11-16 14:56:02 UTC (rev 8631)

Property changes on: branches/blender-3.0-release/blender_docs/manual/images/modeling_geometry-nodes_instances-nested.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Added: branches/blender-3.0-release/blender_docs/manual/images/modeling_geometry-nodes_instances.png
===================================================================
(Binary files differ)

Index: branches/blender-3.0-release/blender_docs/manual/images/modeling_geometry-nodes_instances.png
===================================================================
--- branches/blender-3.0-release/blender_docs/manual/images/modeling_geometry-nodes_instances.png	2021-11-16 13:48:12 UTC (rev 8630)
+++ branches/blender-3.0-release/blender_docs/manual/images/modeling_geometry-nodes_instances.png	2021-11-16 14:56:02 UTC (rev 8631)

Property changes on: branches/blender-3.0-release/blender_docs/manual/images/modeling_geometry-nodes_instances.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Modified: branches/blender-3.0-release/blender_docs/manual/modeling/geometry_nodes/index.rst
===================================================================
--- branches/blender-3.0-release/blender_docs/manual/modeling/geometry_nodes/index.rst	2021-11-16 13:48:12 UTC (rev 8630)
+++ branches/blender-3.0-release/blender_docs/manual/modeling/geometry_nodes/index.rst	2021-11-16 14:56:02 UTC (rev 8631)
@@ -13,6 +13,7 @@
    inspection.rst
    attributes_reference.rst
    fields.rst
+   instances.rst
 
 
 Node Types

Modified: branches/blender-3.0-release/blender_docs/manual/modeling/geometry_nodes/input/position.rst
===================================================================
--- branches/blender-3.0-release/blender_docs/manual/modeling/geometry_nodes/input/position.rst	2021-11-16 13:48:12 UTC (rev 8630)
+++ branches/blender-3.0-release/blender_docs/manual/modeling/geometry_nodes/input/position.rst	2021-11-16 14:56:02 UTC (rev 8631)
@@ -14,12 +14,13 @@
 
 The node can work on geometry domains besides points. In that case, the position data will be
 automatically interpolated to the new domain. For example, when used as part of the input to
-the mesh :doc:`edge split </modeling/geometry_nodes/mesh/split_edges>` node, the position for each edge
-will be the average position of the edges two vertices.
+the :doc:`/modeling/geometry_nodes/mesh/split_edges`, the position for each edge
+will be the average position of the edge's two vertices.
 
-For instances, the output is the origin of each instance. However, if the node is for a geometry node
-that adjusts data inside instances, the position output of this node will be in the local space of
-each instance.
+For instances themselves, the output is the origin of each instance. However, if the node is for
+a geometry node that adjusts data inside instances, the position output of this node will be
+in the local space of each instance. See the :ref:`geometry-nodes_instance-processing` page
+for more details.
 
 
 Inputs

Modified: branches/blender-3.0-release/blender_docs/manual/modeling/geometry_nodes/instances/instance_on_points.rst
===================================================================
--- branches/blender-3.0-release/blender_docs/manual/modeling/geometry_nodes/instances/instance_on_points.rst	2021-11-16 13:48:12 UTC (rev 8630)
+++ branches/blender-3.0-release/blender_docs/manual/modeling/geometry_nodes/instances/instance_on_points.rst	2021-11-16 14:56:02 UTC (rev 8631)
@@ -31,9 +31,9 @@
    .. note::
 
       If the input geometry contains instances, the node will create more instances on
-      the points inside the instances, creating nested instancing. When this happens,
-      each new instance will have the transform created by the node from the *Rotation* and *Scale* inputs,
-      but it will *also* be transformed based on the parent instances.
+      the points inside the instances, creating :ref:`nested instancing <geometry-nodes_nested-instancing>`.
+      When this happens, each new instance will have the transform created by the node from the *Rotation*
+      and *Scale* inputs, but it will *also* be transformed based on the parent instances.
 
 Selection
    Whether to instance on each point. True values mean the an instance will be generated on the point,

Added: branches/blender-3.0-release/blender_docs/manual/modeling/geometry_nodes/instances.rst
===================================================================
--- branches/blender-3.0-release/blender_docs/manual/modeling/geometry_nodes/instances.rst	                        (rev 0)
+++ branches/blender-3.0-release/blender_docs/manual/modeling/geometry_nodes/instances.rst	2021-11-16 14:56:02 UTC (rev 8631)
@@ -0,0 +1,79 @@
+.. index:: Geometry Nodes; Instances
+
+*********
+Instances
+*********
+
+.. figure:: /images/modeling_geometry-nodes_instances.png
+   :align: center
+
+   The three types of instances.
+
+
+What are Instances?
+===================
+
+In addition to storing real data like a mesh or a curve, a geometry can store instances,
+which themselves can reference more geometry, or an object, or a collection. The purpose
+of instancing is to allow including much more geometry in the result, without duplicating
+the actual data. This is because renderer engines like :doc:`Cycles </render/cycles/index>`
+can handle the same geometry data in many different locations better than when the data
+is duplicated.
+
+Each instance keeps track of which geometry it corresponds to, and a :term:`Transform`.
+Instances can also store the ``id`` attribute, used for correct motion blur when instances
+move in an animation.
+
+The main node used to create instances in geometry nodes is the
+:doc:`/modeling/geometry_nodes/instances/instance_on_points`.
+
+.. _geometry-nodes_nested-instancing:
+
+Nested Instancing
+=================
+
+Since instances can store a geometry, and a geometry can contain instances, nested instancing
+is possible. In other words, it is possible to instance an instance, or even a collection
+of instances.
+
+By default, the :doc:`/modeling/geometry_nodes/instances/instance_on_points` will create
+nested instances by instancing on the points real geometry and instanced geometry.
+
+
+.. figure:: /images/modeling_geometry-nodes_instances-nested.png
+   :align: center
+
+   A node group that creates nested instancing by chaining 
+   :doc:`instance on points </modeling/geometry_nodes/instances/instance_on_points>` nodes.
+
+Here, nested instancing is used to distribute geometry that contains both a mesh
+and instances. The output geometry contains a "real" mesh, and a group of instances.
+Each instance contains a sphere mesh and many instances of a cone geometry.
+
+.. figure:: /images/modeling_geometry-nodes_instances-nested-tree.png
+   :align: center
+   :width: 50%
+
+   The tree of instanced geometry for the example above.
+
+What makes this method helpful is that the output geometry only contains three unique meshes--
+the plane, the sphere, and the cone. This would make performance much better if the meshes
+were more complicated.
+
+.. _geometry-nodes_instance-processing:
+
+Instance Processing
+===================
+
+Almost all nodes that process geometry do so by processing each unique geometry in their
+input's tree of instances separately. For example, if a 
+:doc:`/modeling/geometry_nodes/mesh/subdivision_surface` node was placed
+at the end of the example above, it would only have to subdivide three meshes,
+rather than each instance of a mesh. Another important example is processing with
+the output of the :doc:`/modeling/geometry_nodes/text/string_to_curves`, where
+each unique character only has to be processed once.
+
+This method can improve performance a lot, but it means that the result of an operation
+will be the same for every instance of a certain geometry. In order to have unique results
+for every instance, the :doc:`/modeling/geometry_nodes/instances/realize_instances`
+node can be used.
\ No newline at end of file


Property changes on: branches/blender-3.0-release/blender_docs/manual/modeling/geometry_nodes/instances.rst
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property


More information about the Bf-docboard-svn mailing list