eq_wld

Crates.ioeq_wld
lib.rseq_wld
version0.2.1
sourcesrc
created_at2021-01-03 00:15:26.85036
updated_at2021-01-19 03:01:36.184426
descriptionAn Everquest .wld file loader
homepage
repositoryhttps://github.com/cjab/eq_wld
max_upload_size
id330794
size71,884
Chad Jablonski (cjab)

documentation

README

Crates.io Docs.rs

eq_wld

An Everquest .wld file loader

This is a work in progress but already loads enough data from wld files to be able to do some basic rendering of models. The interface has been heavily influenced by the glTF crate. Parts of the wld file format are still not well understood and future understanding may influence the api of this crate.

Examples

let archive = eq_archive::read("gfaydark.s3d").unwrap();
let wld_data = archive.get("gfaydark.wld").unwrap();

let wld = eq_wld::load(&wld_data).unwrap();

// Iterate over meshes
for mesh in wld.meshes() {
    let name = mesh.name();
    let positions = mesh.positions();
    let normals = mesh.normals();
    let texture_coordinates = mesh.texture_coordinates();
    let indices = mesh.indices();
    let center = mesh.center();
    ...
}

// Iterate over materials
for material in wld.materials() {
    let name = material.name();
    let texture = material.base_color_texture();
    let texture_source = texture.source();
    ...
}

Acknowledgements

This project wouldn't have been possible without Windcatcher's WLD File Reference. Some documentation has been reproduced as comments within the parser module. Names of file fragments have been changed when another term from the glTF reference seemed like a better fit. The goal is that this will be usable in more modern engines and hopefully the names used are more familiar in that context.

Commit count: 268

cargo fmt