परिचय

Aspose.3D FOSS TypeScript के लिए (@aspose/3d) एक ओपन-सोर्स, MIT-लाइसेंस वाला 3D फ़ाइल फ़ॉर्मेट लाइब्रेरी है जो Node.js और आधुनिक ब्राउज़र वातावरण के लिए है। 3D मॉडल व्यूअर, फ़ॉर्मेट कनवर्टर, ज्योमेट्री प्रोसेसिंग टूल्स, या सर्वर-साइड 3D पाइपलाइन बनाते डेवलपर्स इसे एक ही npm install @aspose/3d कमांड से इंस्टॉल कर सकते हैं और तुरंत 3D कंटेंट को लोड, निर्माण और एक्सपोर्ट करना शुरू कर सकते हैं।.

यह लाइब्रेरी प्रमुख इंटरचेंज फ़ॉर्मेट्स — OBJ, glTF 2.0 / GLB, STL, 3MF, और COLLADA — को इम्पोर्ट और एक्सपोर्ट दोनों के लिए सपोर्ट करती है। FBX इम्पोर्टर/एक्सपोर्टर क्लासेज़ मौजूद हैं लेकिन अभी तक फ़ॉर्मेट ऑटो‑डिटेक्शन में जोड़ी नहीं गई हैं। सीन ग्राफ API 3D ऑथरिंग टूल्स में परिचित मॉडल को प्रतिबिंबित करता है: एक Scene में एक rootNode,होता है, प्रत्येक Node चाइल्ड नोड्स और एंटिटी ऑब्जेक्ट्स (Mesh, Camera, Light) ले जा सकता है, और ट्रांसफ़ॉर्म हाइरार्की पढ़ने और लिखने के लिए पूरी तरह से उपलब्ध है।.

मुख्य विशेषताएँ

  • मल्टी‑फ़ॉर्मेट I/O: इम्पोर्ट और एक्सपोर्ट OBJ (साथ में .mtl मैटेरियल्स), glTF 2.0 / GLB, STL (बाइनरी और ASCII), 3MF, और COLLADA दोनों फ़ाइल पाथ्स और इन‑मेमा Buffer ऑब्जेक्ट्स से। FBX सपोर्ट अभी तक ऑटो‑डिटेक्शन में जोड़ा नहीं गया है।.
  • सीन ग्राफ API: Scene, Node, Mesh, Camera, Light हाइरार्की पूर्ण पैरेंट/चाइल्ड प्रबंधन के साथ; नोड्स को पुनरावृत्त रूप से ट्रैवर्स करें node.childNodes
  • PBR मैटेरियल सिस्टम: लैम्बर्ट, फ़ॉन्ग, और PBR (मेटैलिक/रफ़नेस) मैटेरियल्स तक पहुँच उपलब्ध है। node.entity.material
  • मेश संचालन: कच्चा वर्टेक्स डेटा तक पहुँचें के माध्यम से mesh.controlPoints (ऐरे ऑफ Vector4), बहुभुज सूचकांक के माध्यम से mesh.polygonCount, और वर्टेक्स एलिमेंट चैनल्स के माध्यम से mesh.getElement()
  • गणित उपयोगिताएँ: Vector2, Vector3, Vector4, Matrix4, Quaternion, और स्थानिक गणनाओं के लिए बाउंडिंग बॉक्स प्रकार
  • एनीमेशन सिस्टम: कीफ़्रेम एनीमेशन के साथ AnimationClip, AnimationChannel, और इंटरपोलेशन कर्व्स (लीनियर, बीज़र, TCB स्प्लाइन)
  • फ़ॉर्मेट-विशिष्ट विकल्प: प्रति-फ़ॉर्मेट LoadOptions / SaveOptions क्लासेज़ कोऑर्डिनेट फ़्लिपिंग, स्केल, मैटेरियल लोडिंग, और अधिक नियंत्रित करती हैं

शुरू करना

npm से इंस्टॉल करें। Node.js 18 या उससे ऊपर आवश्यक है; TypeScript 5.0+ की सिफारिश की जाती है।.

npm install @aspose/3d

एक OBJ फ़ाइल लोड करें और सीन का निरीक्षण करें:

import { Scene } from '@aspose/3d';
import { ObjLoadOptions } from '@aspose/3d/formats/obj';

const scene = new Scene();
const options = new ObjLoadOptions();
options.enableMaterials = true;
scene.open('model.obj', options);

for (const node of scene.rootNode.childNodes) {
    if (node.entity && 'controlPoints' in node.entity) {
        const mesh = node.entity as any;
        console.log(`Mesh "${node.name}": ${mesh.controlPoints.length} vertices`);
    }
}

glTF में निर्यात करें

किसी भी लोड किए गए या निर्मित सीन को glTF 2.0 बाइनरी (GLB) में सहेजें:

import { Scene } from '@aspose/3d';
import { ObjLoadOptions } from '@aspose/3d/formats/obj';

const scene = new Scene();
scene.open('input.obj', new ObjLoadOptions());
scene.save('output.glb');
console.log('Exported to output.glb');

लाइब्रेरी फ़ाइल एक्सटेंशन से आउटपुट फ़ॉर्मेट को ऑटो-डिटेक्ट करती है। पास करें एक GltfSaveOptions इंस्टेंस PBR मैटेरियल एम्बेडिंग, टेक्सचर, और बाइनरी बनाम JSON एन्कोडिंग पर नियंत्रण के लिए.

सीन निर्माण

प्रोग्रामेटिकली एक सीन बनाएं और उसे एक्सपोर्ट करें:

import { Scene, Node } from '@aspose/3d';
import { Mesh } from '@aspose/3d/entities';

const scene = new Scene();
const mesh = new Mesh();
// ... populate mesh.controlPoints and polygons ...
const node = new Node('myMesh');
node.entity = mesh;
scene.rootNode.addChildNode(node);
scene.save('programmatic.glb');

संबंधित देखें