问题描述
是否可以在 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 specification 或 quickstart guide 修改该 JSON 即可进行。顶点和纹理数据通常位于单独的文件(.bin
、.png
、.jpg
)中,需要更仔细的解析才能使用。
.glb
是一个二进制文件,包含一个小的 JSON 标头(相当于 .gltf
的内容),后跟二进制顶点、动画和纹理数据在一个独立文件中。解析这需要更多的工作,但非常可行。这是example code in JavaScript,如果有帮助的话。