开源 Node.js SDK,用于处理 3D glTF 模型
领先的开源 Node.js 3D SDK,使软件开发者能够在 Node.js 应用中读取、写入、编辑、优化和操作 glTF 3D 模型。
什么是 glTF-Transform?
3D 图形和数字内容的世界始终在变化。对于软件开发者和艺术家来说,拥有合适的工具至关重要。备受关注的工具之一是 glTF-Transform 库。该库由 Don McCurdy 创建,是一个开源项目,堪称游戏规则改变者。它帮助软件开发者和艺术家处理 3D 几何处理中的所有棘手问题。glTF 格式,即 GL Transmission Format,是 Khronos Group 制定的标准。它旨在高效传输 3D 并在 Node.js 应用中加载 3D 场景和模型。
如果你热衷于使用 glTF 格式创建 3D 图形,glTF-Transform 库是必备工具。它非常适合网页使用,因为它保持轻量和简洁。该工具可以处理各种 3D 内容,如纹理、动画和着色器。而且,它还能在不影响视觉效果的前提下缩小 glTF 文件的大小。这样可以加快加载时间并提升网页性能。此外,它还能轻松地为各种游戏引擎和平台转换和增强资产。其强大的功能、用户友好的界面以及开源设计,使其成为优化和转换 3D 资产的首选。总体而言,glTF-Transform 库是处理 glTF 格式 3D 模型的有价值工具。
glTF-Transform 入门指南
安装 glTF-Transform 稳定版的最简便方法是使用 npm。请使用以下命令进行顺利安装。
通过 npm 安装 glTF-Transform
npm install --global @gltf-transform/cli 通过 GitHub 安装 glTF-Transform。
clone https://github.com/donmccurdy/glTF-Transform.git 您可以从 GitHub 仓库下载已编译的共享库。
在 Node.js 中读取和写入 glTF 场景
开源的 glTF-Transform SDK,使软件开发者能够轻松从头创建新的 glTF 场景,或在自己的 Node.js 应用中加载和读取现有场景。该库支持修改现有场景、压缩 glTF 文件、修改材质属性、调整节点层级等。下面是一个简单示例,展示软件开发者如何加载已有的 glTF 文件并进行更新,然后将修改后的 glTF 文件保存到 Node.js 应用中自行选择的位置。
如何在 Node.js 应用中加载和保存修改后的 glTF 文件?
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);
在 Node.js 中进行 glTF 文件压缩与优化
开源的 glTF-Transform SDK 功能丰富,允许软件开发者在自己的 Node.js 环境中压缩和优化 glTF 文件。只需几行代码,库就能在保持视觉质量的同时显著减小文件大小。这对于提升性能至关重要,尤其是在加载时间和带宽关键的 Web 应用中。下面的示例演示了软件开发者如何在 Node.js 应用中压缩现有的 glTF 文件以减小其体积。
如何在 Node.js 应用中压缩 glTF 文件以优化其大小?
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);
在 Node.js 中进行 glTF 文件转换与编辑
glTF 格式由 Khronos Group 开发,是一种免版税的 3D 资产交付标准。它针对 3D 场景和模型的高效传输和加载进行了优化。glTF-Transform SDK 允许对 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);
在 Node.js 中进行 glTF 3D 文件转换
glTF-Transform SDK 完全支持在 Node.js 应用中在不同版本和扩展之间转换 glTF 文件。此功能对于确保与各种平台和应用的兼容性尤为有用。该库还可以将 glTF 文件导出为其他文件格式,促进更广泛的使用和集成。