View Issue Details

IDProjectCategoryView StatusLast Update
0004251Slicer4Core: Renderingpublic2017-04-26 10:23
Reporterlassoan Assigned Tomsmolens  
PrioritynormalSeveritymajorReproducibilityrandom
Status resolvedResolutionfixed 
Product VersionSlicer 4.6.0 
Target VersionFixed in Version 
Summary0004251: Ordering of 2D actors is often wrong with OpenGL2
Description

Z order of 2D actors are often wrong in slice viewers when OpenGL2 rendering backend is used.
For example:

  • Slice annotations (patient name, etc) always appear behind foreground/background/labelmap image.
  • Slice intersections sometimes appear behind foreground/background/labelmap image.
  • Segmentations sometimes appear behind foreground/background/labelmap image.
Steps To Reproduce
  • Start slicer
  • Load MRHead sample
  • Show slice intersections
TagsNo tags attached.

Activities

lassoan

lassoan

2016-09-09 09:20

developer  

jcfr

jcfr

2016-09-13 09:55

administrator   ~0014092

From Ken: most every VTK test checks that z ordering is correct. Otherwise the resulting images would be incorrect. I suspect what you are seeing is tied to a specific mapper or widget or something that is not tested as thoroughly in VTK.

msmolens

msmolens

2016-09-20 18:48

developer   ~0014108

I need to investigate further, but one thing to look at is a difference in vtkOpenGLImageMapper between the OpenGL and OpenGL2 backends. OpenGL2's mapper disables depth testing:
https://github.com/Kitware/VTK/blob/94dfcdac64c2e987155b216d39e6049fa1206e4b/Rendering/OpenGL2/vtkOpenGLImageMapper.cxx#L694

lassoan

lassoan

2016-09-26 16:41

developer   ~0014127

I've quickly tested with the latest trunk version, with OpenGL2 backend and everything seemed to work well.

Model rendering is much faster with OpenGL2 backend! (for more complex models, OpenGL backend lags very much; the same models are updated at max framerate of 60fps)

jcfr

jcfr

2016-09-26 16:42

administrator   ~0014128

Thanks for the feedback Andras.

What do you think if we enable the OpenGL2 backend for few days and gather feedback ?

lassoan

lassoan

2016-09-26 19:24

developer   ~0014129

Yes, I think it would be a good idea to enable OpenGL2 backend by default now. If users don't find any problems in the coming few weeks then it may be used for the upcoming stable release.

pinter

pinter

2016-09-26 20:34

developer   ~0014130

It also works well for me, depth peeling included.

msmolens

msmolens

2016-09-27 09:44

developer   ~0014131

For reference, this was fixed in https://github.com/Slicer/Slicer/pull/587 / http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=25395

Issue History

Date Modified Username Field Change
2016-09-09 09:20 lassoan New Issue
2016-09-09 09:20 lassoan Status new => assigned
2016-09-09 09:20 lassoan Assigned To => msmolens
2016-09-09 09:20 lassoan File Added: WrongActor2dOrderOpenGL2.png
2016-09-13 09:55 jcfr Note Added: 0014092
2016-09-20 18:48 msmolens Note Added: 0014108
2016-09-26 16:41 lassoan Note Added: 0014127
2016-09-26 16:42 jcfr Note Added: 0014128
2016-09-26 19:24 lassoan Note Added: 0014129
2016-09-26 20:34 pinter Note Added: 0014130
2016-09-27 09:44 msmolens Note Added: 0014131
2016-09-27 09:44 msmolens Status assigned => resolved
2016-09-27 09:44 msmolens Resolution open => fixed