विशेषताएँ और कार्यात्मकताएँ

विशेषताएँ और कार्यात्मकताएँ

विशेषताएँ और कार्यात्मकताएँ

यह पृष्ठ प्रत्येक प्रमुख सुविधा क्षेत्र को कवर करता है 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()एक चाइल्ड नोड बनाएं और संलग्न करें
MeshPolygon mesh जिसमें नियंत्रण बिंदु और फेस सूचियाँ हैं
mesh.createPolygon()Polygon face को परिभाषित करें
Mesh.toMesh()Mesh geometry को परिवर्तित या क्लोन करें
Transformस्थानीय स्थानांतरण, घूर्णन, और स्केल
FileFormatफ़ॉर्मैट्स के लिए रजिस्ट्री और डिटेक्टर
 हिन्दी