Releases: atteneder/glTFast
glTFast 3.3.0
Added
- Support for alpha modes
BLEND
andMASK
on unlit materials (thanks Sehyun av Kim for #181; fixes #180)
Fixed
- Ignore / don't show errors when newer DracoUnity versions with incompatible API are installed
glTFast 3.2.1
glTFast 3.2.0
Added
- Support for animations via Unity's legacy animation system (
Animation
component; #124)
Fixed
- Image format is properly detected from URIs with HTTP queries (thanks JonathanB-Vobling for #160; fixes #158)
- Unlit shaders are now correctly assigned for double-sided variants (thanks @hybridherbst for #163)
- Sample code for custom defer agent is now thread safe (fixes #161)
- Meshes with two UV sets and vertex colors now work (fixes #162)
glTFast 3.1.0
Note: If you used
GLTFast.LoadGltfBinary
before you have to adopt your code. See the documentation for how to use it now.
Added
- Unlit alpha blended ShaderGraph variants (thanks @hybridherbst for #144)
- Support for unsigned byte joint indices
Changed
- Accelerated loading meshes by obtaining and setting bounds from accessors min/max values instead of recalculating them
- Improved log message when DracoUnity/KtxUnity packages are missing
- Restored/simplified
GLTFast.LoadGltfBinary
, allowing users to load glTF binary files from byte arrays directly (also added documentation; fixes #148)
Fixed
- Texture offset/tiling values don't get lost when switching shaders (thanks @hybridherbst for #140)
- Correct vertex colors for RGB/unsigned short, RGBA/unsigned short and RGBA/unsigned byte. (thanks @camogram for #139)
- Error when trying to set texture offset/scale but material doesn't have _MainTex property (thanks @hybridherbst for #142)
- Crash when trying to combine meshes created by glTFast by setting proper submesh vertex count (fixes #100)
glTFast 3.0.2
Changed
- Had to bring back
GltfAsset.isDone
for render tests
Fixed
- WebGL loading by not using unsupported
System.Threading.Task.Run
(fixes #131) - Escaped, relative buffer/texture URIs now work on local file system consistently
- Rendertests work again
glTFast 3.0.1
Hot Fix: glTF files with material variants don't crash anymore.
Added
- Error message when a UV set other than the first one is used (is unsupported; see issue #34)
- Unit test for loading all models once (good for quick checks in comparison to performance tests, which take very long)
Fixed
- No more exception on models with
KHR_materials_variants
glTF extension (not supported yet) - Compiler errors in Tests assembly due to inconsistent/incomplete class names/namespaces changes
glTFast 3.0.0
This is a new major release, since the API chanced due to switching from coroutines to async
.
However, the performance increases resulting from process optimizations that followed alone would justify a major release. Have a look:
The performance benchmark introduced in 2.6.0 allows comparing changes. The tests consisted of loading every glTF from the glTF-Sample-Model collection, which has a wide range of models (no KTX though).
On average models load ~35% faster.
If you look at individual tests (sorted from slowest to fastest in 2.6.0), you see that the majority got faster, some didn't change much and only a few regressed. The worst case got 25% slower and the best got 82% faster.
This regression is mostly because of a much more stable, smooth frame rate. Look at how the average maximum frame time decreased considerably while the average minimum and average(across tests) average(across frames within a test) increased. This means that that work is spread more evenly across frames, sometimes increasing the overall loading time slightly. The goal is maximum staying below 16.6 ms (for 60 fps), so there's still some work to do.
But glTFast can also load as fast as possible, regardless of frame times. In this case the loading times also improved:
Changed
- Converted API and internals to async/await. This is more convenient in some cases and eases future optimizations.
- Performance improvements
- Non-trivial JSONs are parsed in a thread now
- More consistent frame rates due to task duration estimation in various places along the loading code
- Embed base 64 buffers are decoded in a thread now
- Less memory usage (and likely faster) du to Jpeg and PNG textures being loaded non-readable (if possible)
- Moved
SampleSet
related code into dedicated Assembly, so it can be used in unit tests as well client applications (but doesn't have to).
Fixed
- Build size optimization: Physics package is not required anymore (
GltfBoundsAsset
won't work as expected in that case) - Build size optimization: Removed usage of
System.Linq
- Removed compiler warnings (in case KtxUnity is missing)
- KtxUnity required version >=1.0.0
- DracoUnity required version >=1.4.0
glTFast 3.0.0-preview
Note: this is a preview release. Testing and feedback is highly appreciated.
This is a new major release, since the API chanced due to switching from coroutines to async
.
However, the performance increases resulting from process optimizations that followed alone would justify a major release. Have a look:
The performance benchmark introduced in 2.6.0 allows comparing changes. The tests consisted of loading every glTF from the glTF-Sample-Model collection, which has a wide range of models (no KTX though).
On average models load ~35% faster.
If you look at individual tests (sorted from slowest to fastest in 2.6.0), you see that the majority got faster, some didn't change much and only a few regressed. The worst case got 25% slower and the best got 82% faster.
This regression is mostly because of a much more stable, smooth frame rate. Look at how the average maximum frame time decreased considerably while the average minimum and average(across tests) average(across frames within a test) increased. This means that that work is spread more evenly across frames, sometimes increasing the overall loading time slightly. The goal is maximum staying below 16.6 ms (for 60 fps), so there's still some work to do.
But glTFast can also load as fast as possible, regardless of frame times. In this case the loading times also improved:
Changed
- Converted API and internals to async/await. This is more convenient in some cases and eases future optimizations.
- Performance improvements
- Non-trivial JSONs are parsed in a thread now
- More consistent frame rates due to task duration estimation in various places along the loading code
- Embed base 64 buffers are decoded in a thread now
- Less memory usage (and likely faster) du to Jpeg and PNG textures being loaded non-readable (if possible)
glTFast 2.6.0
Fixed testing and added performance testing to have a base to compare upcoming version 3.0.0 against
Added
- Support for performance benchmark package
Fixed
- Unit tests are working in builds again (not just in the Editor)
glTFast 2.5.1
Changed
- Renamed glTF shader graph properties to match Unity Lit/BuiltIn Standard shader properties. Switching shaders preserves more attributes this way.
Fixed
- Consistent casing in shader graph names
- Apply material's occlusion strength properly
- Removed artifacts on double sided opaque materials
- Properly clean up volatile download dictionaries
- Build compilation when targeting URP/HDRP