1. Продукти
  2.   3D
  3.   Node.js
  4.   glTF-Transform
 
  

Отворен код Node.js SDK за работа с 3D glTF модели

Водещ отворен код Node.js 3D SDK позволява на софтуерните разработчици да четат, записват, редактират, оптимизират и манипулират 3D модели в glTF в рамките на Node.js приложения.

Какво е glTF-Transform?

Светът на 3D графиката и цифровото съдържание постоянно се променя. За софтуерните разработчици и художниците правилните инструменти са от съществено значение. Един инструмент, който получава много внимание, е библиотеката glTF-Transform. Създадена от Дон МакКърди, този проект с отворен код променя играта. Той помага на софтуерните разработчици и художници да се справят с всички сложни аспекти на обработката на 3D геометрия. Форматът glTF, който означава GL Transmission Format, е стандарт, създаден от Khronos Group. Той се фокусира върху ефективното предаване и зареждане на 3D сцени и модели в Node.js приложения.

Ако се интересувате от създаване на 3D графика с формат glTF, библиотеката glTF-Transform е незаменим инструмент за вас. Тя е отлична за уеб употреба, тъй като поддържа нещата леки и прости. Този инструмент може да обработва всички видове 3D съдържание като текстури, анимации и шейдъри. Освен това, помага да се намали размерът на glTF файловете без да се компрометира визуалното качество. По този начин ускорява времето за зареждане и подобрява производителността на вашите уеб страници. Освен това, без усилие преобразува и подобрява активи за различни игрови енджини и платформи. Силният набор от функции, потребителският интерфейс и отвореният код я правят предпочитан избор за оптимизиране и конвертиране на 3D активи. Като цяло, библиотеката glTF-Transform е ценен инструмент за хора, работещи с 3D модели във формат 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

Отвореният код glTF-Transform SDK улеснява софтуерните разработчици да създават нови 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

Отвореният код glTF-Transform SDK е изключително богата на функции и позволява на софтуерните разработчици да компресират и оптимизират 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.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 файлове в други файлови формати, улеснявайки по-широко използване и интеграция.

 Български