Python में 3D मॉडल को कैसे अनुकूलित करें
समस्याएं
जब आप Python में Aspose.3D के साथ काम करते हैं, तो फ़ाइल आकार को कम करने और अनावश्यक दृश्य डेटा को हटाने के लिए व्यावहारिक कदम उठा सकते हैं; मुख्य रूप से एक कॉम्पैक्ट बाइनरी प्रारूप में निर्यात करके और दृष्टि ग्राफ से अप्रयुक्त नोड्स को स्ट्रिंग करके।.
आवश्यकताएँ
- Python 3.7 या बाद में
aspose-3d-fossपैकेज के माध्यम से स्थापितpip install aspose-3d-foss- एक 3D इनपुट फ़ाइल (OBJ, STL, FBX, glTF, या 3MF)
ऑप्टिमाइज़ेशन तकनीकें
एक कॉम्पैक्ट बाइनरी प्रारूप में परिवर्तित करें
फ़ाइल आकार को कम करने के लिए सबसे प्रभावी तरीकों में से एक है स्केन को एक्सटेंशन करने का (.glbGLB प्रारूप एकल बाइनरी फ़ाइल में भूमेट्री और सामग्री पैक करता है, जो OBJ या ASCII FBX जैसे पाठ-आधारित प्रारंभों की तुलना में काफी छोटा और लोड करने के लिए तेज़ है।.
from aspose.threed import Scene
scene = Scene.from_file("model.obj")
# Use the .glb extension for binary GLB auto-detection
# Note: FileFormat.GLTF2_BINARY is a None stub — do not pass it to scene.save()
scene.save("model.glb")निरीक्षण और मशीनों की गिनती
प्रसंस्करण से पहले, यह समझने के लिए उपयोगी है कि दृश्य में कितने मश नोड्स शामिल हैं. इससे अप्रत्याशित रूप से बड़े या जटिल दृष्टिकोणों की पहचान करने में मदद मिलती है.
from aspose.threed import Scene
from aspose.threed.entities import Mesh
scene = Scene.from_file("model.obj")
mesh_count = 0
for node in scene.root_node.child_nodes:
if isinstance(node.entity, Mesh):
mesh_count += 1
print(f" Mesh '{node.name}': {len(node.entity.control_points)} vertices, "
f"{node.entity.polygon_count} polygons")
print(f"Total meshes: {mesh_count}")अनियंत्रित (अन्य) नोड्स को हटा दें
इन कोडों की पहचान और निर्यात के दौरान कटौती दृश्य निशान कम करता है। excluded संपत्ति एक संपदा है जो Entity,एक कॉल विधि नहीं है।.
from aspose.threed import Scene
from aspose.threed.entities import Mesh
scene = Scene.from_file("model.obj")
active_nodes = []
for node in scene.root_node.child_nodes:
entity = node.entity
if entity is not None and not entity.excluded:
active_nodes.append(node.name)
print(f"Active (non-excluded) nodes: {active_nodes}")कोड उदाहरण
यह उदाहरण एक दृश्य लोड करता है, मैश सांख्यिकी की रिपोर्ट करता हैं और कॉम्पैक्ट GLB प्रारूप में बचाता है: मुख्य व्यावहारिक अनुकूलन Aspose.3D के माध्यम से उपलब्ध है।.
from aspose.threed import Scene
from aspose.threed.entities import Mesh
# Load the input model
scene = Scene.from_file("input.obj")
# Inspect mesh count and vertex totals
total_vertices = 0
for node in scene.root_node.child_nodes:
if isinstance(node.entity, Mesh):
mesh = node.entity
total_vertices += len(mesh.control_points)
print(f"Total vertices before export: {total_vertices}")
# Save to compact binary GLB — use .glb extension for auto-detection
# Note: FileFormat.GLTF2_BINARY is a None stub and must not be passed to scene.save()
scene.save("output.glb")
print("Saved as GLB (binary glTF)")Optimization Scope के बारे में टिप्पणियाँ
Aspose.3D मस्जिद decimation या polygon reduction algorithms प्रदान नहीं करता है. फ़ाइल आकार में कमी मुख्य रूप से के माध्यम से हासिल की जाती है:
- बाइनरी प्रारूपों में निर्यात (OBJ या ASCII FBX के बजाय GLB)
- अपने स्वयं के प्रसंस्करण तर्क के दौरान निलंबित या खाली कोड से बाहर निकलें
विशिष्ट प्रतिशत गति-अप या स्मृति में कमी के बारे में दावे आपके इनपुट डेटा पर निर्भर करते हैं और आम तौर पर गारंटी नहीं दी जा सकती है।.