
Aspose.3D для Python через .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 для Python через .NET включив кілька важливих функцій для роботи з 3D-анімаціями, таких як створення та маніпулювання 3D-анімаціями, зокрема анімаціями ключових кадрів, скелетними анімаціями та морф-анімаціями. Це спрощує створення захоплюючих та інтерактивних 3D-додатків і ігор. Бібліотека також надає широкий спектр інструментів і функцій для маніпулювання 3D-моделями. Це включає можливість імпорту та експорту 3D-моделей, створення та редагування 3D-моделей, а також виконання різних операцій над 3D-моделями, таких як масштабування, обертання та трансляція.
Aspose.3D для Python через .NET побудовано на базі .NET Framework і може використовуватись з Python за допомогою IronPython, який є реалізацією Python для .NET. Підтримуючи широкий спектр 3D-форматів файлів і маючи багатий набір функцій для маніпулювання та анімації 3D-моделей, він є відмінним вибором для розробників, яким потрібно працювати з 3D‑вмістом у своїх додатках.
Початок роботи з Aspose.3D для Python через .NET
Найпростіший спосіб встановити Aspose.3D для Python через .NET стабільний випуск — це використання pip. Будь ласка, скористайтеся наведеною нижче командою для безперешкодного встановлення.
Встановіть Aspose.3D для Python через .NET за допомогою pip
pip install aspose-3d Ви також можете завантажити його безпосередньо з сторінки продукту Aspose.Створення та завантаження 3D-сцени за допомогою Python API
Aspose.3D для Python через .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‑сцен, включаючи згладжування, глибину різкості, розмиття руху та інше. Вона також підтримує імпорт та експорт різних 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)
