
Aspose.3D برای پایتون از طریق .NET
API پایتون برای ایجاد، ویرایش و تبدیل مدلهای 3D
یک کتابخانه پایتون مفید برای ایجاد، ویرایش، پردازش و تبدیل فرمتهای فایل 3D و صحنههای 3D به FBX، STL، Discreet3DS، Universal3D، Collada و موارد دیگر.
Aspose.3D برای پایتون از طریق .NET چیست؟
Aspose.3D برای Python از طریق .NET یک کتابخانه جامع و پایدار است که به توسعهدهندگان نرمافزار امکان میدهد با فایلها و مدلهای 3D در داخل برنامههای پایتون کار کنند بدون اینکه نرمافزار مدلسازی و رندرینگ 3D نصب شده باشد. این کتابخانه به توسعهدهندگان کمک میکند برنامههایی بسازند که به راحتی بتوانند مدلهای 3D را ایجاد، خواندن، رندر، دستکاری و تبدیل کنند در قالبهای فایل مختلف، از جمله FBX، 3DS، U3D، DAE، glTF، OBJ، STL، DRC، PDF، AMF، PLY و بسیاری دیگر. این کتابخانه از تکنیکهای متنوعی استفاده میکند تا اطمینان حاصل شود عملیات 3D بهصورت کارآمد و سریع انجام میشود، حتی بر روی مدلهای بزرگ و پیچیده 3D.
Aspose.3D برای Python از طریق .NET شامل چندین ویژگی مهم برای کار با انیمیشنهای سهبعدی است، مانند ایجاد و دستکاری انیمیشنهای سهبعدی، از جمله انیمیشنهای کلید‑فریم، انیمیشنهای اسکلت و انیمیشنهای مورف. این امکان را فراهم میکند تا به راحتی برنامهها و بازیهای سهبعدی جذاب و تعاملی ایجاد کنید. کتابخانه همچنین مجموعه وسیعی از ابزارها و ویژگیها برای دستکاری مدلهای سهبعدی ارائه میدهد. این شامل قابلیت واردات و صادرات مدلهای سهبعدی، ایجاد و ویرایش مدلهای سهبعدی، و انجام عملیات مختلف بر روی مدلهای سهبعدی مانند مقیاسبندی، چرخش و انتقال است.
Aspose.3D برای Python از طریق .NET بر پایه چارچوب .NET ساخته شده و میتواند با استفاده از IronPython، که یک پیادهسازی .NET از زبان برنامهنویسی Python است، با Python استفاده شود. با پشتیبانی از طیف گستردهای از فرمتهای فایل سهبعدی و مجموعه غنیای از ویژگیها برای دستکاری و انیمیشنسازی مدلهای سهبعدی، این ابزار گزینهای عالی برای توسعهدهندگانی است که نیاز به کار با محتوای سهبعدی در برنامههای خود دارند.
شروع کار با Aspose.3D برای پایتون از طریق .NET
آسانترین راه برای نصب Aspose.3D برای Python از طریق .NET نسخه پایدار، استفاده از pip است. لطفاً برای نصب روان، دستور زیر را استفاده کنید.
نصب Aspose.3D برای Python از طریق .NET با pip
pip install aspose-3d شما همچنین میتوانید آن را بهصورت مستقیم از صفحه محصول Aspose.تولید و بارگذاری صحنه 3D از طریق API پایتون
Aspose.3D برای Python از طریق .NET شامل پشتیبانی کامل برای ایجاد صحنههای سهبعدی جدید از ابتدا و سپس ذخیره آن در هر قالب فایل پشتیبانیشده با استفاده از دستورات Python است. این کتابخانه همچنین پشتیبانی از خواندن صحنههای سهبعدی موجود، اعمال تغییرات بر روی سهبعدیهای موجود، ذخیره صحنه سهبعدی در PDF، باز کردن صحنههای موجود از یک PDF محافظتشده با رمز عبور، تشخیص قالب فایل، استخراج محتویات سهبعدی از یک فایل PDF، تنظیم گزینههای بارگذاری قبل از بارگذاری یک فایل Obj سهبعدی و موارد بیشتر را فراهم میکند.
چگونه یک سند صحنه 3D را با استفاده از 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 از طریق API پایتون
Aspose.3D برای Python از طریق .NET به توسعهدهندگان نرمافزار امکان بارگذاری و رندر صحنههای سهبعدی را داخل برنامههای Python خود میدهد. این کتابخانه از رندر با کیفیت بالا برای صحنههای سهبعدی پشتیبانی میکند، از جمله ضد لبه (anti-aliasing)، عمق میدان (depth of field)، تاری حرکتی (motion blur) و موارد دیگر. همچنین از وارد کردن و صادر کردن فرمتهای مختلف فایلهای سهبعدی، از جمله FBX، OBJ، STL و 3DS پشتیبانی میکند. این به این معنی است که میتوانید به راحتی مدلهای سهبعدی موجود را به صحنه خود وارد کنید یا صحنه سهبعدی خود را به فرمت سازگار صادر کنید. این کتابخانه ویژگیهایی مانند ایجاد و دریافت سایهها بر روی هندسههای سهبعدی، رندر مبتنی بر سختافزار هندسههای سهبعدی، رندر نمای سهبعدی به صورت تصویر از دوربین، رندر نمای پانوراما از صحنه سهبعدی و غیره را پشتیبانی میکند. مثال کد زیر نشان میدهد که چگونه توسعهدهندگان نرمافزار میتوانند نمای پانوراما یک صحنه سهبعدی را رندر کرده و در قالب تصویر ذخیره کنند.
چگونه نمای پانوراما صحنه 3D را رندر کرده و با پایتون در قالب تصویر ذخیره کنیم؟
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 به توسعهدهندگان نرمافزار امکان میدهد تا با استفاده از کتابخانه Python، انیمیشنها را در اسناد 3D ایجاد و کار کنند. این کتابخانه شامل ویژگیهای متعددی برای کار با انیمیشنها است، از جمله رندر صحنهٔ انیمیشنی، تنظیم دوربین هدف در یک فایل 3D، ایجاد انیمیشنهای اسکلتدار، کار با هدفهای مورف و ترکیب چندین انیمیشن. مثال زیر نشان میدهد چگونه میتوان با استفاده از دستورات 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)
کار با چندضلعیها با استفاده از API پایتون
Aspose.3D برای Python از طریق .NET به توسعهدهندگان نرمافزار امکان میدهد تا مشهای چندضلعی را در مدلهای 3D خود در برنامههای Python اضافه و مدیریت کنند. این کتابخانه پشتیبانی از ویژگیهای مختلف مرتبط با مدیریت مشهای چندضلعی را فراهم کرده است، از جمله بارگذاری یک مش چندضلعی از فایل، ایجاد مش چندضلعی، تبدیل تمام چندضلعیها به مثلثها در یک مدل 3D، صادرات مش چندضلعی به فایل و موارد دیگر. مثال زیر نشان میدهد چگونه کاربران میتوانند با ایجاد یک شیء Mesh و افزودن رئوس و سطوح به آن، یک مش چندضلعی ایجاد کنند.
چگونه یک مش چندضلعی با استفاده از 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)
