परिचय

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

लाइब्रेरी को एक सरल ढाँचे के आसपास डिज़ाइन किया गया है। Scene API: 3D फ़ाइल लोड करें scene.open(), दृश्य ग्राफ़ की जाँच या रूपांतरण करें, और परिणाम लिखें scene.save(). पूर्ण TypeScript प्रकार परिभाषाएँ बंडल की गई हैं; कोई अलग नहीं @types/ पैकेज आवश्यक है।.

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

मल्टी-फ़ॉर्मेट I/O।. पैकेज एक ही इंस्टॉल में छह प्रमुख 3D फ़ॉर्मेट पढ़ता और लिखता है। OBJ आयात के लिए समर्थित है; glTF 2.0, GLB, STL, 3MF, और COLLADA आयात और निर्यात दोनों का समर्थन करते हैं। FBX आयातकर्ता/निर्यातकर्ता क्लासेज मौजूद हैं लेकिन फ़ॉर्मेट ऑटो-डिटेक्शन अभी तक लागू नहीं किया गया है, इसलिए FBX फ़ाइलें लोड नहीं की जा सकती हैं via scene.open().

फ़र्स्ट‑क्लास TypeScript समर्थन।. सभी सार्वजनिक क्लास, एन्यूमरेशन, और विकल्प प्रकार पूरी तरह से टाइप किए गए हैं। TypeScript भाषा सेवा समर्थन वाले IDE (VS Code, WebStorm, आदि) प्रत्येक API कॉल के लिए सटीक ऑटोकम्प्लीशन और इनलाइन दस्तावेज़ीकरण प्रदान करते हैं।.

Node.js 18–22+ संगतता।. पैकेज को Node.js 18, 20, और 22 LTS रिलीज़ के खिलाफ परीक्षण किया गया है। इंस्टॉल के दौरान कोई नेटिव ऐडऑन संकलित नहीं होते, इसलिए यह Node.js द्वारा समर्थित सभी प्लेटफ़ॉर्म पर काम करता है।.

एक रनटाइम निर्भरता।. एकमात्र निर्भरता है xmldom, केवल COLLADA XML पार्सिंग के लिए उपयोग किया जाता है। अन्य सभी फ़ॉर्मेट पार्सर शुद्ध JavaScript कार्यान्वयन हैं।.

MIT लाइसेंस।. उपयोग करें @aspose/3d व्यावसायिक, ओपन-सोर्स, या आंतरिक प्रोजेक्ट्स में बिना किसी प्रतिबंध के।.

त्वरित प्रारंभ

पैकेज स्थापित करें:

npm install @aspose/3d

OBJ फ़ाइल लोड करें और उसे बाइनरी GLB में परिवर्तित करें:

import { Scene } from '@aspose/3d';
import { ObjLoadOptions } from '@aspose/3d/formats/obj';
import { GltfSaveOptions, GltfFormat } from '@aspose/3d/formats/gltf';

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

const saveOpts = new GltfSaveOptions();
saveOpts.binaryMode = true;   // produce a single .glb file
scene.save('output.glb', GltfFormat.getInstance(), saveOpts);

console.log('Converted to GLB successfully');

ज्यामिति की जाँच के लिए सीन नोड्स पर इटररेट करें:

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

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

for (const node of scene.rootNode.childNodes) {
    console.log(`Node: ${node.name}`);
    if (node.entity) {
        console.log(`  Entity type: ${node.entity.constructor.name}`);
    }
}

समर्थित फ़ॉर्मेट्स

फ़ॉर्मेटएक्सटेंशनइम्पोर्टनिर्यातनोट्स
Wavefront OBJ.objहाँनहींकेवल आयात; पढ़ता है .mtl मैटेरियल फ़ाइलें
glTF 2.0.gltfहाँहाँबाहरी के साथ JSON .bin बफ़र
बाइनरी GLB.glbहाँहाँसेट binaryMode: true में GltfSaveOptions
STL.stlहाँहाँASCII और बाइनरी STL
3MF.3mfहाँहाँOpen Packaging Convention आर्काइव
FBX.fbxनहीं*नहीं*Importer/exporter मौजूद हैं लेकिन फ़ॉर्मेट ऑटो-डिटेक्शन जुड़ा नहीं है
COLLADA.daeहाँहाँबंडल्ड की आवश्यकता है xmldom dependency

TypeScript के लाभ

के साथ काम करना @aspose/3d TypeScript में श्रेणी त्रुटियों को runtime के बजाय compile time पर पकड़ा जाता है। जब आप कॉल करते हैं scene.save(), कंपाइलर यह सत्यापित करता है कि options ऑब्जेक्ट अपेक्षित SaveOptions उपप्रकार के लिए चुने हुए format। Format-विशिष्ट load और save options केवल उस format से संबंधित properties को उजागर करते हैं; अनुमान लगाने के लिए कोई untyped options bag नहीं है।.

उदाहरण के लिए, GltfSaveOptions.binaryMode एक typed है boolean, इसलिए कंपाइलर अस्वीकार करता है saveOpts.binaryMode = 'yes' कोड चलने से पहले। एनीमेशन प्रॉपर्टीज़ पर AnimationClip, मैटेरियल चैनल्स पर PbrMaterial, और वर्टेक्स एलिमेंट टाइप्स पर VertexElement सभी समान रूप से टाइप्ड हैं और इंटेलीसेंस के माध्यम से बाहरी दस्तावेज़ीकरण की सलाह लिए बिना खोजे जा सकते हैं।.

ओपन सोर्स और मुफ्त

पैकेज प्रकाशित किया गया है MIT लाइसेंस. स्रोत कोड GitHub पर उपलब्ध है। योगदान, बग रिपोर्ट, और फ़ॉर्मेट समर्थन अनुरोध रिपॉज़िटरी के इश्यू ट्रैकर के माध्यम से स्वागत योग्य हैं।.

लाइब्रेरी की एक रनटाइम निर्भरता है: xmldom संस्करण 0.9+, केवल COLLADA फ़ाइलों को पढ़ने या लिखने के समय उपयोग किया जाता है। अन्य सभी पार्सर और राइटर स्व-निहित शुद्ध-JavaScript कार्यान्वयन हैं जिनमें कोई बाइनरी घटक नहीं है।.

शुरू करना

निष्कर्ष

@aspose/3d संस्करण 24.12.0 TypeScript और Node.js में 3D फ़ाइल प्रोसेसिंग के लिए एक स्थिर, टाइप्ड, निर्भरता-हल्का आधार प्रदान करता है। चाहे उपयोग मामला फ़ॉर्मेट रूपांतरण, सीन निरीक्षण, ज्यामिति निष्कर्षण, या पाइपलाइन एकीकरण हो, लाइब्रेरी एक उदार ओपन-सोर्स लाइसेंस के तहत सबसे सामान्य 3D इंटरचेंज फ़ॉर्मेट को कवर करती है।.

इसे आज ही इंस्टॉल करें और हमें बताएं कि आप क्या बनाते हैं।.