node.js - 我们可以在服务器端编辑(位置、比例等)glTF 模型(没有三个.js)吗?
问题描述
我正在尝试合并两个 gltf 资产,我正在使用 sayduck gltf 管道来实现它。问题是我需要其中一项资产远离其他资产。例如。cat (0, 0, 0) 和 dog (10, 0, 0) 以便将它们并排放置以进行比较
我尝试在服务器端(node.js)使用three.js,但让gltf解析器在服务器端工作有点困难。如果不使用 three.js 就可以实现,那就太好了。
解决方案
您不需要使用像threejs 这样的3D 渲染库来编辑glTF 文件服务器端。对于最简单的情况(在.gltf
文件中重新定位对象),您可以这样做:
const fs = require('fs');
// Read and parse file.
const gltfContent = fs.readFileSync('file.gltf', {encoding: 'utf8'});
const gltf = JSON.parse(gltfContent);
// Edit glTF asset.
const node = gltf.nodes.filter((n) => n.name === 'Cat')[0];
node.translation = [10, 0, 5];
// Write to disk.
fs.writeFileSync('file.gltf', JSON.stringify(gltf));
要对文件进行更复杂的更改,您需要使用现有的解析/编写工具或了解glTF 规范。
推荐阅读
- javascript - 如何将道具存储到单个状态对象中
- node.js - 在 Nodejs 中为来宾和用户使用相同的 API 端点
- python - 将 Django 部署到 Heroku - 尽管 DJANGO_ALLOWED_HOSTS 中有 Heroku URL,但出现 DisallowedHost 错误
- java - 我正在尝试将 java 代码转换为 python 代码
- javascript - 如何使用 javascript 从 django FileResponse 获取图像
- python - 如何将文本文件写入 syslog.1.gz 文件?
- rust - Rust 构建脚本将文件复制到目标目录
- python - 在 Python 中使用线程计算阶乘
- reactjs - 我的 react native tensorflow 模型(我使用 tfjs 转换器从 keras 转换而来)对每张图像都给出了相同的预测
- azure-cosmosdb - 比较 Cosmos DB (SQL API) 中的数组属性