Skip to content

Releases: atteneder/glTFast

glTFast 6.9.1

30 Jan 11:10
Compare
Choose a tag to compare

Added

  • (Test) OpenGltfScene with open glTF file dialog for convenient testing.
  • (Test) Tests for C# jobs that calculate or re-order indices.
  • Third party notices.

Changed

  • Node name is assigned earlier during instantiation, enabling easier node identification by name (partially fixes #724).
  • (Test) Updated test project dependencies.
  • (CI) Migrated code coverage.
  • Code refactoring
    • Flattened GltfImportBase.Prepare by extracting many large code blocks into dedicated methods.
    • Improved class/field naming. It's now less deceptive and more uniform.
    • Using NativeArray directly/only instead of AccessorData classes/managed arrays. With this change NativeArrays are used for index buffers as well which reduces the amount of managed memory allocated.
  • Facilitated use of safer NativeCollections in C# jobs that calculate or re-order indices instead of unsafe / pointers.

Fixed

  • Made sure that mesh primitives of different drawmode (topology) are not mixed up.

glTFast 6.9.0

30 Jan 09:36
Compare
Choose a tag to compare

Important

Starting with this release, glTFast (the original package hosted on OpenUPM) is a sync-back from Unity's fork. The OpenUPM variant does not contain all tools, tests and projects required for effective development.

Added

  • Package coherence tests that make sure package versions match across exported generator string and documentation.

Changed

  • Moved code examples that are referenced by the documentation into a different folder (DocExamples).
  • Renamed code example assembly/namespace to GLTFast.Documentation.Examples for consistency.
  • Support for KTX (Khronos Texture) is now provided by [KTX for Unity (com.unity.cloud.ktx)][KtxForUnity], which is a fork of and replaces [KtxUnity (com.atteneder.ktx)][KtxUnity].

Fixed

  • (Test) LoadTests on Android now succeed by using UnityWebRequest to retrieve data from the compressed JAR file.
  • Loading glTFs from StreamingAssets with relative URIs containing Unicode characters on Android. UriHelper.GetBaseUri and UriHelper.GetUriString handle Android jar:file:// schema URIs with unicode characters correctly (fixes #667).
  • XML documentation fixes
  • Removed unnecessary "type" property from package.json.
  • Removed warning about obsolete GraphicsDeviceType.OpenGLES2 in Unity 2023.1 or newer.
  • (Export) Missing texture transform if texture on glTFast material was scaled vertically only.
  • Improved reliability by adding null checks and imprecision-aware floating-point comparisons in various places.
  • Using immutable fields only in hash code calculation for ImageExport classes.
  • Refactored GetHashCode implementations referencing mutable fields to avoid potential unexpected behavior.
    • TextureComparer.Equals made GetHashCode/Equals for TextureBase obsolete, so they've been removed.
    • MeshPrimitiveComparer is now used for clustering mesh primitives (instead of GetHashCode/Equals on MeshPrimitive and sub-types).
  • Set minimum required Unity version to 2020.3.48f1 in the documentation.
  • (Export) Avoid potential loss of data by allocating output streams persistently.
  • (Test) Render export test inconclusive if the result has not been validated.
  • (Test) More explicit error message by throwing innermost exception while preserving the stack trace during async tests.
  • (Documentation) Various clarifications, improvements and fixes, based on user feedback.

Removed

  • Outdated and unused code coverage badge.
  • Tests (applies to OpenUPM branch only!)

glTFast 6.10.1

30 Jan 12:07
Compare
Choose a tag to compare

Added

  • Test for ConvertBoneWeightsUInt8ToFloatInterleavedJob
  • Test for ConvertBoneWeightsUInt16ToFloatInterleavedJob
  • BoundsTests which certifies correct mesh bounds.

Changed

  • Downgraded package dependencies to version bundled with Editor.
    • com.unity.collections to version 1.2.4 (from 1.5.1)
    • com.unity.mathematics to version 1.2.6 (from 1.3.1)
  • When a position accessor lacks min/max properties, the corresponding error message is communicated via the ICodeLogger instead of a plain console log.

Fixed

  • Build error when used along with packages that depend on com.unity.collections versions older than 1.5 (e.g. Polyspatial 1.x; fixes #730).
  • Invalid mesh bounds on meshes with one submesh (fixes #743).

glTFast 6.10.0

30 Jan 11:54
Compare
Choose a tag to compare

Added

  • Extended access to meshes.
    • IGltfReadable.GetSourceMesh returns source (de-serialized glTF) mesh.
    • GltfImportBase.Meshes to retrieve all imported meshes.
    • GltfImportBase.GetMeshCount returns the number of imported meshes per glTF mesh.
    • GltfImportBase.GetMeshes to iterate the imported meshes of a single glTF mesh.
    • GltfImportBase.GetMesh to access a single imported meshes.
  • Test asset SubMesh.
  • (CI) Automatically generated CI jobs (via Wrench/RecipeEngine; required for PackageWorks).
  • (CI) Renovate action to auto-update dependencies in CI jobs.
  • (CI) Renovate validation action.
  • JpgQuality option in ExportSettings for finer control of jpg image exports.
  • Project versions to test projects.

Changed

  • Mesh primitives of equal vertex buffer layout will result in a single Unity mesh with multiple sub-meshes instead of multiple Unity meshes (fixes #153).

Deprecated

  • IGltfReadable.GetAccessor (replaced by IGltfReadable.GetAccessorData).
  • GltfImportBase.GetMeshes (replaced by GltfImportBase.Meshes).

Fixed

  • Preserve per-submesh bounding box.
  • GltfAsset properly cleans up scene instance's Animation component, which fixes repeated loading of animated glTFs.

glTFast 6.8.0

09 Sep 08:04
Compare
Choose a tag to compare

Added

  • (Import) Setting to create textures readable. This allows users to access resulting textures from their scripts.
  • (Export) Non-readable meshes can be exported as well now.
  • (Export) Added support for exporting meshes with vertex compression enabled (effectively converting 16-bit float positions/normals/tangents/texture coordinates to 32-bit floats).
  • (Export) Buffer view targets are set properly now.
  • (Import) Support for mesh primitive modes TRIANGLE_STRIP and TRIANGLE_FAN (thanks @Hexer611 for #22)

Fixed

  • (Export) Writing to files on the web via IndexedDB now works (fixes #625)
  • (Export) test results are validated again.
  • (Export) Removed expendable JSON content when exporting unlit materials without color or texture applied.
  • Primitve mode LINE_LOOP works as expected (thanks @Hexer611 for #22).
  • (Test) Fail export test if glTF JSON contains unexpected or misses expected properties.
  • Increased resilience against invalid animation data.
  • Broken link in CONTRIBUTING.md (thanks @Hexer611 for #22).
  • Loading glTFs with unknown texture extensions (e.g. WebP, EXT_texture_webp) now works (fixes #705).

glTFast 6.7.1

21 Aug 10:23
Compare
Choose a tag to compare

Fixed

  • (Export) Cases of corrupt glTFs when not all vertex attributes of a mesh were exported.
  • Alpha blending via baseColorTexture's alpha value is now in correct color space, less opaque and as a result consistent with other glTF viewers (affected URP and built-in render pipeline projects in linear color space; fixes #700).

glTFast 6.7.0

28 Jun 22:37
Compare
Choose a tag to compare

Added

  • (Import) Support for materials variants extension.
  • Serialization support for material extensions IOR, Sheen and Specular.
  • (Import) Ability to load a glTF from a generic Stream (GltfImport.LoadStream; thanks @sandr01d for #10).

Changed

  • (Import) Prefabs imported from glTF assets (at design-time) don't have the glTF logo icon assigned to them anymore. This makes it more consistent with other file types (like FBX; fixes #557).

Deprecated

  • MetaMaterialExport. Always use MaterialExport.GetDefaultMaterialExport to get the correct material export.

Fixed

  • (Export) glTFast shader based materials and textures are exported correctly when using the default render pipeline.
  • Added missing entries to the API documentation.
  • (Export) Base colors are now in correct, linear color space.
  • Alpha mode blend now works as expected in HDRP 11 and newer as well (fixes #699).
  • (Export) Fixed mesh min/max when using Draco compression.

glTFast 6.6.0

25 Jun 12:46
Compare
Choose a tag to compare

Added

  • Serialization/de-serialization (only) support for the KHR_materials_variants extension.

Fixed

  • Compatible with Entities 1.2.0.
  • Black materials when using low standard shader quality with the built-in render pipeline (thanks @Kushulain for #595).
  • (UI) Quantity of report items is not shown in importer inspector anymore. Report items cannot be removed anymore (thanks @krisrok for #630).

glTFast 6.5.0

27 May 10:22
Compare
Choose a tag to compare

Added

  • (Export) Support for exporting glTFast shader based materials. This reduces data loss on import-export round trips considerably.
  • (Export) Support for setting a custom scene origin via transform matrix.
  • Dependency on Unity Collections package.
  • Added Apple Privacy Manifest documentation.
  • Export sample code.
  • XML documentation comments.
  • float4x4.Decompose overload that outputs rotation as type quaternion.

Changed

  • Faster buffer conversion jobs due to batching via IJobParallelForBatch.
  • (Export) Material exporter implementation is chosen based on used shader by default.
  • (Export) Vertex attributes are discarded if they are not used/referenced.
  • (Export) Root level nodes' positions are based on their GameObject's world positions (and not their local position anymore).

Fixed

  • (Export) Discrepancy in color due to export of unused vertex colors.
  • Incorrect copyright text in some SPDX headers.

Deprecated

  • float4x4.Decompose overload that outputs rotation as type float4 (quaternion values).

Removed

  • Soft dependency on deprecated Unity Jobs package.
  • Legacy code for Unity versions older than the minimum required 2020 LTS.

glTFast 6.4.0

22 Apr 15:06
Compare
Choose a tag to compare

Added

  • Tests for all GltfImport.Load overloads.
  • Tests for all import Burst jobs.
  • ICodeLogger.Log for dynamic LogType usage.

Changed

  • Emission sub graph uses shader define SHADEROPTIONS_PRE_EXPOSITION for HDRP usage detection (replacing a custom function node that checked for UNITY_HEADER_HD_INCLUDED).
  • BaseColor sub graph uses built-in shader define UNITY_COLORSPACE_GAMMA for project color space detection (replacing a custom function node).

Fixed

  • Shader sub graphs BaseColor and Emission are now compatible with PolySpatial visionOS.
  • On Apple visionOS, textures are always created readable, so that PolySpatial visionOS is able to convert them.
  • Draco compressed tangents import tangents correctly now.
  • Removed invalid attempt to calculate normals or tangents on point or line meshes.
  • Consistent log message when a glTF extension cannot be supported due to a missing Unity package depenency (e.g. KTX for Unity).
    • All missing extensions are logged (not just the first one).
    • There's now a single message per missing package.
    • Depending on whether that extension is required the message's type is warning or error.
    • Added explicit message when meshoptimizer decompression for Unity is missing.