सीन रेंडरिंग और निर्यात

सीन रेंडरिंग और निर्यात

@aspose/3d एक प्रोसेसिंग और कन्वर्ज़न लाइब्रेरी है, और यह GPU रेंडरिंग नहीं करती है या इमेज फ़ाइलें उत्पन्न नहीं करती। इस लाइब्रेरी के संदर्भ में “Rendering” का अर्थ है एक सीन को ऐसे फ़ॉर्मेट में एक्सपोर्ट करना जो डाउनस्ट्रीम रेंडरर, गेम इंजन, या व्यूअर उपयोग कर सके.

यह पृष्ठ सभी एक्सपोर्ट पाथ को कवर करता है: फ़ाइल‑आधारित सहेजना, इन‑मेमोरी बफ़र आउटपुट, फ़ॉर्मेट‑विशिष्ट विकल्प, और सामान्य डाउनस्ट्रीम टार्गेट्स (Three.js, Babylon.js, मॉडल व्यूअर्स, और गेम इंजन) के लिए सीन तैयार करने के तरीके।.

बेसिक एक्सपोर्ट

कॉल scene.save() फ़ाइल पाथ के साथ। लाइब्रेरी फ़ाइल एक्सटेंशन से आउटपुट फ़ॉर्मेट का अनुमान लगाती है:

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

const scene = new Scene();
scene.open('input.obj');  // use a supported format (OBJ, glTF, GLB, STL, 3MF, COLLADA)

scene.save('output.glb');    // GLB (binary glTF)
scene.save('output.stl');    // STL
scene.save('output.dae');    // COLLADA
scene.save('output.3mf');    // 3MF

GLB में एक्सपोर्ट करना (वेब और गेम्स के लिए अनुशंसित)

GLB (बाइनरी glTF 2.0) एक एकल स्व‑समाहित फ़ाइल है जिसमें सभी मेष डेटा, मैटेरियल्स और टेक्सचर एम्बेड होते हैं। यह वेब व्यूअर्स (Three.js, Babylon.js, model‑viewer) और गेम इंजनों (Godot, Unity इम्पोर्टर के माध्यम से) के लिए अनुशंसित आउटपुट फ़ॉर्मेट है:

import { Scene } from '@aspose/3d';
import { GltfSaveOptions } from '@aspose/3d/formats/gltf';

const scene = new Scene();
scene.open('source.obj');

const opts = new GltfSaveOptions();
opts.binaryMode = true;    // produce .glb instead of .gltf + .bin

scene.save('output.glb', opts);
console.log('GLB export complete');

सेट binaryMode = true एक स्व-निहित GLB फ़ाइल उत्पन्न करने के लिए। जब false, आउटपुट है एक .gltf एक अलग .bin बफ़र साइडकार।.

glTF में एक्सपोर्ट करना (निरीक्षण के लिए JSON फ़ॉर्मेट)

JSON वैरिएंट (.gltf + .bin) विकास के दौरान उपयोगी है क्योंकि JSON मानव-पठनीय है:

import { Scene } from '@aspose/3d';
import { GltfSaveOptions } from '@aspose/3d/formats/gltf';

const scene = new Scene();
scene.open('input.dae');  // COLLADA is fully supported; FBX is not wired into scene.open()

const opts = new GltfSaveOptions();
opts.binaryMode = false;  // JSON + .bin sidecar

scene.save('output.gltf', opts);

STL में एक्सपोर्ट करना (3D प्रिंटिंग वर्कफ़्लो)

STL केवल ज्योमेट्री (कोई मैटेरियल नहीं, कोई एनीमेशन नहीं) है। यह 3D प्रिंटिंग स्लाइसरों के लिए मानक एक्सचेंज फ़ॉर्मेट है:

import { Scene } from '@aspose/3d';
import { StlSaveOptions } from '@aspose/3d/formats/stl';

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

const opts = new StlSaveOptions();
opts.binaryMode = true;   // binary STL is more compact than ASCII

scene.save('output.stl', opts);

सेट binaryMode = false ASCII STL उत्पन्न करने के लिए, जो टेक्स्ट-पठनीय है लेकिन बड़ा होता है।.

FBX में एक्सपोर्ट करना (DCC टूल वर्कफ़्लो)

नोट: लाइब्रेरी में FBX इम्पोर्टर और एक्सपोर्टर क्लासेज मौजूद हैं, लेकिन FBX फ़ॉर्मेट ऑटो-डिटेक्शन में नहीं जोड़ा गया है scene.open() या scene.save(). कॉलिंग scene.save('output.fbx', opts) FBX एक्सपोर्टर को नहीं बुलाएगा — .fbx एक्सटेंशन को सहेजने वाले डिस्पैचर द्वारा पहचाना नहीं जाता और कॉल OBJ आउटपुट पर वापस आ जाएगा। उपयोग करें FbxExporter क्लास को सीधे उपयोग करें यदि आपको FBX I/O चाहिए। फ़ॉर्मेट सपोर्ट टेबल FBX को इस रूप में चिह्नित करती है No* इस कारण से।.

यदि आपको Blender, Maya, या Unreal Engine द्वारा स्वीकार किए गए फ़ॉर्मेट में निर्यात करना है, तो इसके बजाय GLB या COLLADA का उपयोग करें — दोनों पूरी तरह से जुड़े हुए हैं scene.save():

import { Scene } from '@aspose/3d';
import { GltfSaveOptions } from '@aspose/3d/formats/gltf';

const scene = new Scene();
scene.open('input.dae');

// GLB is fully supported and widely accepted by DCC tools
const opts = new GltfSaveOptions();
opts.binaryMode = true;
scene.save('output.glb', opts);

इन‑मेमोरी एक्सपोर्ट के साथ saveToBuffer()

