
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 рамката и може да се използва с Python чрез IronPython, който е .NET имплементация на програмния език Python. Със своята поддръжка за широк набор от 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 за Python чрез .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 за Python чрез .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 за Python чрез .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)
