1. Товары
  2.   3D
  3.   Node.js
  4.   glTF-Transform
 
  

Открытый SDK для Node.js для работы с 3D‑моделями glTF

Ведущий открытый 3D SDK для Node.js позволяет разработчикам программного обеспечения читать, записывать, редактировать, оптимизировать и манипулировать 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

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

 Русский