Crate gltf

Source
Expand description

glTF 2.0 loader

This crate is intended to load glTF 2.0, a file format designed for the efficient runtime transmission of 3D scenes. The crate aims to provide rustic utilities that make working with glTF simple and intuitive.

§Installation

Add gltf to your Cargo.toml:

[dependencies.gltf]
version = "1"

§Examples

§Basic usage

Walking the node hierarchy.

let gltf = Gltf::open("examples/Box.gltf")?;
for scene in gltf.scenes() {
    for node in scene.nodes() {
        println!(
            "Node #{} has {} children",
            node.index(),
            node.children().count(),
        );
    }
}

§Import function

Reading a glTF document plus its buffers and images from the file system.

let (document, buffers, images) = gltf::import("examples/Box.gltf")?;
assert_eq!(buffers.len(), document.buffers().count());
assert_eq!(images.len(), document.images().count());

§Note

This function is provided as a convenience for loading glTF and associated resources from the file system. It is suitable for real world use but may not be suitable for all real world use cases. More complex import scenarios such downloading from web URLs are not handled by this function. These scenarios are delegated to the user.

You can read glTF without loading resources by constructing the Gltf (standard glTF) or Glb (binary glTF) data structures explicitly. Buffer and image data can then be imported separately using import_buffers and import_images respectively.

Re-exports§

pub extern crate gltf_json as json;

Modules§

accessor
Accessors for reading vertex attributes from buffer views.
animation
Animations, their channels, targets, and samplers.
binary
Primitives for working with binary glTF.
buffer
Buffers and buffer views.
camera
Cameras and their projections.
image
Images that may be used by textures.
iter
Iterators for walking the glTF node hierarchy.
khr_lights_punctualKHR_lights_punctual
Support for the KHR_lights_punctual extension.
khr_materials_variantsKHR_materials_variants
Support for the KHR_materials_variants extension.
material
Material properties of primitives.
mesh
Meshes and their primitives.
scene
The glTF node heirarchy.
skin
Mesh skinning primitives.
texture
Textures and their samplers.

Structs§

Accessor
A typed view into a buffer view.
Animation
A keyframe animation.
Buffer
A buffer points to binary data representing geometry, animations, or skins.
Camera
A camera’s projection. A node can reference a camera to apply a transform to place the camera in the scene.
Document
glTF JSON wrapper.
Glb
Binary glTF contents.
Gltf
glTF JSON wrapper plus binary payload.
Image
Image data used to create a texture.
Material
The material appearance of a primitive.
Mesh
A set of primitives to be rendered.
Node
A node in the node hierarchy.
Primitive
Geometry to be rendered with the given material.
Scene
The root nodes of a scene.
Skin
Joints and matrices defining a skin.
Texture
A texture and its sampler.

Enums§

Error
Represents a runtime error.
Semantic
Vertex attribute semantic name.

Functions§

importimport
Import glTF 2.0 from the file system.
import_buffersimport
Import buffer data referenced by a glTF document.
import_imagesimport
Import image data referenced by a glTF document.
import_sliceimport
Import glTF 2.0 from a slice.

Type Aliases§

Attribute
Vertex attribute data.
Result
Result type for convenience.