public final class GltfLoader
- Object
- GltfLoader
Loads a Mesh from a glTF 2.0 model so applications can render real authored
geometry rather than only the built in Primitives. Both the binary
container (.glb) and the JSON form (.gltf) are supported; for the JSON
form, buffers must be embedded as data: URIs (external .bin side files are
not fetched). The first triangle primitive of the first mesh is read.
The loader produces the engine’s standard
VertexFormat.POSITION_NORMAL_TEXCOORD layout so the result drops straight
into any built in Material:
POSITION(required) is read as the vertex position.NORMALis read when present; otherwise flat per-triangle normals are computed so lit materials still shade correctly.TEXCOORD_0is read when present; otherwise zero texture coordinates are written.
Materials, textures, skinning and animation in the glTF are ignored – this
is a geometry loader. Apply a Material (and a Texture loaded via the
device) to the returned mesh as usual.
Example:
byte[] glb = ...; // bytes of a .glb model
Mesh mesh = GltfLoader.load(device, glb);
Material material = new Material(Material.Type.PHONG).setTexture(texture);
device.draw(mesh, material, modelMatrix);
Nested types
class GltfLoader.GltfModel | A loaded glTF model: its geometry plus the base-color texture extracted from the model’s first material, if any. |
class GltfLoader.GltfImageModel | A loaded glTF model in device-free form: its geometry plus the decoded base-color image extracted from the model’s first material, if any. |
Methods
Inherited methods
Method details
load
public static Mesh load(GraphicsDevice device, InputStream in)
throws IOExceptionReads all bytes from the stream and loads the model. The stream is closed.
Parameters
deviceGraphicsDevice- the device that allocates the mesh buffers
inInputStream- a stream over
.glbor.gltfbytes
Returns
the loaded mesh
Throws
load
public static Mesh load(GraphicsDevice device, byte[] data)Loads a model from in-memory
.glb or .gltf bytes.Parameters
deviceGraphicsDevice- the device that allocates the mesh buffers
databyte[]- the raw model bytes (binary
.glbor JSON.gltf)
Returns
the loaded mesh
load
public static Mesh load(byte[] data)Loads a model from in-memory
.glb or .gltf bytes without a
GraphicsDevice, allocating the buffers directly. Behaves exactly like
load(GraphicsDevice, byte[]); useful for parsing geometry off the
render thread or handing meshes to non GPU consumers such as the AR
content pipeline.Parameters
databyte[]- the raw model bytes (binary
.glbor JSON.gltf)
Returns
the loaded mesh
load
public static Mesh load(InputStream in)
throws IOExceptionReads all bytes from the stream and loads the model without a
GraphicsDevice. The stream is closed.Parameters
inInputStream- a stream over
.glbor.gltfbytes
Returns
the loaded mesh
Throws
loadModel
public static GltfLoader.GltfModel loadModel(GraphicsDevice device, byte[] data)Loads a model together with its base-color texture from in-memory
.glb
or .gltf bytes. Use this (rather than load) when the model carries its
own texture and you want it applied automatically.Parameters
deviceGraphicsDevice- the device that allocates the mesh buffers and texture
databyte[]- the raw model bytes
Returns
the loaded mesh plus its base-color texture (null texture if the model
has none)
loadModel
public static GltfLoader.GltfModel loadModel(GraphicsDevice device, InputStream in)
throws IOExceptionReads all bytes from the stream and loads the model with its base-color
texture. The stream is closed.
Throws
loadImageModel
public static GltfLoader.GltfImageModel loadImageModel(byte[] data)Loads a model together with its base-color image from in-memory
.glb
or .gltf bytes without a GraphicsDevice. The image is decoded but not
uploaded to the GPU, so this works off the render thread and on non GPU
consumers such as the AR content pipeline.Parameters
databyte[]- the raw model bytes
Returns
the loaded mesh plus its decoded base-color image (null image if the
model has none)
loadImageModel
public static GltfLoader.GltfImageModel loadImageModel(InputStream in)
throws IOExceptionReads all bytes from the stream and loads the model with its base-color
image without a
GraphicsDevice. The stream is closed.