用于读取、写入和管理khronos组gltf和gltf格式的三维对象的python库。
pygltflib的Python项目详细描述
pygltflib
这是一个用于读取、写入和处理gltf文件的库。适用于蟒蛇3.6及以上。
它支持整个规范,包括材料和动画。主要功能有:
- GLB和GLTF支持
- 缓冲区数据转换
- 扩展名
- 所有属性都是提示类型
快速启动
pip install pygltflib
如何……。
创建一个空的gltF2对象?
frompygltflibimportGLTF2gltf=GLTF2()
添加场景?
frompygltflibimportGLTF2,Scenegltf=GLTF2()scene=Scene()gltf.scenes.append(scene)# scene available at gltf.scenes[0]
加载文件?
filename="glTF-Sample-Models/2.0/AnimatedCube/glTF/AnimatedCube.gltf"gltf=GLTF2().load(filename)
加载二进制glb文件?
glb_filename="glTF-Sample-Models/2.0/Box/glTF-Binary/Box.glb"glb=GLTF2().load(glb_filename)# load method auto detects based on extension
加载扩展名异常的二进制文件?
glb=GLTF2().load_binary("BinaryGLTF.glk")# load_json and load_binary helper methods
将缓冲区转换为glb二进制缓冲区?
frompygltflibimportGLTF2,BufferFormatgltf=GLTF2().load("glTF-Sample-Models/2.0/Box/glTF/Box.gltf")gltf.convert_buffers(BufferFormat.BINARYBLOB)# convert buffers to GLB blob
将缓冲区转换为数据uri(嵌入式)缓冲区?
gltf.convert_buffers(BufferFormat.DATAURI)# convert buffer URIs to data.
将缓冲区转换为二进制文件(外部)缓冲区?
gltf.convert_buffers(BufferFormat.BINFILE)# convert buffers to filesgltf.save("test.gltf")# all the buffers are saved in 0.bin, 1.bin, 2.bin.
将glb转换为gltf文件?
pip install pygltflib
0
访问分机?
pip install pygltflib
1
向属性添加自定义属性?
pip install pygltflib
2
关于
这是一个非官方的库,它跟踪glt2的官方文件格式。
该库最初是为加载和保存简单网格而构建的,但支持整个规范,包括材质 动画也不错。支持json(.gltf)和二进制(.glb)文件格式,尽管.glb支持 目前缺少一些功能。
它需要Python3.6及更高版本,因为它使用数据类,并且所有属性都是类型提示的。还有F弦,很多F弦。
查看下表了解哪些示例模型有效。
有问题吗?贡献?错误报告?在项目的gitlab页面上打开一个问题。
我们非常有兴趣听取您使用pygltflib
的用例,以帮助您制定路线图。
路线图
- 添加用于创建网格的辅助函数
- 测试覆盖率
- 在自定义属性属性上强制使用单下划线
- 自动验证和目视检查
贡献者
- 卢克·米勒
- 塞巴斯蒂安·赫夫纳
- 阿瑟·范霍夫
- Arifullah Jan
- 丹尼尔·海恩
谢谢
pygltflib
为电影《维多利亚》支持的"节拍:一款炫目的黑色游戏"而制作。
更改日志
1.11.7
- 将缺少的
规范化的
标志添加到访问器
- 将缺少的
1.11.6
- 添加对扩展的支持
- 添加对附加功能的支持
- 在属性上添加对自定义属性的支持
- 默认情况下,将primitive.attributes设置为
none
(使用primitive.attributes=attributes()
) - 删除有关bytestride的警告,因为这不是此库的责任
- 添加大量测试
1.11.5
- 重新排序
标识uri
以避免使用长字节字符串作为文件名 - 保存时指定父路径,以便将bin文件保存到同一路径
- 重新排序
1.11.4
- 拆下衬垫
- 提高数据类json向后兼容性
1.11.3
- 使用setup.py修复导入问题
1.11.2
- 修复在glb中保存长数据uri的问题
- 修复不同版本的数据类json的兼容性问题
1.11.1
- 更新文档
- 改进包装
1.11<P>
- 通过
gltf.binary_blob()
添加对内部glb二进制数据的访问
- add
convert_buffers
方法在数据uri、二进制文件和二进制blob之间切换缓冲区格式
- 通过
1.10<P>
- 保存时处理空缓冲区
- 警告不支持的数据uri缓冲视图
- 允许透明纹理(使用Alpha通道)
1.9<P>
- 使用工厂创建属性和资产对象
1.8<P>
- 允许图像指向缓冲视图
1.7<P>
- 保存到glb时保留bufferviews的顺序
- 在嵌入数据中正确填充二进制块
1.6<P>
- 更好地支持二进制(.glb)文件(错误修复)
- 从内部方法提升
加载json
,加载二进制
,保存json
和保存二进制
。
1.5<P>
- 正确对齐嵌入数据
- 将
glb2gltf
和glt2glb
util函数添加到pygltflib.utils
以便于文件转换
1.4<P>
- 添加对保存到二进制gltf(.glb)文件的基本支持
- 将未记录的非核心方法移动到
pygltfib.utils
1.3<P>
- 添加读取二进制gltf(.glb)文件的基本支持
- < 1.2 >< > >
- 提供更好的json支持
- 删除numpy要求
- 抑制推断警告
- 添加基本默认方法
1<P>
- 初始版本
安装
pip install pygltflib
来源
pip install pygltflib
4
更详细的用法
注意:这些示例使用khronos提供的官方示例模型。
https://github.com/khronosgroup/gltf示例模型
简单的网格
pip install pygltflib
5
加载和保存
pygltflib
可以根据文件扩展名加载基于json的.gltf文件和二进制.glb文件。
gltf文件
pip install pygltflib
6
glb文件
pip install pygltflib
7
转换文件
第一种方法
pip install pygltflib
8
使用utils的第二种方法
pip install pygltflib
9
转换缓冲区
pip install pygltflib
pip install pygltflib
9
转换缓冲区
gltf2文件中缓冲区的数据可以存储在缓冲区对象的uri字符串中 或者在由缓冲区对象的uri字符串指向的二进制文件中,或者作为二进制blob 在glb文件中。
在保存和加载gltf2文件时,库主要透明地处理这些文件, 在某些情况下,您可能需要特定类型的缓冲存储器。
例如,如果有一个gltf文件将所有相关数据存储在.bin文件中 但是如果要创建单个文件,则需要从二进制文件转换缓冲区 到数据uri或glb二进制数据。
有一个名为converu buffers
的方便方法可以帮助您。
frompygltflibimportGLTF2gltf=GLTF2()0
扩展名
gltf规范允许向gltf文件的任何组件添加扩展名。