Добавить иерархию узлов и поделиться геометрическими данными сетки между несколькими узлами сцены 3D

Добавить иерархию узлов в документе сцены 3D

Aspose.3D for .NET предлагает построить иерархию узлов. Узел является основным строительным блоком сцены. Иерархия узлов определяет логическую структуру сцены и обеспечивает видимый контент путем присоединения к узлам геометрии, источников света и камер.

Пример графов сцены

Образец иерархии сцен выглядит так:

! Для: имаге_альт_текст

В Aspose.3D каждый экземпляр Node может иметь несколько дочерних узлов, в этом примере мы создали узел с двумя кубическими узлами, если мы повернем корневой узел, все дочерние узлы также будут затронуты:

Поделитесь данными геометрии Mesh между несколькими узлами

Чтобы уменьшить потребность в памяти, один экземпляр класса Mesh может быть привязан к различным экземплярам класса Node. Предположим, что вам нужна система, в которой все кубики 3D кажутся неразличимыми, но вам требуется большое количество из них. Вы можете сэкономить память, сделав один объект Mesh при старте системы. В этот момент каждый раз, когда вам требуется другая форма, вы делаете другой объект Node, а затем указываете этот узел на одну Mesh. Это называется инстанцирование. Aspose.3D for .NET API позволяют выполнять инстансирование.

Пример установки

В таких играх, как RTS (стратегия в реальном времени), мы всегда можем увидеть несколько NPC (Non-Player Character) с одной и той же моделью 3D, возможно, в разных цветах, движок рендеринга обычно разделяет одни и те же данные геометрии сетки между разными NPC, этот метод называется Instancing.

Демонстрация кода примера:

В этом примере мы создали 3 кубических узла, которые имеют одну и ту же сетку, каждый из них имеет разный материал с разными цветами.