# Highlighted VTK changes associated with Slicer 4.10: Virtual Reality, Rendering, Volume Rendering, Python Wraping, OpenGL performance and threading management

**URL:** https://discourse.slicer.org/t/highlighted-vtk-changes-associated-with-slicer-4-10-virtual-reality-rendering-volume-rendering-python-wraping-opengl-performance-and-threading-management/4574
**Category:** Development
**Created:** [October 29, 2018, 6:43pm UTC](https://discourse.slicer.org/t/highlighted-vtk-changes-associated-with-slicer-4-10-virtual-reality-rendering-volume-rendering-python-wraping-opengl-performance-and-threading-management/4574 "2018-10-29T18:43:24Z")
**Posts on this page:** 1
**Page:** 1

<div class="post-metadata">

### Author: ![jcfr](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/jcfr/32/17825_2.png) [@jcfr](https://discourse.slicer.org/u/jcfr)
#### Post date: [October 29, 2018, 6:43pm UTC](https://discourse.slicer.org/t/highlighted-vtk-changes-associated-with-slicer-4-10-virtual-reality-rendering-volume-rendering-python-wraping-opengl-performance-and-threading-management/4574/1 "2018-10-29T18:43:25Z")

</div>

This post highlights some of the recent VTK changes included in Slicer 4.10

- [Blogs](#heading--blogs)
- [Build](#heading--build)
- [Chart](#heading--chart)
- [IO](#heading--io)
- [OpenVR](#heading--openvr)
- [Performance](#heading--performance)
- [Python Wrapping](#heading--python-wrapping)
- [QVTKOpenGLWidget](#heading--qvtkopenglwidget)
- [Rendering:](#heading--rendering)
- [Volume Rendering Fixes](#heading--volume-rendering-fixes)
- [Widgets](#heading--widgets)

## Blogs

- Rendering translucent geometry intermixed with volumes: [https://blog.kitware.com/rendering-translucent-geometry-intermixed-with-volumes/](https://blog.kitware.com/rendering-translucent-geometry-intermixed-with-volumes/)
- VTK 8.0.0: [https://blog.kitware.com/vtk-8-0-0/](https://blog.kitware.com/vtk-8-0-0/)
- New OpenGL Rendering in VTK: [https://blog.kitware.com/new-opengl-rendering-in-vtk/](https://blog.kitware.com/new-opengl-rendering-in-vtk/)

## Build

- **BUG: Common naming of #define conflicts with ITK**  
[kitware/vtk@10873ec](https://github.com/Kitware/VTK/commit/10873ec) (from `Hans Johnson <hans-johnson[at]uiowa.edu>`)

## Chart

- **Add single click selection in chartXY**  
[https://gitlab.kitware.com/vtk/vtk/merge\_requests/4531/commits](https://gitlab.kitware.com/vtk/vtk/merge_requests/4531/commits) (from `Davide Punzo <punzodavide[at]hotmail.it>`)

- **Fixed control points clamp function to handle NaN value**  
[kitware/VTK@bc627d8](https://github.com/Kitware/VTK/commit/bc627d8) (from `Csaba Pinter <csaba.pinter[at]queensu.ca>`)

## IO

- **ENH: Improve scene exporters and STL, OBJ, and PLY file IO**  
[kitware/VTK@3b814e9](https://github.com/Kitware/VTK/commit/3b814e9) (from `Andras Lasso <lasso[at]queensu.ca>`)

- **Add support for writing larger unstructured grids**  
[kitware/VTK@a7988f5](https://github.com/Kitware/VTK/commit/a7988f5) (from `Ken Martin <ken.martin[at]kitware.com>`)

## OpenVR

- **remove openvr factory**  
[https://gitlab.kitware.com/vtk/vtk/merge\_requests/4540/commits](https://gitlab.kitware.com/vtk/vtk/merge_requests/4540/commits) (from `Ken Martin <ken.martin[at]kitware.com>`)

- **fix an issue with flying controller labels**  
[https://gitlab.kitware.com/vtk/vtk/merge\_requests/4447/commits](https://gitlab.kitware.com/vtk/vtk/merge_requests/4447/commits) (from `Ken Martin <ken.martin[at]kitware.com>`)

- **better code for handling panel rotations**. See [https://gitlab.kitware.com/vtk/vtk/merge\_requests/4480/commits](https://gitlab.kitware.com/vtk/vtk/merge_requests/4480/commits)

- **Fix an issue with moving to the next saved pose.** (from `Ken Martin <ken.martin[at]kitware.com>`) .See [https://gitlab.kitware.com/vtk/vtk/merge\_requests/4767](https://gitlab.kitware.com/vtk/vtk/merge_requests/4767)

## Performance

- **Resolve "Multithreader creates many unnecessary threads"**  
[https://gitlab.kitware.com/vtk/vtk/merge\_requests/4175/commits](https://gitlab.kitware.com/vtk/vtk/merge_requests/4175/commits) (from `David Gobbi <David Gobbi <david.gobbi[at]gmail.com>`)

- **hardware picking code: improve picking performance and memory footprint**  
[https://gitlab.kitware.com/vtk/vtk/merge\_requests/4175/commits](https://gitlab.kitware.com/vtk/vtk/merge_requests/4175/commits) (from `Ken Martin <ken.martin[at]kitware.com>`)

- **Fix issue where picking happened with a bad context**  
[https://gitlab.kitware.com/vtk/vtk/merge\_requests/4616/commits](https://gitlab.kitware.com/vtk/vtk/merge_requests/4616/commits) (from `Ken Martin <ken.martin[at]kitware.com>`)

- **VolumeRendering: update volume rendering to share jitter and depth textures**  
[https://gitlab.kitware.com/vtk/vtk/merge\_requests/4416/commits](https://gitlab.kitware.com/vtk/vtk/merge_requests/4416/commits) (from `Ken Martin <ken.martin[at]kitware.com>`)

- **some opengl performance fixes**  
[https://gitlab.kitware.com/vtk/vtk/merge\_requests/4389/commits](https://gitlab.kitware.com/vtk/vtk/merge_requests/4389/commits) (from `Ken Martin <ken.martin[at]kitware.com>`)

- **Improve vtkAppendFilter efficiency**  
[kitware/VTK@d36b129](https://github.com/Kitware/VTK/commit/d36b129) (from `Andrew Bauer <andy.bauer[at]kitware.com>`)

## Python Wrapping

- **Wrap std::vector for basic vector types**  
[https://gitlab.kitware.com/vtk/vtk/merge\_requests/4545/commits](https://gitlab.kitware.com/vtk/vtk/merge_requests/4545/commits) (from David Gobbi)

## QVTKOpenGLWidget

- **Add Qt gestures events to QVTKOpenGLWidget**  
[https://gitlab.kitware.com/vtk/vtk/merge\_requests/4398/commits](https://gitlab.kitware.com/vtk/vtk/merge_requests/4398/commits) (from `Kyle Sunderland <sunderlandkyl[at]gmail.com>`)

- **Correct QVTKOpenGLWidget double click management, Correct MakeCurrent behavior**  
[https://gitlab.kitware.com/vtk/vtk/merge\_requests/4400/commits](https://gitlab.kitware.com/vtk/vtk/merge_requests/4400/commits) (from `Mathieu Westphal <mathieu.westphal[at]kitware.com>`)

- **Add stero support**  
[https://gitlab.kitware.com/vtk/vtk/merge\_requests/4317/commits](https://gitlab.kitware.com/vtk/vtk/merge_requests/4317/commits) (from `Mathieu Westphal <mathieu.westphal[at]kitware.com>`)

- **Rename QVTKOpenGLSimpleWidget to QVTKOpenGLNativeWidget**  
[https://gitlab.kitware.com/vtk/vtk/merge\_requests/4642/commits](https://gitlab.kitware.com/vtk/vtk/merge_requests/4642/commits) (from `Jean-Christophe Fillion-Robin <jcfr[at]kitware.com`\>)

- **vtkRenderer::PickProp: Fix crash handling empty selection**  
[https://gitlab.kitware.com/vtk/vtk/merge\_requests/4608/commits](https://gitlab.kitware.com/vtk/vtk/merge_requests/4608/commits) (from `Jean-Christophe Fillion-Robin <jcfr[at]kitware.com>`)

## Rendering:

- **Add support for defining custom uniform variables**. See [https://gitlab.kitware.com/vtk/vtk/merge\_requests/4621](https://gitlab.kitware.com/vtk/vtk/merge_requests/4621)  
Thanks: `Simon Drouin <drouin.simon[at]gmail.com>`

- **Fix issues with order independent translucency\_fixes** See [https://gitlab.kitware.com/vtk/vtk/merge\_requests/4757](https://gitlab.kitware.com/vtk/vtk/merge_requests/4757)  
Thanks: `Ken Martin <ken.martin[at]kitware.com>`

- **Add ability to share data between render windows**  
[kitware/VTK@363d99b](https://github.com/Kitware/VTK/commit/363d99b)

- **vtkOpenGLPolyDataMapper:limit timing calls to reasonable sized renders**  
[kitware/VTK@f128754](https://github.com/Kitware/VTK/commit/f128754)

- **vtkOpenGLRenderWindow: Improve error message reported when OpenGL is not supported.**  
[kitware/VTK@51e0dc9](https://github.com/Kitware/VTK/commit/51e0dc9)

- **Add centralized lighting uniforms and benchmark**  
[kitware/VTK@84e87cf](https://github.com/Kitware/VTK/commit/84e87cf)

- **OpenGL2: Check that context exists before trying to pop context.**  
[kitware/VTK@a7988f5](https://github.com/Kitware/VTK/commit/a7988f5)

## Volume Rendering Fixes

- **Fix volume clip bug and add regression test.**  
[https://gitlab.kitware.com/vtk/vtk/merge\_requests/4338/commits](https://gitlab.kitware.com/vtk/vtk/merge_requests/4338/commits) (from `Allison Vacanti <allison.vacanti[at]kitware.com>`)

- **Fix box widget face highlighting.**  
[https://gitlab.kitware.com/vtk/vtk/merge\_requests/4573/commits](https://gitlab.kitware.com/vtk/vtk/merge_requests/4573/commits) (from `Allison Vacanti <allison.vacanti[at]kitware.com>`)

- **Volume peel widget flicker**  
[https://gitlab.kitware.com/vtk/vtk/merge\_requests/4568](https://gitlab.kitware.com/vtk/vtk/merge_requests/4568) (from `Allison Vacanti <allison.vacanti[at]kitware.com>`)

- **Introduce volume API to specify intensity for clipped voxels**  
[https://gitlab.kitware.com/vtk/vtk/merge\_requests/4627](https://gitlab.kitware.com/vtk/vtk/merge_requests/4627) (from `Sankhesh Jhaveri <sankhesh.jhaveri[at]kitware.com>`)

- **VolumeMapper: Invoke update shader event each frame**  
[https://gitlab.kitware.com/vtk/vtk/merge\_requests/4614](https://gitlab.kitware.com/vtk/vtk/merge_requests/4614) (from `Sankhesh Jhaveri <sankhesh.jhaveri[at]kitware.com>`)

- **Fix volume clip bug and add regression test.**  
[https://gitlab.kitware.com/vtk/vtk/merge\_requests/4338/commits](https://gitlab.kitware.com/vtk/vtk/merge_requests/4338/commits) (from `Allison Vacanti <allison.vacanti[at]kitware.com>`)

- **Fix box widget face highlighting.**  
[https://gitlab.kitware.com/vtk/vtk/merge\_requests/4573/commits](https://gitlab.kitware.com/vtk/vtk/merge_requests/4573/commits) (from `Allison Vacanti <allison.vacanti[at]kitware.com>`)

- **Refactor in-shader volume clipping to be depth-peeling-friendly.**  
[https://gitlab.kitware.com/vtk/vtk/merge\_requests/4071/commits](https://gitlab.kitware.com/vtk/vtk/merge_requests/4071/commits) (from `Allison Vacanti <allison.vacanti[at]kitware.com>`)

## Widgets

- **Invoke DeletePointEvent before deleting vtkSeedWidget seed**  
[https://gitlab.kitware.com/vtk/vtk/merge\_requests/4493/commits](https://gitlab.kitware.com/vtk/vtk/merge_requests/4493/commits) (from `Sankhesh Jhaveri <sankhesh.jhaveri[at]kitware.com>`)

- **Fix picking through a disabled widget with picking manager on**  
[kitware/VTK@8e4f2f7](https://github.com/Kitware/VTK/commit/8e4f2f7) (from `Johan Andruejol <johan.andruejol[at]kitware.com>`)

- **BUG: Uniformize RegisterPickers() method**  
[kitware/vtk@fc043da5b](https://github.com/Kitware/VTK/commit/fc043da5b) (from `Johan Andruejol <johan.andruejol[at]kitware.com>`)
