บทนำ
เรามีความยินดีที่จะแจ้งให้ทราบว่ามีการเปิดให้ใช้งาน 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+. แพคเกจนี้ได้รับการทดสอบกับ Node.js 18, 20, และ 22 LTS releases. ไม่มี native addon ใดถูกคอมไพล์ระหว่างการติดตั้ง, ดังนั้นจึงทำงานได้บนทุกแพลตฟอร์มที่ Node.js รองรับ.
หนึ่งการพึ่งพาในระหว่างรันไทม์. การพึ่งพาเพียงอย่างเดียวคือ 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 และ binary STL |
| 3MF | .3mf | ใช่ | ใช่ | ไฟล์เก็บ Open Packaging Convention |
| FBX | .fbx | ไม่* | ไม่* | มีตัวนำเข้า/ส่งออกอยู่ แต่การตรวจจับรูปแบบอัตโนมัติยังไม่ได้เชื่อมต่อ |
| 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 ไม่ว่าจะเป็นกรณีการใช้งานการแปลงรูปแบบ การตรวจสอบฉาก การสกัดเรขาคณิต หรือการบูรณาการพายป์ไลน์ ไลบรารีนี้ครอบคลุมรูปแบบการแลกเปลี่ยน 3D ที่พบบ่อยที่สุดภายใต้ใบอนุญาตโอเพนซอร์สแบบเปิดกว้าง.
ติดตั้งวันนี้และแจ้งให้เราทราบว่าคุณสร้างอะไรขึ้นมา.