#gltf #low-level #reader #basic #extension #glb #goth

goth-gltf

轻量级、底层的gltf(和glb)文件读取器

2个版本

0.1.1 2023年7月3日
0.1.0 2023年7月3日

#53 in 数据格式

MIT 许可证

44KB
1K SLoC

goth-gltf

Goth-gltf旨在成为gltf文件的底层、无偏见的读取器。

基本示例

let filename = std::env::args().nth(1).unwrap();
let bytes = std::fs::read(&filename).unwrap();
let (gltf, _): (
    goth_gltf::Gltf<goth_gltf::default_extensions::Extensions>,
    _,
) = goth_gltf::Gltf::from_bytes(&bytes).unwrap();
println!("{:#?}", gltf);

gltf-rs相比,它

  • 透明地表示gltf JSON结构
  • 使用nanoserde而不是serde
  • 支持更广泛的扩展
  • 没有针对加载图像或从缓冲区读取属性的特定代码

实现的扩展

  • KHR_lights_punctual
  • KHR_materials_emissive_strength
  • KHR_materials_ior
  • KHR_materials_sheen
  • KHR_materials_unlit
  • KHR_texture_basisu
  • KHR_texture_transform
  • EXT_mesh_gpu_instancing
  • EXT_meshopt_compression
  • MSFT_lod
  • MSFT_screencoverage

许可证:MIT


lib.rs:

Goth-gltf旨在成为gltf文件的底层、无偏见的读取器。

基本示例

let filename = std::env::args().nth(1).unwrap();
let bytes = std::fs::read(&filename).unwrap();
let (gltf, _): (
    goth_gltf::Gltf<goth_gltf::default_extensions::Extensions>,
    _,
) = goth_gltf::Gltf::from_bytes(&bytes).unwrap();
println!("{:#?}", gltf);

gltf-rs相比,它

  • 透明地表示gltf JSON结构
  • 使用nanoserde而不是serde
  • 支持更广泛的扩展
  • 没有针对加载图像或从缓冲区读取属性的特定代码

实现的扩展

  • KHR_lights_punctual
  • KHR_materials_emissive_strength
  • KHR_materials_ior
  • KHR_materials_sheen
  • KHR_materials_unlit
  • KHR_texture_basisu
  • KHR_texture_transform
  • EXT_mesh_gpu_instancing
  • EXT_meshopt_compression
  • MSFT_lod
  • MSFT_screencoverage

依赖

~110–265KB