Skip to content

feat(WebGPU): add ImageMapper#3482

Open
daker wants to merge 7 commits intoKitware:masterfrom
daker:webgpu-imagemapper
Open

feat(WebGPU): add ImageMapper#3482
daker wants to merge 7 commits intoKitware:masterfrom
daker:webgpu-imagemapper

Conversation

@daker
Copy link
Copy Markdown
Collaborator

@daker daker commented Apr 12, 2026

Context

feat(WebGPU): add coincident topology offsets to ImageMapper
feat(WebGPU): add dependent image modes for single component, LA, RGB…
feat(WebGPU): add independent component mixing to ImageMapper
feat(WebGPU): add zbuffer to ImageMapper
feat(WebGPU): add label outline to ImageMapper
feat(WebGPU): move ImageMapper off shared clampSampler
perf(WebGPU): reduce ImageMapper UBO array allocations

Results

Capture d'écran 2026-04-12 144614

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 added 6 commits April 11, 2026 18:50
- replace the shared mapper sampler with per textureview samplers
- keep image interpolation driven by ImageProperty settings
- use linear sampling for color and opacity LUT textures
- use nearest sampling for label outline lookup textures
@daker daker force-pushed the webgpu-imagemapper branch from 29c8022 to b933f22 Compare April 12, 2026 20:21
@PaulHax
Copy link
Copy Markdown
Collaborator

PaulHax commented Apr 12, 2026

Should we just impliment ImageResliceMapper and then wrap it for ImageMapper?

@daker
Copy link
Copy Markdown
Collaborator Author

daker commented Apr 12, 2026

@PaulHax vtkWebGPUImageMapper is for axis aligned image slicing while vtkWebGPUImageResliceMapper is for arbitrary plane/polydata slicing, custom geometry, slab logic so I was more thinking vtkWebGPUImageResliceMapper extends vtkWebGPUImageMapper or am I mistaken?

@PaulHax
Copy link
Copy Markdown
Collaborator

PaulHax commented Apr 13, 2026

Axis aligned image slicing is a subset of arbitrary plane/polydata slicing. But I'm putting the cart before the horse here, your right, getting WebGPU ImageMapper ironed out first is the way.

C++ VTK peeps are working on WebGPU Image Mapper as well: https://gitlab.kitware.com/vtk/vtk/-/merge_requests/12851

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.

2 participants