Skip to content

feat(GLTFImporter): add extensions & animations support - #3513

Open
daker wants to merge 12 commits into
Kitware:masterfrom
daker:gltf-anim-ext
Open

feat(GLTFImporter): add extensions & animations support#3513
daker wants to merge 12 commits into
Kitware:masterfrom
daker:gltf-anim-ext

Conversation

@daker

@daker daker commented May 19, 2026

Copy link
Copy Markdown
Collaborator

Context

Fixes #3501

  1. GLTF Extensions:

    • KHR_materials_pbrSpecularGlossiness
    • KHR_materials_clearcoat
    • KHR_materials_anisotropy
    • KHR_materials_emissive_strength
    • KHR_materials_transmission
    • KHR_materials_volume
    • KHR_materials_iridescence
    • KHR_materials_sheen
    • KHR_materials_diffuse_transmission
    • KHR_materials_dispersion
  2. New animation framework in core/data model

    • Introduced AnimationScene, AnimationMixer, AnimationCue, AnimationClip, AnimationTrack, Armature, plus ArmatureSource.
  3. PBR debugging

    • Added PBR debug channels to Mapper.

Results

Enregistrement.2026-05-20.012513.mp4

Changes

  • Documentation and TypeScript definitions were updated to match those changes

PR and Code Checklist

  • semantic-release commit messages
  • Run npm run reformat to have correctly formatted code

Testing

  • This change adds or fixes unit tests
  • Tested environment:
    • vtk.js:
    • OS:
    • Browser:

@daker
daker force-pushed the gltf-anim-ext branch 6 times, most recently from 7e0d2b0 to 2956595 Compare May 25, 2026 16:52
@daker

daker commented May 25, 2026

Copy link
Copy Markdown
Collaborator Author

@sankhesh mind also looking at this PR when you have time ?

@daker

daker commented Jul 1, 2026

Copy link
Copy Markdown
Collaborator Author

@sankhesh any chance to get a review ?

@daker
daker force-pushed the gltf-anim-ext branch 2 times, most recently from ac2af82 to 5dcc09d Compare August 17, 2026 18:42
@daker

daker commented Aug 17, 2026

Copy link
Copy Markdown
Collaborator Author

@sankhesh can i have a review please ?

@finetjul finetjul left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Generally speaking, please reproduce as much as possible the VTK C++ API for the existing classes.

@sankhesh I reviewed the non-mapper part, I let you review the mapper part :-)

Comment thread Sources/Rendering/WebGPU/Renderer/index.js
Comment thread Sources/Filters/Sources/ArmatureSource/index.d.ts
Comment thread Sources/Common/Core/AnimationCue/index.js Outdated
Comment thread Sources/Common/Core/AnimationCue/index.js
Comment thread Sources/Common/Core/AnimationCue/index.js Outdated
Comment thread Sources/Common/DataModel/AnimationTrack/index.js
Comment thread Sources/Common/DataModel/AnimationClip/index.js Outdated
Comment thread Sources/Common/DataModel/AnimationClip/index.js Outdated
Comment thread Sources/Common/DataModel/AnimationClip/index.js
Comment thread Sources/Common/DataModel/AnimationTrack/index.js Outdated
daker added 11 commits August 22, 2026 15:57
- traverse armature bones parents-first so out of order glTF joints
  compute correct world matrices
- insert placeholder bones for null joints to keep bone indices aligned
  with JOINTS_0 and the inverse bind matrices accessor
- expose animation clips from all skins instead of only the first
- dequantize normalized integer accessors (colors, weights, quantized
  animation outputs) per spec
- honor textureInfo.texCoord as fallback with KHR_texture_transform and
  stop hijacking the mesh active tcoords for emissive UVs
- default KHR_materials_ior to 1.5 per spec (also for the reset path)
- position punctual lights with the node world matrix and deduplicate
  light map keys so unnamed lights are not dropped
- decompose node.matrix into rest TRS for node transform animations
…root skins

- drop the intensity / PI conversion: the PBR light loop already follows
  the Khronos reference (radiance = color * intensity, 1/PI lives in the
  lambertian BRDF), so the division dimmed glTF lights by PI
- honor an explicit light intensity of 0
- compute the skeleton root transform per root joint and warn when root
  joints require different ancestor transforms
@daker
daker force-pushed the gltf-anim-ext branch 3 times, most recently from 4e00f04 to 0376461 Compare August 22, 2026 14:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature] Support weight and joint animations

2 participants