Сценарии использования
Обзор
Aspose.3D — это библиотека с открытым исходным кодом для работы с 3D‑форматами файлов на Python, позволяющая разработчикам программно создавать, изменять и конвертировать 3D‑сцены и модели. Она поддерживает современные 3D‑рабочие процессы, предоставляя надёжный ввод‑вывод файлов и обработку графа сцены.
Библиотека полностью поддерживает glTF (GL Transmission Format) с поддержкой материалов PBR, что делает её подходящей для веб‑ и реального‑времени рендеринга. Её иерархическая структура узлов позволяет интуитивно организовывать 3D‑сцены с помощью отношений «родитель‑дитя» между узлами, обеспечивая масштабируемое управление сценой для сложных моделей.
Как это работает
Aspose.3D for Python предоставляет программный контроль над 3D‑сценами и моделями через структурированную объектную модель, центрированную на Scene, Node и Entity. Разработчики могут загружать существующие форматы, такие как STL (широко используемый для 3D‑печати), или создавать сцены с нуля, используя базовые примитивы, такие как Mesh. Библиотека поддерживает управление сетками и объектами, позволяя инспектировать и изменять данные вершин, топологию полигонов и пространственные отношения внутри иерархии сцены.
from aspose.threed import Scene
from aspose.threed.entities import Mesh
# Create a Mesh instance
mesh = Mesh()
# Access mesh data (control_points and edges are properties, not method calls)
vertices = mesh.control_points
edges = mesh.edgesПример кода
В этом примере демонстрируется загрузка 3D‑модели из файла OBJ с параметрами загрузки, а затем обход её графа сцены для проверки геометрии сетки. Scene.from_file() принимает только путь к файлу; используйте scene.open() для передачи параметров загрузки.
from aspose.threed import Scene
from aspose.threed.entities import Mesh
from aspose.threed.formats import ObjLoadOptions
# Import an OBJ file with load options
# Note: Scene.from_file() takes only a file path argument.
# To pass options, use scene.open() instead.
options = ObjLoadOptions()
options.enable_materials = True
options.flip_coordinate_system = False
scene = Scene()
scene.open("model.obj", options)
# Access imported data
for node in scene.root_node.child_nodes:
if node.entity and isinstance(node.entity, Mesh):
mesh = node.entity
print(f"Mesh: {node.name}")
print(f" Vertices: {len(mesh.control_points)}")
print(f" Polygons: {mesh.polygon_count}")См. также
Aspose.3D обеспечивает надёжную разработку 3D на Python для инструментов визуализации и интерактивных приложений. Разработчики могут создавать и манипулировать 3D‑сценами, импортировать OBJ‑файлы с загрузкой материалов через ObjLoadOptions.enable_materials, экспортировать OBJ‑файлы с помощью ObjExporter и выполнять низкоуровневую векторную математику, используя встроенные типы, такие как Vector4 и Matrix4.