使用 PHP 渲染 .glb / .gltf 3d 模型

问题描述

是否可以在 PHP 中创建或修改 .glb 或 .gltf 文件

例如,我想加载一个.glb文件修改它并再次保存它,类似于“图像处理和生成”-功能

代码

$model = @modelcreatefromglb("model.glb");
modelstring($model,5,"Hello World!");
modelglb($model,"model-with-text.glb");

我只找到了一个用于“搅拌机”(.blend-Files)的小型库,但这不是理想的方式。

解决方法

据我所知,PHP 生态系统实际上并没有很多用于图形 API(OpenGL、Vulkan、Metal 等)的库,而且我找不到与该语言的 glTF 2.0 格式相关的任何内容.但是,.gltf 文件只是 JSON,您可以使用 json_decode( $gltfContent ) 解析其内容。许多更改,例如更改对象的材料或位置,只需根据 glTF specificationquickstart guide 修改该 JSON 即可进行。顶点和纹理数据通常位于单独的文件(.bin.png.jpg)中,需要更仔细的解析才能使用。

.glb 是一个二进制文件,包含一个小的 JSON 标头(相当于 .gltf 的内容),后跟二进制顶点、动画和纹理数据在一个独立文件中。解析这需要更多的工作,但非常可行。这是example code in JavaScript,如果有帮助的话。