सर्वरलेस फ़ंक्शन्स, HTTP प्रतिक्रियाओं, और स्ट्रीमिंग पाइपलाइनों के लिए, सीधे एक Buffer डिस्क पर लिखे बिना:

import { Scene } from '@aspose/3d';
import { GltfSaveOptions } from '@aspose/3d/formats/gltf';

function convertToGlbBuffer(inputPath: string): Buffer {
    const scene = new Scene();
    scene.open(inputPath);

    const opts = new GltfSaveOptions();
    opts.binaryMode = true;

    return scene.saveToBuffer('glb', opts);
}

// Express.js / HTTP response example
// const glbBuffer = convertToGlbBuffer('model.obj');
// res.setHeader('Content-Type', 'model/gltf-binary');
// res.send(glbBuffer);

saveToBuffer() पहले आर्ग्युमेंट के रूप में फ़ॉर्मेट स्ट्रिंग लेता है (उदाहरण के लिए. 'glb', 'stl', 'obj') और वही विकल्प ऑब्जेक्ट्स जैसा save().

संयोजन openFromBuffer() और saveToBuffer()

किसी भी चरण में डिस्क I/O के बिना पूरी तरह मेमोरी में रूपांतरण पाइपलाइन:

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

function objBufferToGlbBuffer(objData: Buffer): Buffer {
    const scene = new Scene();

    const loadOpts = new ObjLoadOptions();
    loadOpts.enableMaterials = true;
    scene.openFromBuffer(objData, loadOpts);

    const saveOpts = new GltfSaveOptions();
    saveOpts.binaryMode = true;

    return scene.saveToBuffer('glb', saveOpts);
}

विशिष्ट रेंडरर्स के लिए सीन तैयार करना

Three.js / Babylon.js (वेब)

ये रेंडरर मूल रूप से GLB फ़ाइलें लोड करते हैं। के साथ निर्यात करें binaryMode = true. यदि टेक्सचर स्रोत OBJ से संदर्भित हैं, तो सुनिश्चित करें कि .mtl और इमेज फ़ाइलें लोड करते समय एक ही स्थान पर हों।.

model-viewer (वेब कॉम्पोनेन्ट)

स्वीकार करता है .glb सीधे। Three.js के समान निर्यात सेटिंग्स।.

Godot Engine

Godot के इम्पोर्टर (Project → Import) के माध्यम से GLB आयात करें। उपयोग करें binaryMode = true. Godot स्वाभाविक रूप से glTF 2.0 से PBR मैटेरियल्स का समर्थन करता है।.

Blender

सर्वोत्तम आयात सटीकता के लिए glTF (output.gltf + output.bin) या GLB (output.glb). Blender का glTF 2.0 इम्पोर्टर PBR मैटेरियल्स और एनीमेशन को संभालता है। नोट: FBX आउटपुट के माध्यम से scene.save() समर्थित नहीं है — FBX फ़ॉर्मेट ऑटो-डिटेक्शन को सेव डिस्पैचर में जोड़ा नहीं गया है।.

3D Printing (Slicers: Cura, PrusaSlicer, Bambu Studio)

STL या 3MF में निर्यात करें। जब आपको रंग या सामग्री मेटाडेटा संरक्षित चाहिए तो 3MF का उपयोग करें। अधिकतम संगतता के लिए STL का उपयोग करें।.

निर्यात फ़ॉर्मेट तुलना

फ़ॉर्मेटएक्सटेंशनमैटेरियल्सएनीमेशनएकल फ़ाइलसबसे उपयुक्त
GLB.glbPBR (glTF 2.0)हाँहाँवेब, गेम्स, सामान्य डिलीवरी
glTF.gltfPBR (glTF 2.0)हाँनहीं (+ .bin)विकास, निरीक्षण
STL.stlनहींनहींहाँ3D printing, geometry-only
FBX.fbxPhong/PBRनहीं*नहीं*इम्पोर्टर/एक्सपोर्टर मौजूद हैं लेकिन ऑटो-डिटेक्शन में जोड़े नहीं गए
COLLADA.daeहाँहाँहाँक्रॉस-DCC एक्सचेंज
3MF.3mfरंग/सामग्रीनहींहाँआधुनिक 3D प्रिंटिंग

सामान्य निर्यात समस्याएँ

लक्षणकारणसमाधान
आउटपुट GLB व्यूअर में JSON के रूप में खुलता हैbinaryMode जैसा है falseसेट opts.binaryMode = true
आउटपुट GLB में टेक्सचर गायब हैंbinaryMode सेट नहीं हैसेट opts.binaryMode = true स्वयं-समाहित GLB के लिए
STL फ़ाइल में स्लाइसर में कोई रंग नहीं हैSTL फ़ॉर्मेट रंग को सपोर्ट नहीं करतारंग डेटा के लिए 3MF का उपयोग करें
saveToBuffer खाली बफ़र लौटाता हैफ़ॉर्मेट स्ट्रिंग तर्क गायब या गलत हैफ़ॉर्मेट स्ट्रिंग पास करें, उदाहरण के लिए।. 'glb', 'stl', या 'obj'
FBX ब्लेंडर में बिना एनीमेशन के खुलता हैस्रोत फ़ाइल (OBJ/STL) में कोई एनीमेशन नहीं हैएनीमेशन केवल तभी आगे ले जाया जाता है जब वह स्रोत में मौजूद हो
आउटपुट फ़ाइल बहुत बड़ी हैस्रोत OBJ में कई डुप्लिकेट वर्टिसेज़ हैंGLB बाइनरी आउटपुट पहले से ही डिडुप्लिकेट करता है; स्रोत एसेट की गुणवत्ता जाँचें

See Also

 हिन्दी