使用 PHP 渲染 .glb / .gltf 3d 模型
Posted
技术标签:
【中文标题】使用 PHP 渲染 .glb / .gltf 3d 模型【英文标题】:Render .glb / .gltf 3d model with PHP 【发布时间】:2021-05-30 08:19:37 【问题描述】:是否可以在 php 中创建或修改 .glb 或 .gltf 文件?
比如我要加载一个.glb文件,修改后再保存,类似“图像处理与生成”-函数。
伪代码:
$model = @modelcreatefromglb("model.glb");
modelstring($model, 5, 0, 0, 0, "Hello world!");
modelglb($model, "model-with-text.glb");
我只找到了一个用于“blender”的小型库(.blend-Files),但这不是我们想要的方式。
【问题讨论】:
【参考方案1】:据我所知,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,如果有帮助的话。
【讨论】:
目前我正在尝试通过 JSON 处理文件的结构......但我仍然希望有一个函数集合来编辑文件。以上是关于使用 PHP 渲染 .glb / .gltf 3d 模型的主要内容,如果未能解决你的问题,请参考以下文章
我的渲染技术进阶之旅让我们一起来了解一下什么是glTF?为什么glTF是3D世界的JPEG?
我的渲染技术进阶之旅让我们一起来了解一下什么是glTF?为什么glTF是3D世界的JPEG?