1. Товары
  2.   3D
  3.   Python
  4.   Aspose.3D for Python via .NET

Aspose.3D for Python via .NET

 
 

Python API для создания, редактирования и конвертации 3D‑моделей

Полезная библиотека Python для создания, редактирования, обработки и конвертации форматов 3D‑файлов и 3D‑сцен в FBX, STL, Discreet3DS, Universal3D, Collada и другие.

Что такое Aspose.3D для Python через .NET?

Aspose.3D для Python через .NET — это комплексная и стабильная библиотека, позволяющая разработчикам программного обеспечения работать с 3D‑файлами и моделями внутри Python‑приложений без необходимости установки программ для 3D‑моделирования и рендеринга. Библиотека помогает разработчикам создавать приложения, которые могут легко создавать, читать, рендерить, манипулировать и конвертировать 3D‑модели в различных файловых форматах, включая FBX, 3DS, U3D, DAE, glTF, OBJ, STL, DRC, PDF, AMF, PLY и многие другие. Библиотека использует различные техники, чтобы обеспечить эффективное и быстрое выполнение 3D‑операций даже на больших и сложных 3D‑моделях.

Aspose.3D for Python via .NET включает несколько важных функций для работы с 3D‑анимациями, таких как создание и манипулирование 3D‑анимациями, включая анимацию ключевых кадров, скелетную анимацию и морфинг. Это упрощает создание захватывающих и интерактивных 3D‑приложений и игр. Библиотека также предоставляет широкий набор инструментов и функций для работы с 3D‑моделями. Это включает возможность импорта и экспорта 3D‑моделей, создания и редактирования 3D‑моделей, а также выполнения различных операций над 3D‑моделями, таких как масштабирование, вращение и трансляция.

Aspose.3D for Python via .NET построен на основе .NET Framework и может использоваться с Python через IronPython, который является .NET‑реализацией языка программирования Python. Благодаря поддержке широкого спектра 3D‑форматов файлов и богатому набору функций для манипулирования и анимации 3D‑моделей, он является отличным выбором для разработчиков, которым необходимо работать с 3D‑контентом в своих приложениях.

Previous Next

Начало работы с Aspose.3D для Python через .NET

Самый простой способ установить Aspose.3D for Python via .NET стабильный релиз — использовать pip. Пожалуйста, используйте следующую команду для беспроблемной установки.

Установить Aspose.3D для Python через .NET с помощью pip

pip install aspose-3d 
Вы также можете скачать его напрямую со страницы продукта Aspose.

Создание и загрузка 3D-сцены через Python API

Aspose.3D for Python via .NET включает полную поддержку создания новых 3D‑сцен с нуля и их сохранения в любой поддерживаемый формат файла с помощью команд Python. Библиотека также предоставляет возможность чтения существующих 3D‑сцен, внесения изменений в существующие 3D, сохранения 3D‑сцены в PDF, открытия существующих сцен из защищённого паролем PDF, определения формата файла, извлечения 3D‑контента из PDF‑файла, установки параметров загрузки перед загрузкой 3D‑Obj файла и многое другое.

Как создать документ 3D-сцены с помощью Python API?

import aspose.threed as a3d

# For complete examples and data files, please go to https://github.com/aspose-3d/Aspose.3D-for-.NET

# The path to the documents directory.

# Create an object of the Scene class

scene = a3d.Scene()

# Save 3D scene document

scene.Save("document.fbx", a3d.FileFormat.FBX7500ASCII)

Рендеринг 3D-сцены через Python API

Aspose.3D for Python via .NET позволяет разработчикам программного обеспечения загружать и визуализировать 3D‑сцены в своих собственных приложениях на Python. Библиотека поддерживает высококачественную отрисовку 3D‑сцен, включая сглаживание (anti-aliasing), глубину резкости, размытие движения и многое другое. Она также поддерживает импорт и экспорт различных 3D‑форматов файлов, включая FBX, OBJ, STL и 3DS. Это означает, что вы можете легко импортировать существующие 3D‑модели в свою сцену или экспортировать свою 3D‑сцену в совместимый формат. Поддерживаются такие функции, как отбрасывание и получение теней на 3D‑геометрии, аппаратно‑ускоренная отрисовка 3D‑геометрии, рендеринг 3D‑вида в формате изображения с камеры, рендеринг панорамного вида 3D‑сцены и т.д. Ниже приведён пример кода, показывающий, как разработчики могут отрисовать панорамный вид 3D‑сцены и сохранить его в формате изображения.

Как отрендерить панорамный вид 3D-сцены и сохранить его в формате изображения с помощью Python?

from aspose.pydrawing.imaging import ImageFormat
from aspose.pydrawing import Color
import aspose.threed as a3d

# load the scene

scene = Scene.from_file("vc.glb")

# create a camera for capturing the cube map

cam = a3d.entities.Camera(a3d.entities.ProjectionType.PERSPECTIVE)
cam.near_plane = 0.1
cam.far_plane = 200
cam.rotation_mode = a3d.entities.RotationMode.FIXED_DIRECTION
scene.root_node.create_child_node(cam).transform.set_translation(5, 6, 0);

