Releases: atteneder/glTFast
Releases · atteneder/glTFast
glTFast 6.9.1
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 ofAccessorData
classes/managed arrays. With this changeNativeArrays
are used for index buffers as well which reduces the amount of managed memory allocated.
- Flattened
- 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
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 Androidjar: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
madeGetHashCode
/Equals
forTextureBase
obsolete, so they've been removed.MeshPrimitiveComparer
is now used for clustering mesh primitives (instead ofGetHashCode
/Equals
onMeshPrimitive
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
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 version1.2.4
(from1.5.1
)com.unity.mathematics
to version1.2.6
(from1.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
glTFast 6.10.0
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 inExportSettings
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 byIGltfReadable.GetAccessorData
).GltfImportBase.GetMeshes
(replaced byGltfImportBase.Meshes
).
Fixed
- Preserve per-submesh bounding box.
GltfAsset
properly cleans up scene instance'sAnimation
component, which fixes repeated loading of animated glTFs.
glTFast 6.8.0
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
andTRIANGLE_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
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
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 useMaterialExport.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
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
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 typequaternion
.
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 typefloat4
(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
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 forUNITY_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.