مجموعة تطوير برمجيات Node.js مفتوحة المصدر للعمل مع نماذج glTF ثلاثية الأبعاد
مجموعة تطوير برمجيات Node.js ثلاثية الأبعاد مفتوحة المصدر رائدة تسمح لمطوري البرمجيات بقراءة، كتابة، تحرير، تحسين ومعالجة نماذج glTF ثلاثية الأبعاد داخل تطبيقات Node.js.
ما هو glTF-Transform؟
عالم الرسومات ثلاثية الأبعاد والمحتوى الرقمي يتغير باستمرار. بالنسبة لمطوري البرمجيات والفنانين، فإن امتلاك الأدوات المناسبة أمر حاسم. إحدى الأدوات التي حظيت بالكثير من الاهتمام هي مكتبة glTF-Transform. أنشأها دون ماكوردى، وهذا المشروع المفتوح المصدر يُعد تغييرًا جذريًا. يساعد مطوري البرمجيات والفنانين على التعامل مع جميع الجوانب المعقدة لمعالجة الهندسة ثلاثية الأبعاد. تنسيق glTF، الذي يرمز إلى GL Transmission Format، هو معيار تم إنشاؤه بواسطة مجموعة Khronos. يهدف إلى نقل المشاهد والنماذج ثلاثية الأبعاد بكفاءة وتحميلها داخل تطبيقات Node.js.
إذا كنت مهتمًا بإنشاء رسومات ثلاثية الأبعاد باستخدام تنسيق glTF، فإن مكتبة glTF-Transform هي أداة لا غنى عنها لك. إنها رائعة للاستخدام على الويب، حيث تحافظ على الخفة والبساطة. يمكن لهذه الأداة التعامل مع جميع أنواع المحتوى ثلاثي الأبعاد مثل القوام، والرسوم المتحركة، والظلال. بالإضافة إلى ذلك، تساعد على تقليل حجم ملفات glTF دون المساس بالمرئيات. من خلال ذلك، تُسرّع أوقات التحميل وتعزز الأداء على صفحات الويب الخاصة بك. علاوة على ذلك، تقوم بتحويل وتعزيز الأصول بسهولة لمختلف محركات الألعاب والمنصات. تجعل مجموعة ميزاتها القوية، وواجهة المستخدم السهلة، وتصميمها المفتوح المصدر، منها الخيار المفضل لتحسين وتحويل الأصول ثلاثية الأبعاد. بشكل عام، تُعد مكتبة glTF-Transform أداة قيمة للأشخاص الذين يتعاملون مع نماذج ثلاثية الأبعاد بتنسيق glTF.
البدء مع 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
مجموعة أدوات glTF-Transform مفتوحة المصدر تجعل من السهل على مطوري البرمجيات إنشاء مشاهد glTF جديدة من الصفر أو تحميل وقراءة المشاهد الموجودة داخل تطبيقاتهم الخاصة بـ Node.js. تدعم المكتبة تعديل المشاهد الحالية، ضغط ملف 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
مجموعة أدوات 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، هو معيار خالٍ من الرسوم لتسليم الأصول ثلاثية الأبعاد. تم تحسينه لنقل وتحميل مشاهد ونماذج ثلاثية الأبعاد بكفاءة. يتيح SDK glTF-Transform تعديلًا واسعًا لملفات glTF، بما في ذلك تغيير هياكل العقد، تعديل خصائص المواد، ضبط الرسوم المتحركة وما إلى ذلك. تمنح هذه القدرات المطورين مرونة تخصيص الأصول ثلاثية الأبعاد لتلبية الاحتياجات المحددة. يوضح المثال التالي كيف يمكن لمطوري البرمجيات تعديل هياكل العقد داخل تطبيقاتهم الخاصة بـ Node.js.
كيفية تعديل هياكل العقد داخل تطبيقات 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
يدعم SDK glTF-Transform تحويل ملفات glTF بين إصدارات وامتدادات مختلفة داخل تطبيقات Node.js بشكل كامل. هذه الميزة مفيدة بشكل خاص لضمان التوافق مع مختلف المنصات والتطبيقات. يمكن للمكتبة أيضًا تصدير ملفات glTF إلى تنسيقات ملفات أخرى، مما يسهل الاستخدام الأوسع والتكامل.