Aspose.3D Объектная модель документа (DOM)
Объектная модель (DOM) 3D-документов Aspose позволяет создавать мощное представление 3D-сцены в памяти. Она предоставляет разработчикам возможность программно читать, манипулировать и изменять содержимое и форматирование 3D-сцены.
В этом разделе мы рассмотрим ключевые классы DOM Aspose.3D и их взаимосвязи. Используя эти классы, вы можете получить программный доступ к различным элементам внутри 3D-сцены.
Давайте рассмотрим основные классы DOM Aspose.3D:
- Scene: Класс Scene представляет корень иерархии 3D-сцены. Он служит контейнером для всех остальных элементов и предоставляет методы для манипулирования общей структурой сцены.
- Node: Nodes — это строительные блоки 3D-сцены. Они представляют отдельные объекты или сущности внутри сцены, такие как сетки, источники света, камеры или группы. Nodes можно трансформировать, анимировать и текстурировать.
- Entities: Класс Entities охватывает широкий спектр объектов и элементов, составляющих 3D-сцену. Он включает в себя такие сущности, как сетки, источники света, камеры, профили и многое другое. Эти сущности служат строительными блоками, позволяя создавать сложные сцены путем их комбинирования и программной манипуляции. Категория Entities предоставляет доступ и контроль над этими фундаментальными элементами 3D-сцены.
- Materials: Класс Materials отвечает за определение визуальных свойств объектов внутри 3D-сцены. Он предоставляет инструменты для программного создания, изменения и управления материалами, которые определяют, как свет взаимодействует с поверхностями. Настраивая такие свойства, как цвет, текстура, прозрачность и отражение, вы можете добиться различных визуальных эффектов и настроить внешний вид ваших 3D-моделей.
- Animations: Класс Animation фокусируется на создании и управлении движением и преобразованиями внутри 3D-сцены. Он позволяет программно определять и манипулировать анимациями, позволяя объектам двигаться, вращаться, масштабироваться или изменять свойства с течением времени. С помощью этой категории вы можете привнести динамические и интерактивные элементы в ваши 3D-сцены.
Используя классы DOM Aspose.3D, упомянутые выше, вы можете программно взаимодействовать и манипулировать содержимым и структурой 3D-сцены. Это обеспечивает гибкость и контроль при работе с 3D-моделями в ваших приложениях.
Структура сцены
Когда Aspose.3D считывает 3D-файл в память, он генерирует объекты различных типов для представления различных элементов внутри 3D-сцены.
Структура сцены в Aspose.3D следует шаблону проектирования «компоновщик», который обеспечивает гибкость и организацию:
- Nodes служат контейнерами, которые могут содержать другие nodes, позволяя группировать различные объекты внутри сцены.
- Каждый node может иметь собственное преобразование, которое также применяется к его дочерним nodes.
- Все пространственные типы сущностей в Aspose.3D должны быть помещены под экземпляр Node. Это обеспечивает организацию объектов, таких как сетки, источники света, камеры и другие элементы, внутри иерархии сцены.
- Nodes могут содержать несколько материалов, и взаимосвязь между полигонами и материалами, прикрепленными к node, решается с помощью концепции
VertexElementMaterial
внутри объекта Mesh.
Пространственные сущности
Все пространственные сущности в Aspose.3D наследуются от класса Entity
, служащего фундаментальными строительными блоками для создания виртуальных сред. Aspose.3D классифицирует эти сущности на несколько основных категорий, каждая из которых имеет свою собственную цель и функциональность.
- Primitive: Класс
Primitive
служит базовым классом для всех процедурных 3D-геометрий в Aspose.3D, таких какCylinder
,Torus
иSphere
. Эти геометрии могут быть определены с использованием минимального набора параметров, что удобно для создания основных 3D-форм. - Geometry: Геометрии в Aspose.3D обычно состоят из вершин, ребер и полигонов, которые определяют форму и структуру 3D-объекта. Эта категория охватывает широкий спектр сложных геометрий, используемых для представления различных объектов в 3D-сцене.
- Profile: Профили, как и примитивы, определяют 2D-замкнутые контуры в плоскости x-y. Они предоставляют способ создания 2D-форм, которые впоследствии можно выдавить или манипулировать для создания 3D-геометрий.
- Text: Aspose.3D включает возможность генерировать профили из текста с использованием указанного шрифта. Эта функция позволяет создавать профили в форме букв, цифр или любого другого текстового содержимого, добавляя элемент персонализации или брендинга к вашим 3D-моделям.
Типы камер и источников света
Типы материалов
Aspose.3D предоставляет поддержку различных типов материалов, включая материалы Lambert, Phong, PBR, PBR specular и шейдерные материалы (доступны только в файлах FBX).
Каждый материал в Aspose.3D может иметь различные атрибуты и свойства, определяющие его внешний вид и поведение внутри 3D-сцены. Эти материалы могут быть связаны с экземплярами текстур, улучшая их визуальные характеристики.
Текстуры в Aspose.3D связаны с определенным атрибутом материала. Тип текстуры сочетает определения параметров для источника изображения и выборщика текстуры. Используя текстуры, вы можете применять подробные узоры, цвета и другие визуальные эффекты к поверхностям ваших 3D-моделей.
Благодаря поддержке различных типов материалов и возможности связывания текстур Aspose.3D предлагает гибкость в создании визуально привлекательных и реалистичных материалов для ваших 3D-сцен.
Взаимосвязь объектов анимации
Aspose.3D предоставляет поддержку анимации на уровне данных, а поддержка вычислений в настоящее время разрабатывается.
В Aspose.3D сцена может содержать несколько объектов AnimationClip. Каждый AnimationClip может состоять из нескольких узлов анимации. Узел анимации следует шаблону проектирования «компоновщик», позволяя создавать иерархические структуры с под-узлами анимации.
Узлы анимации могут быть связаны с точками привязки, которые определяют свойства целевого объекта, которые будут анимированы. Векторы обычно используются в качестве типов данных во многих свойствах сущности. Следовательно, точки привязки могут иметь различные каналы анимации для независимой обновления определенных каналов вектора. Каждый канал содержит последовательность ключевых кадров, которая определяет, как значение анимируется с течением времени.
Эта система обеспечивает гибкую основу для анимации объектов в сцене. Определяя AnimationClip, узлы, точки привязки и каналы, вы можете создавать сложные и динамичные анимации, которые влияют на различные свойства сущностей в вашей 3D-сцене.
Хотя Aspose.3D в настоящее время поддерживает анимацию на уровне данных, текущая разработка сосредоточена на расширении поддержки вычислений, что улучшит возможности создания и управления анимацией в рамках этой структуры.