Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 我们可以在服务器端编辑(位置、比例等)glTF模型吗(没有三个.js)?_Node.js_Three.js_Gltf - Fatal编程技术网

Node.js 我们可以在服务器端编辑(位置、比例等)glTF模型吗(没有三个.js)?

Node.js 我们可以在服务器端编辑(位置、比例等)glTF模型吗(没有三个.js)?,node.js,three.js,gltf,Node.js,Three.js,Gltf,我正在尝试合并两个gltf资产,并使用sayduck gltf管道来实现它。问题是我需要一个资产远离其他资产。猫(0,0,0)和狗(10,0,0)并排放置以便比较 我曾尝试在服务器端(node.js)使用three.js,但要让gltf解析器在服务器端工作有点困难。如果不使用three.js就可以实现,那就太好了。您不需要使用threejs这样的3D渲染库来编辑glTF文件服务器端。对于最简单的情况(在.gltf文件中重新定位对象),您可以执行以下操作: const fs = require('

我正在尝试合并两个gltf资产,并使用sayduck gltf管道来实现它。问题是我需要一个资产远离其他资产。猫(0,0,0)和狗(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));

要对文件进行更复杂的更改,您需要使用或了解。

您还可以将两个模型导入Blender,执行更改,然后作为单个
glTF
资产导出。您好@Mugen87,我正在尝试仅使用nodejs在服务器上执行此操作(我从API中获取两个3d模型,合并、编辑位置并将其发送给用户)因此,我猜Blender路径不适合我。感谢您的回答。您是如何使用sayduck管道作为javascript库将文件合并在一起的?@PatrickLüthi您可以使用并运行
sayduck gltf管道gltf实用程序--gltf merge merged_name.gltf-o path/to/output/folder/path/to/first.gltf path/to/second.gltf
@RamBa我需要将它们合并到javascript代码中。你知道有什么选择吗?嗨,Don McCurdy,这正是我想要的。我确实通读了规范,但错过了翻译,正如我在three.js中所期望的那样。非常感谢你对AFRAME和threejs社区所做的贡献。