SDK متن باز Node.js برای کار با مدلهای 3D glTF
یک SDK پیشرو و متن باز Node.js 3D به توسعهدهندگان نرمافزار امکان میدهد تا مدلهای 3D glTF را درون برنامههای Node.js بخوانند، بنویسند، ویرایش کنند، بهینهسازی و دستکاری نمایند.
glTF-Transform چیست؟
دنیای گرافیکهای سهبعدی و محتوای دیجیتال همواره در حال تغییر است. برای توسعهدهندگان نرمافزار و هنرمندان، داشتن ابزارهای مناسب بسیار حیاتی است. یکی از ابزارهایی که توجه زیادی را به خود جلب کرده است، کتابخانه glTF-Transform است. این پروژه منبع باز که توسط دان مککوردی ایجاد شده، یک تغییر اساسی محسوب میشود. این کتابخانه به توسعهدهندگان نرمافزار و هنرمندان کمک میکند تا با تمام جنبههای پیچیده پردازش هندسه سهبعدی مقابله کنند. فرمت glTF که مخفف GL Transmission Format است، استانداردی است که توسط Khronos Group ایجاد شده. این فرمت بهطور کارآمدی برای انتقال و بارگذاری صحنهها و مدلهای سهبعدی در برنامههای 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 میتوانید کتابخانهٔ مشترک کامپایلشده را از مخزن گیتهاب دانلود کنید.
خواندن و نوشتن صحنههای 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 توسعه یافته است، یک استاندارد بدون حق امتیاز برای تحویل داراییهای سهبعدی است. این فرمت برای انتقال کارآمد و بارگذاری صحنهها و مدلهای سهبعدی بهینهسازی شده است. 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 را به فرمتهای دیگر صادر کند، که استفاده و یکپارچهسازی گستردهتری را تسهیل مینماید.