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