MantisBT - VTK
View Issue Details
0015914VTK(No Category)public2016-01-04 14:532016-01-08 09:44
Kenji Tsumura 
David Gobbi 
urgentminoralways
closedfixed 
7.0.rcs 
7.0.07.0.0 
TBD
incorrect functionality
0015914: VTK-7.0.0 RC1: Image reslice with OpenGL2
When I rotated a volume image, a portion of the resliced image is missing sometimes. The bug can be reproducible using the attached test code. As far as I can tell, the bug doesn't occur with VTK_RENDERING_BACKEND OpenGL setting.

My environment is:
VTK-7.0.0 RC1
CMake 3.1.1
Visual Studio 12 2013 Win 64
I've confirmed this bug on my own system (OS X with ATI graphics). To reproduce, call vtkInteractorStyleImage::SetInteractionModeToImage3D() in TestImageResliceMapperOrient3D.cxx, and then perform oblique slicing on any of the displayed images (use shift-drag with left mouse button). The attached image shows more of the weird results.
From the look of the results, I suspect that the polygons are being generated incorrectly. The textures themselves look fine, and I also believe the texture coordinates are fine.

I can confirm that the oblique slicing was working for OpenGL2 at commit 06ad5dec (Tue Oct 27). So the bug was the result of a merge that occurred between Oct 27 and Dec 10.
No tags attached.
cxx TestImageResliceMapperOrient3D_mod.cxx (3,563) 2016-01-04 14:53
https://www.vtk.org/Bug/file/9989/TestImageResliceMapperOrient3D_mod.cxx
jpg ImageReslice_Bug.jpg (53,372) 2016-01-04 18:45
https://www.vtk.org/Bug/file/9990/ImageReslice_Bug.jpg
jpg

png ResliceMapperOrient.png (87,274) 2016-01-06 12:39
https://www.vtk.org/Bug/file/9991/ResliceMapperOrient.png
png
Issue History
2016-01-04 14:53Kenji TsumuraNew Issue
2016-01-04 14:53Kenji TsumuraFile Added: TestImageResliceMapperOrient3D_mod.cxx
2016-01-04 18:45Kenji TsumuraFile Added: ImageReslice_Bug.jpg
2016-01-06 09:51David GobbiAssigned To => David Gobbi
2016-01-06 12:39David GobbiReproducibilityhave not tried => always
2016-01-06 12:39David GobbiSteps to Reproduce Updatedbug_revision_view_page.php?rev_id=1444#r1444
2016-01-06 12:39David GobbiFile Added: ResliceMapperOrient.png
2016-01-06 13:05David GobbiAdditional Information Updatedbug_revision_view_page.php?rev_id=1446#r1446
2016-01-06 16:28David GobbiAdditional Information Updatedbug_revision_view_page.php?rev_id=1447#r1447
2016-01-06 16:29David GobbiAdditional Information Updatedbug_revision_view_page.php?rev_id=1448#r1448
2016-01-06 16:41David GobbiAdditional Information Updatedbug_revision_view_page.php?rev_id=1449#r1449
2016-01-06 18:56David GobbiAdditional Information Updatedbug_revision_view_page.php?rev_id=1450#r1450
2016-01-06 19:09David GobbiPrioritynormal => urgent
2016-01-06 19:09David GobbiProduct Version6.3.0 => 7.0.rcs
2016-01-06 19:09David GobbiTarget Version => 7.0.0
2016-01-07 12:25David GobbiNote Added: 0035637
2016-01-07 13:32David GobbiNote Added: 0035638
2016-01-07 13:32David GobbiStatusbacklog => active development
2016-01-08 09:44David GobbiNote Added: 0035639
2016-01-08 09:44David GobbiStatusactive development => closed
2016-01-08 09:44David GobbiResolutionopen => fixed
2016-01-08 09:44David GobbiFixed in Version => 7.0.0

Notes
(0035637)
David Gobbi   
2016-01-07 12:25   
The following commit introduced the bug, according to git bisect:

commit 263583d1ced875bc422325dc6123d0309b0612ed
Author: Ken Martin <ken.martin@kitware.com>
Date: Thu Dec 3 11:25:59 2015 -0500

    Make the rebuilding of VBO and IBO very conservative_vbo_ibo_rebuild
    
    This topic should make it so that the VBO and IBO only gets
    rebuilt when it really needs to. Instead of relying on high
    level MTimes it actually looks at the pieces of data that impact
    the VBO or IBO respectively. The VBO can build without the IBO
    rebuilding and vice versa.
(0035638)
David Gobbi   
2016-01-07 13:32   
The problem appears to have been a timestamp issue, the correct geometry was not being pushed to the GPU. The following patch seems to fix the issue:

https://gitlab.kitware.com/vtk/vtk/merge_requests/1057 [^]
(0035639)
David Gobbi   
2016-01-08 09:44   
Fix has been merged into master and is scheduled for merge into 7.0.0.