1. สินค้า
  2.   3D
  3.   Node.js
  4.   glTF-Transform
 
  

SDK Node.js โอเพ่นซอร์สสำหรับทำงานกับโมเดล glTF 3 มิติ

SDK 3D Node.js โอเพ่นซอร์สชั้นนำช่วยให้นักพัฒนาซอฟต์แวร์สามารถอ่าน, เขียน, แก้ไข, ปรับประสิทธิภาพและจัดการโมเดล glTF 3 มิติภายในแอปพลิเคชัน Node.js.

glTF-Transform คืออะไร?

โลกของกราฟิก 3 มิติและเนื้อหาดิจิทัลกำลังเปลี่ยนแปลงอยู่เสมอ สำหรับนักพัฒนาซอฟต์แวร์และศิลปิน การมีเครื่องมือที่เหมาะสมเป็นสิ่งสำคัญ เครื่องมือหนึ่งที่ได้รับความสนใจมากคือไลบรารี glTF-Transform สร้างโดย Don McCurdy โครงการโอเพนซอร์สนี้เป็นการเปลี่ยนเกม มันช่วยนักพัฒนาซอฟต์แวร์และศิลปินจัดการกับด้านที่ซับซ้อนของการประมวลผลเรขาคณิต 3 มิติ รูปแบบ glTF ซึ่งย่อมาจาก GL Transmission Format เป็นมาตรฐานที่สร้างโดย Khronos Group มุ่งเน้นการส่งผ่าน 3 มิติอย่างมีประสิทธิภาพและการโหลดฉากและโมเดล 3 มิติภายในแอปพลิเคชัน Node.js

หากคุณสนใจสร้างกราฟิก 3 มิติโดยใช้รูปแบบ glTF, ไลบรารี glTF-Transform เป็นเครื่องมือที่ต้องมีสำหรับคุณ มันเหมาะสำหรับการใช้งานบนเว็บ เนื่องจากทำให้ไฟล์เบาและง่ายต่อการจัดการ เครื่องมือนี้สามารถจัดการเนื้อหา 3 มิติทุกประเภท เช่น เทกเจอร์, แอนิเมชัน, และเชดเดอร์ อีกทั้งยังช่วยลดขนาดไฟล์ glTF โดยไม่ลดคุณภาพภาพ ทำให้เวลาโหลดเร็วขึ้นและเพิ่มประสิทธิภาพของหน้าเว็บของคุณ นอกจากนี้ยังแปลงและปรับปรุงแอสเซ็ตสำหรับเอนจินเกมและแพลตฟอร์มต่าง ๆ อย่างไม่มีความยุ่งยาก ชุดคุณสมบัติที่แข็งแกร่ง, อินเทอร์เฟซที่ใช้งานง่าย, และการออกแบบแบบโอเพนซอร์ส ทำให้เป็นตัวเลือกที่นิยมสำหรับการปรับแต่งและแปลงแอสเซ็ต 3 มิติ โดยทั่วไปแล้ว ไลบรารี glTF-Transform เป็นเครื่องมือที่มีคุณค่าสำหรับผู้ที่ทำงานกับโมเดล 3 มิติในรูปแบบ glTF

Previous Next

เริ่มต้นกับ glTF-Transform

วิธีที่ง่ายที่สุดในการติดตั้งเวอร์ชันเสถียรของ glTF-Transform คือการใช้ npm โปรดใช้คำสั่งต่อไปนี้เพื่อการติดตั้งที่ราบรื่น

ติดตั้ง glTF-Transform ผ่าน npm

npm install --global @gltf-transform/cli 

ติดตั้ง glTF-Transform ผ่าน GitHub.

clone https://github.com/donmccurdy/glTF-Transform.git 

คุณสามารถดาวน์โหลดไลบรารีที่คอมไพล์แล้วจาก Github คลังข้อมูล

อ่านและเขียนฉาก glTF ใน Node.js

SDK แบบเปิดแหล่ง glTF-Transform ทำให้ผู้พัฒนาซอฟต์แวร์สร้างฉาก glTF ใหม่ตั้งแต่ต้นหรือโหลดและอ่านฉากที่มีอยู่ในแอปพลิเคชัน Node.js ของตนได้อย่างง่ายดาย ไลบรารีรองรับการแก้ไขฉากที่มีอยู่, การบีบอัดไฟล์ glTF, การปรับคุณสมบัติของวัสดุ, การปรับโครงสร้างของโหนด ฯลฯ ตัวอย่างง่าย ๆ นี้แสดงให้เห็นว่าผู้พัฒนาซอฟต์แวร์สามารถโหลดไฟล์ glTF ที่มีอยู่, อัปเดตและบันทึกไฟล์ glTF ที่แก้ไขแล้วไปยังตำแหน่งที่ต้องการภายในแอปพลิเคชัน Node.js ได้อย่างไร

