Releases: KhronosGroup/UnityGLTF
Releases Β· KhronosGroup/UnityGLTF
release/2.18.8
[2.18.8] - 2026-02-05
- add: deduplication statistic (Importer)
- add: meshOpt 0.2 support
- add: validation for node translation, rotation and scale on import: in case of invalid values (NaN, infinte), using zeros as fallback.
- changed: mesh deduplication speedup with Jobs
- fix: reduced memory footprint on importing
[2.18.7] - 2026-01-12
- add: Interactivity: add slerp nodes
- change: Interactivity: replaced custom solution for child and parent methods to object model pointers
- fix: obsolete warning for 'GameObject.GetScene' in U6.3+
- fix: ShaderPassStripping to use GetOrCreate GltfSettings (in case setting asset not exists yet)
- fix: Interactivity: changed matrix serialization to coloumn major order
- fix: material/texture extraction with leading spaces in name
[2.18.6] - 2025-11-25
- add: Interactivity VS export: added support for
AnimationClip.length - fix: Interactivity VS export: added missing space conversion to
RaycastResult.worldPosition - fix:
WebRequestDataLoaderchanged URI handling for local files
release/2.18.5
release/2.18.4
release/2.17.0
What's Changed
- Marked BaseColor and BaseTexture as main properties to get rid of the error while using regular Material.color property. by @XtroTheArctic in #864
- Made Importer create Material with Auto Queue Control. The user can override it if he wants. by @XtroTheArctic in #866
- Added the bone names which Unity's FBX importer can detect to the dictionary. by @XtroTheArctic in #862
- Improve KHR_interactivity support by @pfcDorn
- Improve Sprite mesh exporter by @hybridherbst
Full Changelog:
[2.17.0] - 2025-06-12
- add: Quaternion nodes for KHR_interactivity visual scripting export
- add: Importing PNG files without alpha channel in the Editor now sets them as RGB instead of RGBA, leading to better compression and less memory usage (#858)
- add: Add more bone names to Humanoid import for better compatibility with Unity's FBX importer (#862)
- change: Implemented specification changes for KHR_interactivity from May 2025
- change: Enabled
applyRootMotionfor humanoid animator to make it consistent with FBX importer (#868) - fix: Sprite Mesh export threw an exception in non-Simple sprite draw mode. Use Unity 2023.2+ for other sprite modes than "Simple".
- fix: Audio plugin did not correctly check for existance of built-in Unity modules
- fix: Runtime errors with serialization of editor-only components in some newer Unity versions
- fix: Improved performance for extracting all materials from an editor-imported glTF file (#855)
- fix: Marked baseColor and baseColorTexture as main color and main map so they work with Unity's
Material.colorandMaterial.mainTextureproperties (#864) - fix: Use correct
Autoqueue value for imported materials (#866)
[2.16.1] - 2025-05-20
- add: Visual Scripting variables work across multiple scenes now
- add: partial
KHR_materials_anisotropyroundtrip support. There is no visual support for it yet, but data is imported and exported correctly fromPBRGraph. - add: experimental
KHR_audio_emitter support. Please note that this extension is not yet ratified and implementation details may change. The plugin is disabled by default, enable it inUnityGLTFSettings. - add: Sprite mesh export support through "Bake to Mesh" plugin.
- add:
KHR_interactivityplugin now has a button to install thecom.unity.visualscriptingpackage - add: visual badges for non-ratified and experimental extension plugins
- change: the Export API for
KHR_interactivityis still undergoing heavy changes while the extension is being finalized. - change: removed the
KHR_audiosample since it's now shipping with this package - fix: generated shader converter code doesn't use obsolete API anymore
- fix: various fixes to visual scripting export support through
KHR_interactivity - fix: fixed incorrect namespace that led to compilation errors in some specific cases
- fix: wrong asset import check for textures, which led to non-compressed textures at runtime (Fixes #846)
release/2.16.0-pre.3
What's Changed
- Add transform modes for single-object and batch export by @hybridherbst in #831
- Basic HDRP export support by @krisrok in #826
- Fix mesh deduplication for meshes with different materials by @hybridherbst in #842
- Improve KHR_interactivity support and Export API by @pfcDorn
New Contributors
Full Changelog:
[2.16.0-pre.3] - 2025-04-15
- fix: workaround for URP error in Unity 6+ with new Render Graph API (uncatchable and incorrect exception during on-demand rendering)
- fix: issue when deduplicating shared meshes with different materials (#836)
- change: numerous KHR_interactivity API changes to make runtime usage and extensibility easier
- change: remove KHR_audio sample from package samples. If you're interested in KHR_audio_emitter support, please follow the progress of adding it as properly supported extension here: #835.
[2.16.0-pre.2] - 2025-04-03
- fix: regression when batch exporting material-only files
- fix nullreference when loading a materials-only file with
GLTFSceneImporterorGLTFComponent - fix GLTFComponent failing when the loaded file is a web URL but "Load from streaming assets" is on (the default). If the URI starts with
http://orhttps://, we now automatically load from the web. - fix: GPU instancing can't be enabled on Shader Graph-based materials when the built-in render pipeline is active. Unity does not support GPU instancing with Shader Graph.
[2.16.0-pre.1] - 2025-04-03
- add: Interactivity Export API now has
AddLogmethod that takes log settings into account, so app-specific logging can be used - add: Transform Modes for batch exporting from the UnityGLTF menu (
Auto,Local,World,Reset), with options covering various use cases - add: editor setting for export type (GLB vs. glTF) from the UnityGLTF menu
- add: improvements to HDRP material export support (#826)
- change: API cleanup for Interactivity node export
- change: removed legacy
GLTFSettings.requireExtensionsoption that wasn't really used
release/2.16.0-pre
What's Changed
- Fix: material blendmode setup by @pfcDorn in #825
- Improve export menu with multi-object export, multi-scene export, more control by @hybridherbst in #828
- Add KHR_interactivity by @hybridherbst @pfcDorn in #824
Full Changelog:
[2.16.0-pre] - 2025-04-02
- add: Editor export support for
KHR_interactivity,KHR_node_hoverabilityandKHR_node_selectability.Support for these extensions is based on the draft specification as of Mar 10 2024. Please note that these extensions are not yet ratified and implementation details may change. - add: convert
Unity Visual ScriptingUnits toKHR_interactivitynodes on export, including virtual properties from theglTF Object Model. - add: visual hints for which nodes can be exported from Visual Scripting to
KHR_interactivity - add:
KHR_interactivityexport plugin.- This plugin is disabled by default. Enable it in
UnityGLTFSettings, add a Script Machine component to an object, and author the logic there. - Currently, you can find some samples for interactive scenes here: https://github.com/needle-tools/UnityGLTF-Interactivity-Sample-Assets
- This plugin is disabled by default. Enable it in
- add: batch export mode is now an option when exporting via the UnityGLTF menu items. This allows exporting many scene objects, prefabs, or scenes as individual or merged files.
- fix: Remove duplicate
GLTFLoadExceptiontype - fix: added
AlphaToMaskandBlendModePreserveSpecularfloat values to material setup and material mappers. This works around a Unity issue where some runtime-created materials have incorrect keywords until refresh of their keywords. - fix: Removed synchronous wait in GLB json loading causing spikes
- change: GLTFComponent: changed
loadOnStartfrom private to public - fix: added
TextMeshPro.ForceMeshUpdateto TMP exporter plugin to ensure exports of scenes immediately after loading have correct mesh data for 3D text - fix: selecting multiple scenes and exporting via the menu now exports each selected scene as individual file. Previously, it would export the first selected scene only.
- fix: exporting meshes with zero materials was throwing an exception, now correctly does not export the mesh
release/2.15.0
Pull Requests
- Added detailed Informations Generator Json Field by @pfcDorn in #811
- SubMesh Attributes by @pfcDorn in #812
- Interactivity preparations by @pfcDorn in #822
- Fixed: removed internal Unity Method TextureImporter.GetFixedPlatformName from Unity 6000 by @pfcDorn in #821
- Various changes and improvements by @hybridherbst
- Export plugin hook for
ShouldNodeExportby @andybak in #767
Full Changelog: release/2.14.1...release/2.15.0
[2.15.0] - 2025-03-06
- fix: assets with absolute URLs or paths containing URL encoded information now load correctly
- fix: improve shader dependencies in editor importer to work around some edge cases at first library import
- fix: check all sub-meshes of used attributes instead of only the first one when creating attribute arrays
- fix: ensure progress callback is triggered before
onLoadCompletein scene loader - fix: prevent null reference exception when plugin is not loaded/defined
- fix: work around API change in Unity 6000.0.38f1 that caused compilation error
- fix: clamped
Sheen Roughnessto 0..1 range in PBRGraph shader - fix:
RoughRefractionFeaturenow supports Unity 6 and new Render Graph API - fix: set volume and transmission materials to
AlphaMode.BLENDon VisionOS to ensure proper rendering - fix: update render pipeline-related methods for Unity 6000.0+
- change: mark package as compatible with Unity 2021.3+. Legacy support for 2020 and earlier will be removed in future updates.
- change: renamed
GLTFComponentsettingAppendStreamingAssetstoLoadFromStreamingAssetsFolder - add: MaterialX branches to
UnityGLTF/PBRGraphshader with conditional compilation for VisionOS - add:
MaterialXColorandMaterialXFloatshadersubgraphs for platform-specific material settings - add: new runtime texture compression option (
None,LowQuality,HighQuality) to improve runtime memory usage - add: exposed import settings to keep CPU copy of mesh/textures to
GLTFComponent - add: include UnityGLTF package version, Unity version and current render pipeline in
assets.extrason export - add: better code snippets for the readme
- add: export plugin hook for
ShouldNodeExport(#767) - add:
KHR_node_visibilityimport and export support, currently disabled by default. Enable inUnityGLTFSettings. This is a preparative step forKHR_interactivity, which will be added in a later release. Please note that this extension is not yet ratified and implementation details may change. - add: schema and serialization support for
KHR_node_hoverabilityandKHR_node_selectability. Please note that these extensions are not yet ratified and implementation details may change.
release/2.14.1
Pull Requests
- Add bugreport issue template by @marwie in #779
- Added missing AnimationCacheData to RefCountedCacheData Script by @pfcDorn in #769
- Made ShaderOverride public on GLTFComponent by @pfcDorn in #770
- added gltf Asset informations to Importer Inspector by @pfcDorn in #774
- KHR_materials_sheen support by @pfcDorn in #780
- Load from stream enhancement by @pfcDorn in #781
- Fix #782 - Canvas export on webGl build by @pfcDorn in #785
- Enhancement: premade shader variant collections for runtime imports by @pfcDorn in #783
- Feature: Shader Pass Stripping by @pfcDorn in #784
- Fixes: Canvas and TMP Export, GltfPlugin enabled serialization by @pfcDorn in #786
New Contributors
Full Changelog: release/2.13.0...release/2.14.1
[2.14.1] - 2024-10-28
- fix: compiler error with
ParticleSystemBakeMeshOptionsbefore 2022.3.11f1 since that's where the API was introduced - fix: prevent incorrect warning when meshes don't have UV1/UV2 attributes
- fix: don't call export multiple times from context menu for multi-selections
- fix: remove unused property from
GLTFComponent
[2.14.0] - 2024-10-06
- fix: potential NullReferenceExceptions when importing material-only, mesh-only or texture-only glTF files
- fix: check for missing primitives on mesh import instead of throwing
- fix: GLTFSceneImporter reference counting properly tracks Animation data now
- fix: incorrect callback subscription in glTF Material editing
- fix: CanvasExport plugin was not working correctly in WebGL builds
- fix: rare case of incorrect texture export with invalid texture content hash (thanks @Vaso64)
- fix: ensure materials created with Create > UnityGLTF > Material use UnityGLTF as importer instead of glTFast
- fix: Canvas export plugin was not correctly updating the canvas mesh in builds
- fix: Particle Bake export plugin was not working correctly in 2022.3
- fix: Import/Export plugin enabled/disabled state was not correctly serialized in some cases
- fix: TMPro export plugin uses UnityGLTF shaders for export now instead of adding another dependency
- fix: GLTFSceneImporter can be called without external data loader, but will warn that external data will not be loaded. Previously, a data loader had to be added even when it was not needed.
- change: log warning when exporting UV0 and UV1 with more than 2 components, as glTF only supports 2-component UVs
- change: simplify sampler usage in PBRGraph where possible to prevent warnings in later Unity versions
- change: simplify PBRGraph variants to reduce shader variant count. This removes a separate option to use vertex color.
- change: material-only files are now imported as MaterialLibrary assets with Material sub-assets, even when only a single material is present
- add: log more meaningful exception messages on import
- add: sheen support for PBRGraph
- add: PBRGraph UI properly shows sheen and dispersion properties
- add: allow flipping humanoid root bone on import to support more avatar types (like Meta Avatars)
- add: new "Info" tab in GLTFImporter for asset information (generator, copyright, etc.) about the imported file
- add: ShaderOverride is now public on GLTFComponent
- add: new GLTFSceneImporter constructor overload for easier loading of files from streams
- add: meshes and textures can now be deduplicated on import, since many exporters don't properly instance them
- add: UV2 is exported as 2-, 3-, or 4-component texture coordinate. 3- and 4-component texture coordinates are not in the core glTF spec, but widely supported by implementations.
- add: complete PBRGraph and UnlitGraph Shader Variant Collections for easier runtime import and export of glTF files
- add: options for shader pass stripping in builds to reduce variant count and compilation times
- add: ability to export a set of materials as material-only glTF or glb file
- add: option to add new materials to glTF Material Libraries (material-only files)
UnityGLTF 2.13.0
What's Changed
- Fixed texture offset with flipped textures like ktx by @pfcDorn in #711
- Fixed wrong exported blendshape normals and tangents when using sparse accessors by @pfcDorn in #712
- Add initial support for MaterialX conversion through PolySpatial by @hybridherbst in #725
- Camera import support by @pfcDorn in #706
- Fixed #726 - Tangent issues with Draco compression by @pfcDorn in #727
- Fixed shared SkinnedMesh on export by @pfcDorn in #729
- Unity 2023.3 fixes by @pfcDorn in #730
- Avoid unnecessary texture duplication on import - fixed #713 by @pfcDorn in #731
- Animation pointer import support by @pfcDorn in #724
- Feature: Material Dispersion [Requires the Animation Pointer Import Branch] by @pfcDorn in #728
- Fix/avoid strip roots when animated by @pfcDorn in #734
- Removed error logs for Texture and Node count on import by @pfcDorn in #738
- fix 737 - Wrong image file names on export by @pfcDorn in #739
- fixes #740 - Added missing ExtTransform support for some textures in AnimationPointer by @pfcDorn in #753
- Flipped CameraOpqaueTexture fix on WebGl/OpenGl/... by @pfcDorn in #755
- More texture import options and missing ktx mipmap parameter by @pfcDorn in #756
- Bonemapping fix for already correct bone names on import by @pfcDorn in #758
Full Changelog: release/2.10.0-rc...release/2.13.0
UnityGLTF 2.10.0-rc
This release fixes a number of stale issues in the repository, improves performance for scenes with many nodes, and contains various correctness improvements for topology, quantization, mesh accessors, exception handling. Thanks a lot to @pfcDorn for pushing many areas forward!
Notable new features:
- Support for
EXT_mesh_gpu_instancingon import β instances are turned into individual GameObjects with GPU Instancing enabled for their materials. - There is now a blend shape frame weight import option that helps with retargeting FBX and glTF blend shape animations, for example for facial animation data.
- The remaining topology modes allowed in glTF,
LineLoop,TriangleStripandTriangleFan, are now converted to topologies supported by Unity on import. Previously these modes were not supported.
Changelog:
- fix: GLTFRecorder issue where resulting animation would have linear interpolation for cases where a jump was expected
- fix: GLTFSettings toolbar active index correctly stored in session now
- fix: don't export empty buffers with length 0
- fix: check for valid Humanoid avatar before export (#681)
- fix: work around SRP issue with invalid camera data in render passes affecting rough refractions
- fix: issue when morph targets have varying normals and tangents data (#682)
- fix: prevent exception in earlier 2022.x versions with
isDataSRGBnot being available - fix: missing normalization checks for quantized accessor data (#693)
- fix: make sure topology are triangles for calculating normals/tangents (#133)
- fix: KTX2 textures were not checking for linear for "Fix All" importer button
- fix: MAOS maps (combined metallic/ambient occlusion/roughness) were not exported correctly
- fix: wrong accessor
UBYTE>BYTEandBYTE>SBYTEconversion when reading data in some - fix: restore multithreading support and improve performance
- feat: import plugin for
EXT_mesh_gpu_instancingextension - feat: added blend shape frame weight import option for easier animation retargeting
- feat: show failing filenames more clearly when exceptions occur during import
- feat: add option to hide scene obj during loading in
GLTFComponent - feat: add import support for glTF
LineLoop,TriangleStrip,TriangleFantopologies - feat: performance improvements in name resolution for importing files with many nodes
- feat: performance improvements by using
NativeArrayandMathematicstypes