90% of ad revenue goes to creators. Go ad-free while supporting creators with Modrinth Plus. Subscribe today!
Filter loader...
Filter versions...
  • Port back to fabric
  • Update to 1.20.4

Bugfix release

  • Adds null guards around the deserialized json to make model loading more resilient.
  • Adds a barebones config file to control how aggressively errors get logged (defaults to reporting number of model errors collectively).

Reworks model loading almost entirely to deal with the new model-loader-api-v1 in fabric and the sudden no-deprecation removal of v0 from dev artifacts.

The new loader:

  • Grabs all its raw data ahead of time on a DataLoader worker thread - this is extremely fast, usually on the order of 300-400msec on a vanilla instance, but times are posted in the logs now.
  • Builds and prunes model trees in a preparation worker thread. Typically around 400-500msec for the whole kit, this time is also posted in the log. This is when memory usage peaks, but big data structures are nulled out ASAP for the garbage collector in case things get hairy.
  • Builds / provides / bakes the final model in yet another worker thread. The main speed benefit is here, that by the time the model is requested by Id, the data is already present and we don't need to touch ResourceLoader at all.

The speed boost in loading individual models comes at the expense of a moderate memory spike and some very particular setup steps. Please let me know if either of these gets out of hand.

This is a minor bugfix release.

  • Fixes "uvLock" property to be "uvlock" like vanilla

Worked out a lot of the initial kinks!

  • Fixed normals and shading on rotated shapes
  • Now honors uvLock
  • Invalid json in one model no longer destroys all models for everyone
  • Lots of little cleanups everywhere

1.0.0+1.20.1

by falkreon on Jun 18, 2023
Download

Initial release!

Late additions:

  • Will not load models without the following key-value-pair on the child model: "loader": "suspicious_shapes:gltf" - this is to let other model loaders know we're here, and to avoid clobbering their models.
  • Some previously-broken untextured models will now load. Faces with no textures specified will act like an "#all" up-reference, subject to change in future versions.

Known Issues

  • obj+mtl loading isn't in yet, but is planned for the future. Its loader key will be "suspicious_shapes:obj".
  • vertex colors aren't yet honored. This is also planned for the future.

Project members

falkreon

Owner

Details

Licensed MIT
Published 2 years ago
Updated a year ago