Как начать работу с 3D в Python
Требования
- Python 3.8 или новее
- менеджер пакетов pip
Шаг 1 — Установить пакет
Установите Aspose.3D FOSS для Python из PyPI:
pip install aspose-3d-fossПроверьте установку:
import aspose.threed as a3d
print(a3d.__version__)Шаг 2 — Создайте свою первую 3D‑сцену
Scene — корневой контейнер для всех 3D‑объектов. Конструктор принимает необязательные параметры: сущность, родительскую сцену и имя:
import aspose.threed as a3d
# Create an empty scene (CLM-3d-35d727)
scene = a3d.Scene()
# Access the root node of the scene (CLM-3d-859ac2)
root = scene.root_node()
print("Root node:", root)Шаг 3 — Добавить сетку в сцену
Mesh представляет полигональную геометрию. Node присоединяет сущности к графу сцены:
import aspose.threed as a3d
scene = a3d.Scene()
# Create a named mesh (CLM-3d-529c11)
mesh = a3d.Mesh("my_mesh")
# Create a node and attach the mesh (CLM-3d-0edae8)
node = a3d.Node("my_node", mesh)
# Add the node as a child of the root (CLM-3d-a403f5)
scene.root_node().add_child_node(node)Шаг 4 — Загрузить существующий 3D‑файл
Scene.open() загружает 3D‑файл с диска или из потока. Он принимает путь и необязательные
параметры загрузки:
import aspose.threed as a3d
# Load an OBJ file (CLM-3d-d84964)
scene = a3d.Scene()
scene.open("model.obj")
# Inspect the loaded scene
root = scene.root_node()
print("Child nodes:", len(root.child_nodes()))Для определения формата файла перед загрузкой:
import aspose.threed as a3d
# Detect the format from a file name (CLM-3d-d2de62)
fmt = a3d.FileFormat.detect(None, "model.fbx")
if fmt:
print("Detected format:", fmt.extension())Шаг 5 — Сохранить вывод в файл
Scene.save() экспортирует сцену в любой поддерживаемый формат. Рекомендуемый подход — автоматическое определение по расширению: Aspose.3D выводит формат из расширения файла (CLM-3d-8051bd, CLM-3d-b28d7a, CLM-3d-de8e1a):
import aspose.threed as a3d
scene = a3d.Scene()
# ... populate scene ...
# Save as Wavefront OBJ — extension auto-detects the format
scene.save("output.obj")
# Save as glTF 2.0 binary — .glb extension triggers binary GLB output
scene.save("output.glb")Вы также можете передать явный формат, используя фабричные методы FileFormat.WAVEFRONT_OBJ() или FileFormat.GLTF2(), но автоматическое определение расширения проще и более переносимо.
Следующие шаги
- Как загружать 3D‑модели в Python — форматы, параметры, обход графа сцены
- Как конвертировать 3D‑модели в Python — пакетные конверсионные рабочие процессы
- Как создавать геометрию сетки в Python — контрольные точки, полигоны, нормали
- FAQ — часто задаваемые вопросы и устранение неполадок