विशेषताएँ और कार्यात्मकताएँ
विशेषताएँ और कार्यात्मकताएँ
यह पृष्ठ प्रत्येक प्रमुख सुविधा क्षेत्र को कवर करता है aspose-3d-foss 26.1.0 कार्यशील Java उदाहरणों के साथ।.
सीन लोड करना और सहेजना
scene.open() फ़ाइल लोड करता है; scene.save() इसे निर्यात करता है:
import com.aspose.threed.Scene;
Scene scene = new Scene();
scene.open("input.obj");
scene.save("output.glb");स्थैतिक फ़ैक्टरी विकल्प:
Scene scene = Scene.fromFile("input.fbx");
scene.save("output.stl");फ़ॉर्मेट-विशिष्ट विकल्प
पास LoadOptions या SaveOptions सूक्ष्म नियंत्रण के लिए उपवर्ग:
import com.aspose.threed.*;
Scene scene = new Scene();
ObjLoadOptions opts = new ObjLoadOptions();
opts.setFlipCoordinateSystem(true);
scene.open("model.obj", opts);
GltfSaveOptions saveOpts = new GltfSaveOptions();
saveOpts.setFlipCoordinateSystem(true);
scene.save("model.glb", saveOpts);ध्यान दें: FBX केवल आयात के लिए समर्थित है; FBX निर्यात FOSS संस्करण में लागू नहीं किया गया है। केवल बाइनरी FBX फ़ाइलें आयात के लिए समर्थित हैं — ASCII FBX त्रुटि देता है ImportException.
सीन ग्राफ बनाना
नोड बनाएं और एंटिटीज़ संलग्न करें:
Scene scene = new Scene();
Node root = scene.getRootNode();
Mesh mesh = new Mesh("myMesh");
mesh.getControlPoints().add(new Vector4(0, 0, 0));
mesh.getControlPoints().add(new Vector4(10, 0, 0));
mesh.getControlPoints().add(new Vector4(10, 10, 0));
mesh.createPolygon(0, 1, 2);
Node meshNode = root.createChildNode("triangle", mesh);मेश संचालन
एक बनाएँ Mesh प्रोग्रामेटिक रूप से नियंत्रण बिंदुओं और बहुभुजों के साथ:
Mesh mesh = new Mesh("custom");
mesh.getControlPoints().add(new Vector4(0, 0, 0));
mesh.getControlPoints().add(new Vector4(10, 0, 0));
mesh.getControlPoints().add(new Vector4(10, 10, 0));
mesh.getControlPoints().add(new Vector4(0, 10, 0));
mesh.createPolygon(0, 1, 2, 3);ट्रांसफ़ॉर्म्स
हर Node एक ले जाता है Transform:
Node node = scene.getRootNode().createChildNode("moved", new Mesh());
node.getTransform().setTranslation(10, 0, 5);
node.getTransform().setScale(2, 2, 2);वर्ल्ड-स्पेस को पढ़ें के माध्यम से node.getGlobalTransform().getMatrix().
मैटेरियल्स
नोड्स को मैटेरियल्स असाइन करें:
PbrMaterial mat = new PbrMaterial("shiny");
mat.setAlbedo(new Vector4(0.8, 0.2, 0.2, 1.0));
mat.setMetallicFactor(0.5);
mat.setRoughnessFactor(0.3);
scene.getRootNode().createChildNode("red_mesh", mesh, mat);मैटेरियल प्रकार: Material (बेस), PbrMaterial (PBR मेटैलिक-रफ़नेस).
टिप्स और सर्वोत्तम प्रथाएँ
- उपयोग करें
Scene.fromFile()जब कस्टम विकल्पों की आवश्यकता न हो तो एक-लाइनर लोड के लिए - के साथ प्रोग्रामेटिक रूप से मेष बनाएं
createPolygon()कस्टम ज्योमेट्री के लिए - उपयोग करें
.glbकम्पैक्ट बाइनरी glTF आउटपुट के लिए एक्सटेंशन - जाँचें
node.getEntity() != nullकास्टिंग से पहले - STL निर्यात करता है नहीं बहुभुज सतहों को स्वचालित रूप से त्रिकोणित करें। बाइनरी STL निर्यात प्रत्येक बहुभुज सतह के केवल पहले 3 शीर्ष लिखता है — चतुर्भुज या n-गॉन सतहें चुपचाप काट दी जाती हैं। ASCII STL निर्यात सभी शीर्षांक लिखता है, जिससे गैर-त्रिकोणीय सतहों के लिए विकृत फ़ेसेट ब्लॉक्स बनते हैं। डेटा हानि या अमान्य आउटपुट से बचने के लिए हमेशा प्री-त्रिकोणित मेष (सभी-त्रिकोणीय सतहें) को STL निर्यात में पास करें।.
सामान्य समस्याएँ
| समस्या | कारण | सुधारें |
|---|---|---|
| लोड पर अपवाद | असमर्थित या दूषित फ़ाइल | जाँचें कि फ़ाइल 3D व्यूअर में खुलती है |
| OBJ लोड करने के बाद सामग्री गायब है | .mtl फ़ाइल नहीं मिली | रखें .mtl के बगल में .obj; सुनिश्चित करें कि सामग्री सक्षम हैं |
| आयात के बाद स्केल असंगति | विभिन्न इकाई प्रणालियाँ | एक लागू करें Transform लोड करने के बाद स्केल |
FAQ
फ़ाइल के फ़ॉर्मेट का पता कैसे लगाएँ?
FileFormat format = FileFormat.detect("unknown.bin");
System.out.println(format.getExtension());क्या मैं स्ट्रीम से लोड कर सकता हूँ?
हाँ।. scene.open() एक को स्वीकार करता है InputStream.
कौन से फ़ॉर्मेट आयात और निर्यात दोनों का समर्थन करते हैं?
OBJ, STL, और glTF/GLB दोनों दिशाओं का समर्थन करते हैं। FBX केवल आयात के लिए है; निर्यात FOSS संस्करण में लागू नहीं किया गया है।.
API रेफ़रेंस सारांश
| क्लास / मेथड | विवरण |
|---|---|
Scene | शीर्ष-स्तर 3D सीन कंटेनर |
scene.open() | पथ या स्ट्रीम द्वारा 3D फ़ाइल लोड करें |
scene.save() | सीन को फ़ाइल या स्ट्रीम में निर्यात करें |
Scene.fromFile() | लोड करने और एक लौटाने के लिए स्थैतिक फ़ैक्टरी Scene |
Node | सीन पदानुक्रम नोड |
node.createChildNode() | एक चाइल्ड नोड बनाएं और संलग्न करें |
Mesh | Polygon mesh जिसमें नियंत्रण बिंदु और फेस सूचियाँ हैं |
mesh.createPolygon() | Polygon face को परिभाषित करें |
Mesh.toMesh() | Mesh geometry को परिवर्तित या क्लोन करें |
Transform | स्थानीय स्थानांतरण, घूर्णन, और स्केल |
FileFormat | फ़ॉर्मैट्स के लिए रजिस्ट्री और डिटेक्टर |