# create two lights to illuminate the scene

scene.root_node.create_child_node(a3d.entities.Light("", a3d.entities.LightType.POINT).transform.set_translation(-10, 7, -10)
light = a3d.entities.Light()
light.color = Color.cadet_blue
scene.root_node.create_child_node(light).transform.set_translation(49, 0, 49)

# create a renderer

# Create a cube map render target with depth texture, depth is required when rendering a scene.

rt = renderer.render_factory.create_cube_render_texture(a3d.render.RenderParameters(False), 512, 512)

# create a 2D texture render target with no depth texture used for image processing
final = renderer.render_factory.CreateRenderTexture(a3d.render.RenderParameters(False, 32, 0, 0), 1024 * 3 , 1024)

# a viewport is required on the render target

rt.create_viewport(cam, a3d.utilities.RelativeRectangle.from_scale(0, 0, 1, 1))
renderer.render(rt)

# execute the equirectangular projection post-processing with the previous rendered cube map as input

equirectangular = renderer.get_post_processing("equirectangular")

# Specify the cube map rendered from the scene as this post processing's input

equirectangular.input = rt.targets[0]

# Execute the post processing effect and save the result to render target final

renderer.execute(equirectangular, final)

# save the texture into disk

final.targets[0].save("panorama.png", ImageFormat.PNG)

Работа с анимацией в 3D-документе

Aspose.3D for Python via .NET позволяет разработчикам создавать и работать с анимациями в 3D‑документах, используя библиотеку Python. Библиотека включает многочисленные возможности для работы с анимациями, такие как рендеринг анимированной сцены, настройка целевой камеры в 3D‑файле, создание скелетных анимаций, работа с морф‑таргетами и смешивание нескольких анимаций. Ниже приведён пример, демонстрирующий, как создать простую анимацию с помощью команд Python.

Как создать простую анимацию с помощью Python API?

import clr
clr.AddReference("Aspose.3D")
from Aspose.ThreeD import *

# create a new scene
scene = Scene()

# create a new camera
camera = Camera()
camera.Name = "Camera"
scene.RootNode.CreateChildNode(camera)

# create a new mesh
mesh = Mesh()
mesh.Name = "Mesh"
vertices = Vector3[]
vertices.append(Vector3(0, 0, 0))
vertices.append(Vector3(0, 1, 0))
vertices.append(Vector3(1, 1, 0))
vertices.append(Vector3(1, 0, 0))
mesh.Vertices = vertices
mesh.Triangles = [0, 1, 2, 0, 2, 3]

# create a new node for the mesh
meshNode = Node()
meshNode.Name = "MeshNode"
meshNode.Translation = Vector3(0, 0, 0)
meshNode.CreateChildNode(mesh)

# add the mesh node to the scene
scene.RootNode.CreateChildNode(meshNode)

# create a new animation track for the mesh node
track = AnimationTrack(meshNode, AnimationTargetType.Translation)

# create a new keyframe at time 0
keyframe1 = Keyframe()
keyframe1.Time = 0
keyframe1.Value = Vector3(0, 0, 0)
track.Keyframes.Add(keyframe1)

# create a new keyframe at time 1
keyframe2 = Keyframe()
keyframe2.Time = 1
keyframe2.Value = Vector3(0, 0, 5)
track.Keyframes.Add(keyframe2)

# create a new animation clip
clip = AnimationClip("Clip")
clip.Duration = 1
clip.Tracks.Add(track)

# add the animation clip to the scene
scene.Animations.Add(clip)

# save the scene to a file
scene.Save("animation.fbx", FileFormat.FBX7400ASCII)

Работа с полигонами с использованием Python API

Aspose.3D for Python via .NET позволяет разработчикам добавлять и управлять полигональными сетками в их 3D‑моделях внутри Python‑приложений. Библиотека поддерживает различные функции, связанные с управлением полигональными сетками, такие как загрузка полигональной сетки из файла, создание полигональной сетки, преобразование всех полигонов в треугольники в 3D‑модели, экспорт полигональной сетки в файл и многое другое. Ниже приведён пример, показывающий, как пользователи могут создать полигональную сетку, создав объект Mesh и добавив в него вершины и грани.

Как создать полигональную сетку с помощью Python API?

# Create a mesh
mesh = Mesh()

# Add vertices
mesh.Vertices.Add(Vector3(0, 0, 0))
mesh.Vertices.Add(Vector3(0, 0, 1))
mesh.Vertices.Add(Vector3(0, 1, 0))
mesh.Vertices.Add(Vector3(1, 0, 0))

# Add faces
mesh.Faces.AddPolygonFace(0, 1, 2)
mesh.Faces.AddPolygonFace(0, 1, 3)
mesh.Faces.AddPolygonFace(0, 2, 3)
mesh.Faces.AddPolygonFace(1, 2, 3)

# Export the polygon mesh to a file

# Create a scene and add the mesh to it
scene = Scene()
scene.RootNode.CreateChildNode(mesh)

# Save the scene to a file
scene.Save("mesh.obj", FileFormat.WavefrontOBJ)

 Русский