วิธีโหลดและบันทึกไฟล์ glTF ที่แก้ไขแล้วในแอป Node.js?

const { NodeIO } = require('@gltf-transform/io');

// Create an IO instance.
const io = new NodeIO();

// Load a glTF file.
const document = io.read('path/to/your/model.glb');

// Perform operations on the document...

// Save the modified glTF file.
io.write('path/to/your/output.glb', document);

การบีบอัดและการปรับแต่งไฟล์ glTF ใน Node.js

SDK แบบเปิดแหล่ง glTF-Transform มีฟีเจอร์หลากหลายและอนุญาตให้ผู้พัฒนาซอฟต์แวร์บีบอัดและปรับแต่งไฟล์ glTF ภายในสภาพแวดล้อม Node.js ของตนเอง เพียงไม่กี่บรรทัดของโค้ด ไลบรารีสามารถลดขนาดไฟล์ได้อย่างมีนัยสำคัญในขณะที่คงคุณภาพภาพไว้ สิ่งนี้สำคัญต่อการเพิ่มประสิทธิภาพ โดยเฉพาะในเว็บแอปพลิเคชันที่เวลาโหลดและแบนด์วิดท์เป็นปัจจัยสำคัญ ตัวอย่างต่อไปนี้แสดงให้เห็นว่าผู้พัฒนาซอฟต์แวร์สามารถบีบอัดไฟล์ glTF ที่มีอยู่เพื่อ ลดขนาดไฟล์ภายในแอปพลิเคชัน Node.js ได้อย่างไร

วิธีบีบอัดไฟล์ glTF เพื่อเพิ่มประสิทธิภาพขนาดในแอป Node.js?

const { NodeIO } = require('@gltf-transform/io');
const { DracoMeshCompression } = require('@gltf-transform/extensions');
const { DracoMeshEncoder } = require('@gltf-transform/functions');

const io = new NodeIO();
const document = io.read('path/to/your/model.glb');

// Add Draco compression.
document.createExtension(DracoMeshCompression)
    .setRequired(true);

await document.transform(
    DracoMeshEncoder({ method: DracoMeshEncoder.Method.EDGEBREAKER })
);

io.write('path/to/your/output-compressed.glb', document);

การแปลงและแก้ไขไฟล์ glTF ใน Node.js

รูปแบบ glTF ซึ่งพัฒนาโดย Khronos Group เป็นมาตรฐานที่ไม่มีค่าลิขสิทธิ์สำหรับการส่งมอบทรัพยากร 3D ถูกออกแบบให้มีประสิทธิภาพในการส่งและโหลดฉากและโมเดล 3D อย่างมีประสิทธิภาพ SDK glTF-Transform อนุญาตให้ทำการแก้ไขไฟล์ glTF อย่างกว้างขวาง รวมถึงการเปลี่ยนแปลงลำดับชั้นของโหนด การปรับคุณสมบัติของวัสดุ การปรับแอนิเมชัน เป็นต้น ความสามารถเหล่านี้ให้ความยืดหยุ่นแก่ผู้พัฒนาในการปรับแต่งทรัพยากร 3D ให้ตรงกับความต้องการเฉพาะ ตัวอย่างต่อไปนี้แสดงว่าผู้พัฒนาซอฟต์แวร์สามารถปรับลำดับชั้นของโหนดภายในแอปพลิเคชัน Node.js ของตนเองได้อย่างไร

วิธีปรับโครงสร้าง Node Hierarchies ในแอป Node.js?

const { NodeIO } = require('@gltf-transform/io');
const { DracoMeshCompression } = require('@gltf-transform/extensions');
const { DracoMeshEncoder } = require('@gltf-transform/functions');

const io = new NodeIO();
const document = io.read('path/to/your/model.glb');

// Add Draco compression.
document.createExtension(DracoMeshCompression)
    .setRequired(true);

await document.transform(
    DracoMeshEncoder({ method: DracoMeshEncoder.Method.EDGEBREAKER })
);

io.write('path/to/your/output-compressed.glb', document);

การแปลงไฟล์ 3D glTF ภายใน Node.js

SDK glTF-Transform รองรับการแปลงไฟล์ glTF ระหว่างเวอร์ชันและส่วนขยายต่าง ๆ อย่างเต็มที่ภายในแอปพลิเคชัน Node.js ฟีเจอร์นี้มีประโยชน์อย่างยิ่งในการรับประกันความเข้ากันได้กับแพลตฟอร์มและแอปพลิเคชันหลากหลาย ไลบรารีนี้ยังสามารถส่งออกไฟล์ glTF ไปยังรูปแบบไฟล์อื่น ๆ เพื่ออำนวยความสะดวกในการใช้งานและการรวมระบบที่กว้างขวางขึ้น

 ไทย