Instances(インスタンス)

../../_images/modeling_geometry-nodes_instances.png

3種類のインスタンス。

ジオメトリは、メッシュやカーブなどの実際のデータを格納するだけでなく、インスタンスを格納できます。インスタンス自体は、より多くのジオメトリ、オブジェクト、コレクションを参照できます。インスタンス化の目的は、実際のデータを複製することなく、結果にはるかに多くのジオメトリを含めることができるようにすることです。これは、 Cycles のようなレンダラーが、データが複製される場合よりも、多くの異なる場所で同じジオメトリデータをより適切に処理できるためです。

各インスタンスは、対応するジオメトリと Transform(トランスフォーム) を追跡します。インスタンスは、インスタンスがアニメーション内で移動するときにモーションブラーを修正するために使用される id 属性を保存することもできます。

ジオメトリノードでインスタンスを作成するために使用されるメインノードは、 Instance on Points(ポイントにインスタンス作成)ノード です。

警告

現在、ジオメトリノードからのインスタンス化は 、プロパティエディタの Instancing(インスタンス化) パネルからのインスタンス化と混在させることはできません。

ネストしたインスタンス化

インスタンスはジオメトリを格納でき、ジオメトリにはインスタンスを含めることができるため、ネストしたインスタンス化が可能です。つまり、インスタンスやインスタンスのコレクションをインスタンス化することも可能です。デフォルトでは、 Instance on Points(ポイントにインスタンス作成)ノード は、ポイントの実際のジオメトリとインスタンス化されたジオメトリをインスタンス化することにより、ネストしたインスタンスを作成します。

../../_images/modeling_geometry-nodes_instances-nested.png

A node group that creates nested instancing by chaining instance on points nodes.

ここでは、ネストしたインスタンス化を使用して、メッシュとインスタンスの両方を含むジオメトリを分配します。出力ジオメトリには、 "実際の" メッシュとインスタンスのグループが含まれています。各インスタンスには、球メッシュと円錐ジオメトリの多くのインスタンスが含まれています。

../../_images/modeling_geometry-nodes_instances-nested-tree.png

上記の例のインスタンス化されたジオメトリのツリー。

この方法が役立つのは、出力ジオメトリに平面、球、円錐の3つの一意なメッシュしか含まれていないことです。これにより、メッシュがより複雑になった場合にパフォーマンスが大幅に向上します。

警告

現在、レンダリングとビューポートでサポートされているネストしたインスタンス化のレベルは8つだけです。インスタンスのより深いツリーはジオメトリノード内に作成できますが、ノードツリーの最後で実現する必要があります。

インスタンス処理

ジオメトリを処理するほとんどすべてのノードは、入力のインスタンスツリー内の各一意のジオメトリを個別に処理することによって処理します。例えば、 Subdivision Surface Node が上記の例の最後に配置されている場合、メッシュの各インスタンスではなく、3つのメッシュをサブディビジョンするだけで済みます。もう1つの重要な例は、 String to Curves Node への出力を使用した処理です。この場合、一意の各文字は1回だけ処理する必要があります。

この方法はパフォーマンスを大幅に向上させることができますが、操作の結果は特定のジオメトリのすべてのインスタンスで同じになることを意味します。インスタンスごとに一意の結果を得るには、 Realize Instances(インスタンス実体化)ノード を使用できます。