Skip to content

Releases: atteneder/glTFast

glTFast 6.15.0

25 Nov 11:46

Choose a tag to compare

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 true even 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 the logger parameter 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 ReadOnlySpan instead 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 GltfTestModels importer 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, byte arrays or Stream.
  • 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

02 Oct 19:06

Choose a tag to compare

Changed

  • GLTFast.Schema.Attributes.TryGetAllUVAccessors only 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

16 Sep 21:07

Choose a tag to compare

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

16 Sep 20:47

Choose a tag to compare

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 NullReferenceException on transmissive materials with no transmissive texture.
  • (Import) Potential NullReferenceException when 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

  • Playables option for runtime animation imports.
  • (Documentation) Use case for custom Playables animation implementation.

glTFast 6.13.0

27 Jun 23:56

Choose a tag to compare

Added

  • (Documentation) Use case for custom Playables animation implementation. It's been discovered that Playables don't work at runtime!

Fixed

  • Use XYZ-style normals in shaders even if DXT5nm-style is enabled.
  • (Import) When a node has morph target weights, they are applied properly (instead of the primitive's weights; fixes #531).
  • (Import) Specular-Glossiness materials with alpha mode MASK are not blended anymore in URP/HDRP (fixes #757).

glTFast 6.12.1

22 May 12:25

Choose a tag to compare

Fixed

  • Incorrect using for Assert from NUnit.Framework to UnityEngine.Assertions

glTFast 6.12.0

22 May 12:22

Choose a tag to compare

Added

  • Playables option for runtime animation imports.
  • Support for accessors without a buffer view when importing animation clips.

Fixed

  • (Import)InvalidOperationException on 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

22 May 12:10

Choose a tag to compare

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

22 May 12:00

Choose a tag to compare

Fixed

  • (Import) Morph targets on multi-primitive meshes (where primitives reference identical vertex buffers; fixes #755).

glTFast 6.10.2

22 May 11:54

Choose a tag to compare

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_TESTS scripting 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/bindPoses on skinned meshes when exporting with Draco compression.
  • (CI) Ensuring the development documentation and the Tools code is checked for code formatting as well.
  • Compilation for ICodeLogger implementors by adding a default implementation for Log (works for Unity 2021 LTS and newer).