Releases: atteneder/glTFast
Releases · atteneder/glTFast
glTFast 6.15.0
Added
- Loading KTX textures from data URIs.
- (Test) OpenGltfScene: Shortcut Control+X clears the previously loaded glTF. Useful for testing resource deallocation.
- (Test) Assets variants of SubMesh and Rainbow Cuboid for testing import of compressed/uncompressed multi-primitive meshes.
- (Test) glTFs with different kinds of image formats and sources.
- (Test) No Normal test asset.
Changed
- glTFast will return a success value of
trueeven if an image fails to load (which has not been consistent across the API before). This makes it easier to display assets despite of non-critical loading errors. Users who need stricter behavior can resort to monitoring for error logs (see the runtime import manual about logging or theloggerparameter of GltfImport constructor). - Primitives of a Draco compressed mesh will be decoded into in a single Unity mesh with multiple sub-meshes instead of multiple Unity meshes (thanks Kibsgaard for initiating this in #33).
- Draco for Unity minimum required version was raised to 5.4.0.
- (Performance) Texture data is not copied into managed memory before loading via Texture2D.LoadImage (applies for Unity 6.0 or newer).
- (Performance) Avoid copy of entire data URI string by using
ReadOnlySpaninstead sub-stringing. - (Performance) Base64-encoded data URIs are now decoded into NativeArray<byte> instead of
byte[], reducing GC allocations. - KTX for Unity minimum required version was raised to 3.6.0.
- Up-to-date versions of soft-dependencies KTX for Unity or Draco for Unity are enforced by raising a compiler error if an outdated version of either of those is installed.
Fixed
- Corrected test cases for
GltfTestModelsimporter tests. - Properly dispose GPU instancing buffers after Editor imports.
- Multi-primitive, skinned meshes import properly to Unity meshes with multiple sub-meshes.
- For Draco compressed meshes, it's now ensured that morph targets are retrieved to completion and resources are disposed properly.
- Sampler settings conflicts result in a proper warning message if they cannot be resolved by instantiating the Texture2D (can occur on design-time imports).
- Implicitly add normals to the vertex attribute layout if tangents are required (fixes #41).
- Properly release native resources bound by morph targets jobs in context of decoding Draco compressed meshes.
- Avoid pointless copying of glb-embedded textures if ImageConversion module is disabled anyways.
- Avoid download of textures if ImageConversion module is disabled anyways.
- Gracefully fail when buffer data URI has incorrect media-type field or undersized content length.
- Just like PNG or Jpeg, KTX textures are now loaded readable as well if it's required by the import settings, the platform or for applying multiple sampler settings.
- Properly abort if loading of a data URI encoded image failed.
- Don't crash when a buffer failed to load when loading from
string,bytearrays orStream. - Return value of GltfImport loading methods (Load, LoadFile, LoadGltfBinary, LoadGltfBinary and LoadStream) has been made consistent.
- (Documentation) various broken links fixed.
glTFast 6.14.1
Changed
GLTFast.Schema.Attributes.TryGetAllUVAccessorsonly returns the first 8, actually supported UV sets (and not the ninth anymore).
Fixed
- Avoid crash when loading meshes with more than 8 texture coordinate sets by properly limiting them.
glTFast 6.14.0
Added
- Graphics Tests.
- EditorConfig for keeping a consistent code-style.
- IBufferView.ByteStride.
Changed
- (CI) Consolidated multiple redundant packaging and vetting/API validation jobs.
- Changed internal buffer representation to custom native collection
ReadOnlyBuffer<byte>(instead of NativeArray<byte>.ReadOnly) This enables sub-array slicing, has in-Editor safety checks and prepares for decommissioning misuse of NativeSlice. - Bumped Burst dependency version to 1.8.24, which is the recommended version in 2021 xLTS.
- KTX for Unity minimum required version was raised to 3.5.0.
- Draco for Unity minimum required version was raised to 5.2.0.
Fixed
- (Export) Spotlight's inner cone angle is exported correctly on HDRP now.
- (Test) Disabled URP compatibility mode in URP presets as it's obsolete and unsupported from Unity 6.3 onward.
- (Import) Spotlight's inner cone angle is imported correctly on HDRP now.
Removed
- (CI) SonarQube scan job.
Deprecated
- GLTFast.ManagedNativeArray. It will be removed from public API in a future release. For internal development it's been replaced by
ReadOnlyBufferManagedArray<T>. - GLTFast.Export.ManagedNativeArray. It will get sealed or removed from public API in a future release.
- IGltfReadable.GetAccessorData. Along with IGltfReadable.GetAccessor it is going to be removed and replaced with an improved way to access accessors' data in a future release.
glTFast 6.13.1
Added
- (Test) Menu items that make switching test setups and render pipelines more accessible.
- (Test) JSON parsing performance tests.
- (Tools) Scripts for resetting test materials and settings.
Changed
- Refactored
JsonParsingTests. - Ensured loggers are used in all tests and examples.
Fixed
- (Import) Prevented
NullReferenceExceptionon transmissive materials with no transmissive texture. - (Import) Potential
NullReferenceExceptionwhen clearcoat is applied without a texture. - Incorrect version define for the Unity Collections package. glTFast now properly uses older versions (1.4.0) as well.
Removed
glTFast 6.13.0
Added
(Documentation) Use case for custom Playables animation implementation.It's been discovered that Playables don't work at runtime!
Fixed
glTFast 6.12.1
Fixed
- Incorrect using for Assert from NUnit.Framework to UnityEngine.Assertions
glTFast 6.12.0
Added
- Playables option for runtime animation imports.
- Support for accessors without a buffer view when importing animation clips.
Fixed
- (Import)
InvalidOperationExceptionon multi-primitive meshes with vertex colors thrown by the native container safety system (fixes #30). - (Export) Sub-meshes that have a base vertex other than zero are exported with correct indices now.
- Reliability issues related to lack of certain async calls in GltfImport and GltfWriter.
glTFast 6.11.0
Added
- GltfImport.Load overload that accept glTF data in form of NativeArray<byte>.ReadOnly.
- INativeDownload, which can be used to expand IDownload implementations to provide access to downloaded data directly without creating a copy in managed memory.
- Content-based glTF JSON vs. glTF-Binary detection (limited to Unity 2021 LTS or newer; resolves #193).
Changed
- (Performance) By default glTF and KTX data is not copied to managed memory implicitly when loading glTFs (true for Unity 2021 LTS or newer).
Deprecated
- GltfImport.LoadGltfBinary (in favor of the generic GltfImport.Load)
glTFast 6.10.3
Fixed
- (Import) Morph targets on multi-primitive meshes (where primitives reference identical vertex buffers; fixes #755).
glTFast 6.10.2
Added
- (Importer) Textures Readable checkbox in the imnporter inspector (Textures section).
- (Export) Error message when attempting to export with unsupported meshopt compression.
- (Tests) Runtime import performance tests.
- (Tests) Procedurally generated glTFs for testing purpose.
- (Tests) Editor export tests.
Changed
- (Tests) Reduced jobs performance test duration by lowering buffer sizes and switching to dynamic measurement counts.
- (Tests) Performance tests are not run, unless the
RUN_PERFORMANCE_TESTSscripting define is set.
Fixed
- Performance test compilation if Collections package >= 1.5.0 is not installed.
- Inconsistent profiler markers.
- (Export) Unity Editor not responding anymore after export glTF with non-readable meshes.
- (Export) Missing
inverseBindMatrices/bindPoseson skinned meshes when exporting with Draco compression. - (CI) Ensuring the development documentation and the
Toolscode is checked for code formatting as well. - Compilation for
ICodeLoggerimplementors by adding a default implementation forLog(works for Unity 2021 LTS and newer).