บทนำ
เรามีความยินดีที่จะแจ้งให้ทราบว่ามีการเปิดให้ใช้งาน Aspose.3D FOSS สำหรับ TypeScript ในรูปแบบ @aspose/3d npm package. ไลบรารีที่ใช้ใบอนุญาต MIT นี้นำการประมวลผลฉาก 3D ระดับผลิตภัณฑ์ไปยังแอปพลิเคชัน TypeScript และ Node.js โดยไม่ต้องใช้ไบนารีเนทีฟ, ชุดเครื่องมือเฉพาะแพลตฟอร์ม, หรือใบอนุญาตเชิงพาณิชย์.
ไลบรารีนี้ออกแบบโดยอิงตาม Scene API: โหลดไฟล์ 3D ด้วย scene.open(), ตรวจสอบหรือแปลงกราฟฉาก, และเขียนผลลัพธ์ด้วย scene.save(). คำจำกัดความประเภท TypeScript เต็มรูปแบบถูกรวมไว้ในแพคเกจ; ไม่จำเป็นต้องมี @types/ แพคเกจแยกต่างหาก.
คุณลักษณะหลัก
การอ่าน/เขียนหลายรูปแบบ. แพคเกจนี้สามารถอ่านและเขียนรูปแบบ 3D หลัก 6 รูปแบบได้ในการติดตั้งเดียว. รองรับการนำเข้า OBJ; glTF 2.0, GLB, STL, 3MF, และ COLLADA รองรับทั้งการนำเข้าและการส่งออก. มีคลาสนำเข้า/ส่งออก FBX แต่การตรวจจับรูปแบบอัตโนมัติยังไม่ได้เชื่อมต่อ, ดังนั้นไฟล์ FBX ไม่สามารถโหลดผ่าน scene.open().
การสนับสนุน TypeScript ระดับแรก. คลาสสาธารณะทั้งหมด, enum, และประเภทตัวเลือกทั้งหมดถูกกำหนดประเภทอย่างเต็มที่. IDE ที่รองรับบริการภาษา TypeScript (เช่น VS Code, WebStorm ฯลฯ) จะให้การเติมข้อความอัตโนมัติที่แม่นยำและเอกสารอธิบายแบบอินไลน์สำหรับทุกการเรียก API.
ความเข้ากันได้กับ Node.js 18–22+. แพคเกจนี้ได้รับการทดสอบกับรุ่น LTS ของ Node.js 18, 20, และ 22. ไม่มีการคอมไพล์ native addon ใด ๆ ระหว่างการติดตั้ง, ดังนั้นจึงทำงานได้บนทุกแพลตฟอร์มที่ Node.js รองรับ.
มีการพึ่งพา runtime เพียงหนึ่งรายการ. การพึ่งพาเดียวคือ xmldom, ใช้เฉพาะสำหรับการแยกวิเคราะห์ XML ของ COLLADA เท่านั้น ตัวแปลงรูปแบบอื่นทั้งหมดเป็นการทำงานด้วย 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 การพึ่งพา |
ข้อดีของ TypeScript
ทำงานกับ @aspose/3d ใน TypeScript จะตรวจจับข้อผิดพลาดประเภทในช่วงคอมไพล์แทนที่จะเป็นช่วงรันไทม์ เมื่อคุณเรียก scene.save(),คอมไพเลอร์จะตรวจสอบว่าอ็อบเจกต์ options ตรงกับที่คาดหวัง SaveOptions subtype สำหรับรูปแบบที่เลือก ตัวเลือกการโหลดและบันทึกที่เฉพาะเจาะจงต่อรูปแบบจะเปิดเผยเฉพาะคุณสมบัติที่เกี่ยวข้องกับรูปแบบนั้น; ไม่มีถุงตัวเลือกที่ไม่มีประเภทให้ต้องเดา.
ตัวอย่างเช่น, GltfSaveOptions.binaryMode เป็นแบบที่มีประเภท boolean, ดังนั้นคอมไพเลอร์จะปฏิเสธ saveOpts.binaryMode = 'yes' ก่อนที่โค้ดใดจะทำงาน คุณสมบัติแอนิเมชันบน AnimationClip, ช่องวัสดุบน PbrMaterial, และประเภทขององค์ประกอบเวอร์เท็กซ์บน VertexElement ทั้งหมดนี้มีประเภทคล้ายกันและสามารถค้นพบได้ผ่าน IntelliSense โดยไม่ต้องอ้างอิงเอกสารภายนอก.
โอเพนซอร์สและฟรี
แพ็กเกจนี้เผยแพร่ภายใต้ MIT License. โค้ดต้นฉบับพร้อมให้ใช้งานบน GitHub. การสนับสนุน, รายงานบั๊ก, และคำขอการสนับสนุนรูปแบบต่าง ๆ ยินดีรับผ่านตัวติดตามปัญหาของที่เก็บข้อมูล.
ไลบรารีมีการพึ่งพา runtime หนึ่งรายการ: xmldom เวอร์ชัน 0.9+ ใช้เฉพาะเมื่ออ่านหรือเขียนไฟล์ COLLADA เท่านั้น ตัวแยกวิเคราะห์และตัวเขียนอื่น ๆ ทั้งหมดเป็นการนำไปใช้แบบ pure-JavaScript ที่เป็นอิสระและไม่มีส่วนประกอบไบนารี.
เริ่มต้นใช้งาน
- npm:
npm install @aspose/3d - ฐานความรู้: วิธีโหลดโมเดล 3D ใน TypeScript
- ฐานความรู้: วิธีส่งออกฉาก 3D ไปยัง glTF/GLB ใน TypeScript
- อ้างอิง API: Aspose.3D FOSS สำหรับ TypeScript: การอ้างอิงคลาสเต็ม
- GitHub: aspose-3d/aspose-3d-node
สรุป
@aspose/3d เวอร์ชัน 24.12.0 ให้พื้นฐานที่เสถียร, มีการกำหนดประเภท, และมีการพึ่งพาน้อยสำหรับการประมวลผลไฟล์ 3D ใน TypeScript และ Node.js ไม่ว่ากรณีการใช้งานจะเป็นการแปลงรูปแบบ, การตรวจสอบฉาก, การสกัดเรขาคณิต, หรือการรวมเข้ากับ pipeline ไลบรารีครอบคลุมรูปแบบการแลกเปลี่ยน 3D ที่พบบ่อยที่สุดภายใต้ใบอนุญาตโอเพนซอร์สที่อนุญาตอย่างกว้างขวาง.
ติดตั้งวันนี้และแจ้งให้เราทราบว่าคุณสร้างอะไร.