[vtk-developers] Volume won't show on Win7/Intel HD4600 with QVTKOpenGLWidget in 8.0.0.rc1

Aron Helser aron.helser at kitware.com
Thu May 25 10:22:55 EDT 2017


Hi Elvis,
I've got a Win10 laptop (dell precision 5510), with an Optimus setup - both
intel and nvidia graphics.
With your test case, I'm able to see the volume running either with Intel
or nVidia, so it doesn't repro for me.
I've got Intel HD530 graphics, with driver version 21.20.16.4627
Sorry,
Aron

On Wed, May 24, 2017 at 5:02 PM, Elvis Stansvik <
elvis.stansvik at orexplore.com> wrote:

> 2017-05-24 22:49 GMT+02:00 Elvis Stansvik <elvis.stansvik at orexplore.com>:
> > 2017-05-24 22:20 GMT+02:00 Sankhesh Jhaveri <
> sankhesh.jhaveri at kitware.com>:
> >> Hi Elvis,
> >>
> >> Unfortunately, I wasn’t able to reproduce this issue. :(
> >>
> >> I don’t have a Windows machine with an Intel graphics card but tried
> >> ParaView on a couple of se Windows machines as well as a Mac (with an
> Intel
> >> HD5600). Worked fine.
> >
> > Alright. Call for help then: Anyone else have a Windows 7 machine with
> > Intel graphics? Would be great if someone could reproduce.
>
> Forgot to say: Thanks a lot for trying to reproduce Sankhesh.
>
> I've now put up the compiled self-contained test case here:
>
>     http://dose.se/~estan/voltestcase-inst.zip (18 MB)
>
> If anyone with Windows (preferably Windows 7 if possible) + Intel
> graphics could try running this test case with "TestCase 1" and see if
> the volume shows up, that would be great.
>
> (Running the test case with argc > 2 will make it use
> QVTKOpenGLWidget, and is where I'm having trouble).
>
> Elvis
>
> >
> > I could put up my build of the test case as a self-contained .zip, to
> > make it easy to test.
> >
> >>
> >> At this point, I am inclined to think that the graphics drivers on your
> >> Windows machine may need updating.
> >
> > Hm, but it works fine if I don't use QVTKOpenGLWidget, and just use a
> > plain vtkRenderWindow + vtkRenderWindowInteractor. Wouldn't that
> > suggest that the drivers are capable enough, and that the problem is
> > somehow in QVTKOpenGLWidget (or QOpenGLWidget)?
> >
> > Elvis
> >
> >>
> >>
> >> On Wed, May 24, 2017 at 12:16 PM Sankhesh Jhaveri
> >> <sankhesh.jhaveri at kitware.com> wrote:
> >>>
> >>> Okay thanks.
> >>>
> >>> I’ll take a look.
> >>>
> >>>
> >>> On Wed, May 24, 2017 at 8:18 AM Elvis Stansvik
> >>> <elvis.stansvik at orexplore.com> wrote:
> >>>>
> >>>> 2017-05-23 15:41 GMT+02:00 Sankhesh Jhaveri
> >>>> <sankhesh.jhaveri at kitware.com>:
> >>>> > Hi Elvis,
> >>>> >
> >>>> > Could you try downloading the ParaView nightly binary and test
> volume
> >>>> > rendering there? You can use the wavelet source for a test dataset.
> >>>> > ParaView
> >>>> > uses the QVTKOpenGLWidget and it would be a good test before diving
> >>>> > into the
> >>>> > code.
> >>>>
> >>>> I tried the wavelet example with Paraview 5.4.0-RC1-125-g435b603
> >>>> 64-bit, and the problem is the same as in my minimal test case. The
> >>>> volume won't show up.
> >>>>
> >>>> It does show up if I switch to the software based ray cast mapper (but
> >>>> not with GPU or smart, which I guess both result in the GPU one being
> >>>> used).
> >>>>
> >>>> Please tell me if there's anything else I can do to help debugging.
> >>>> There are no errors printed when I run my test case.
> >>>>
> >>>> Elvis
> >>>>
> >>>> >
> >>>> > Thanks,
> >>>> > Sankhesh
> >>>> >
> >>>> >
> >>>> > On Tue, May 23, 2017 at 6:50 AM Elvis Stansvik
> >>>> > <elvis.stansvik at orexplore.com> wrote:
> >>>> >>
> >>>> >> Hi all,
> >>>> >>
> >>>> >> In porting to QVTKOpenGLWidget, I can't get volumes rendered using
> >>>> >> vtkGPUVolumeRayCastMapper to show up on Windows 7, Intel graphics
> (HD
> >>>> >> 4600). They show up fine on Linux. They also show up fine on
> Windows 7
> >>>> >> if using a plain VTK render window. I've tried turning off
> >>>> >> multisampling with setSamples(0) on the default QSurfaceFormat.
> >>>> >>
> >>>> >> The below test case illustrates the issue. See the attached
> >>>> >> screenshots from running "TestCase" (left) and "TestCase 1"
> (right).
> >>>> >> The former uses a plain render window while the latter uses the new
> >>>> >> QVTKOpenGLWidget. Notice how in the Windows 7 screenshot, the plain
> >>>> >> VTK rendering works fine, but the QVTKOpenGLWidget one is not
> showing
> >>>> >> the volume.
> >>>> >>
> >>>> >> Versions used:
> >>>> >>
> >>>> >> Kubuntu Linux 16.04
> >>>> >> VTK 8.0.0.rc1, OpenGL2
> >>>> >> Qt 5.5.1
> >>>> >>
> >>>> >> Windows 7
> >>>> >> VTK 8.0.0.rc1, OpenGL2
> >>>> >> Qt 5.6.2
> >>>> >>
> >>>> >> Any ideas what the problem might be?
> >>>> >>
> >>>> >> I can provide a standalone .zip distribution of my build of the
> test
> >>>> >> case if you want.
> >>>> >>
> >>>> >> Note that this issue is orthogonal to the alpha issue I reported
> and
> >>>> >> got solved in my other thread.
> >>>> >>
> >>>> >> Many thanks in advance,
> >>>> >> Elvis
> >>>> >>
> >>>> >>
> >>>> >> main.cpp:
> >>>> >>
> >>>> >> #include <algorithm>
> >>>> >>
> >>>> >> #include <vtkColorTransferFunction.h>
> >>>> >> #include <vtkGenericOpenGLRenderWindow.h>
> >>>> >> #include <vtkGPUVolumeRayCastMapper.h>
> >>>> >> #include <vtkImageData.h>
> >>>> >> #include <vtkNew.h>
> >>>> >> #include <vtkPiecewiseFunction.h>
> >>>> >> #include <vtkProperty.h>
> >>>> >> #include <vtkRenderer.h>
> >>>> >> #include <vtkRenderWindow.h>
> >>>> >> #include <vtkRenderWindowInteractor.h>
> >>>> >> #include <vtkVolume.h>
> >>>> >> #include <vtkVolumeProperty.h>
> >>>> >>
> >>>> >> #include <QVTKOpenGLWidget.h>
> >>>> >>
> >>>> >> #include <QApplication>
> >>>> >>
> >>>> >> int main(int argc, char *argv[])
> >>>> >> {
> >>>> >>     auto defaultFormat = QVTKOpenGLWidget::defaultFormat();
> >>>> >>     defaultFormat.setSamples(0);
> >>>> >>     QSurfaceFormat::setDefaultFormat(defaultFormat);
> >>>> >>
> >>>> >>     QApplication app(argc, argv);
> >>>> >>
> >>>> >>     // Set up volume rendering
> >>>> >>     vtkNew<vtkColorTransferFunction> colorFunction;
> >>>> >>     colorFunction->AddRGBPoint(0.0, 0.0, 0.0, 0.0);
> >>>> >>     colorFunction->AddRGBPoint(1.0, 0.0, 0.0, 0.0);
> >>>> >>
> >>>> >>     vtkNew<vtkPiecewiseFunction> opacityFunction;
> >>>> >>     opacityFunction->AddPoint(0.0, 0.0);
> >>>> >>     opacityFunction->AddPoint(1.0, 1.0);
> >>>> >>
> >>>> >>     vtkNew<vtkImageData> imageData;
> >>>> >>     imageData->SetExtent(0, 200, 0, 200, 0, 200);
> >>>> >>     imageData->AllocateScalars(VTK_FLOAT, 1);
> >>>> >>     std::fill_n(static_cast<float *>(imageData->
> GetScalarPointer()),
> >>>> >> 8000000, 0.01);
> >>>> >>
> >>>> >>     vtkNew<vtkGPUVolumeRayCastMapper> volumeMapper;
> >>>> >>     volumeMapper->SetInputData(imageData.Get());
> >>>> >>
> >>>> >>     vtkNew<vtkVolumeProperty> volumeProperty;
> >>>> >>     volumeProperty->SetScalarOpacity(opacityFunction.Get());
> >>>> >>     volumeProperty->SetColor(colorFunction.Get());
> >>>> >>     volumeProperty->ShadeOff();
> >>>> >>
> >>>> >>     vtkNew<vtkVolume> volume;
> >>>> >>     volume->SetMapper(volumeMapper.Get());
> >>>> >>     volume->SetProperty(volumeProperty.Get());
> >>>> >>
> >>>> >>     vtkNew<vtkRenderer> renderer;
> >>>> >>     renderer->AddVolume(volume.Get());
> >>>> >>     renderer->SetBackground(1.0, 1.0, 1.0);
> >>>> >>
> >>>> >>     if (argc > 1) {
> >>>> >>         // Render with QVTKOpenGLWidget
> >>>> >>         vtkNew<vtkGenericOpenGLRenderWindow> window;
> >>>> >>         window->AddRenderer(renderer.Get());
> >>>> >>
> >>>> >>         auto widget = new QVTKOpenGLWidget();
> >>>> >>         widget->SetRenderWindow(window.Get());
> >>>> >>         widget->show();
> >>>> >>
> >>>> >>         return app.exec();
> >>>> >>     } else {
> >>>> >>         // Render with "plain" render window / interactor
> >>>> >>         vtkNew<vtkRenderWindow> window;
> >>>> >>         window->AddRenderer(renderer.Get());
> >>>> >>
> >>>> >>         vtkNew<vtkRenderWindowInteractor> interactor;
> >>>> >>         interactor->SetRenderWindow(window.Get());
> >>>> >>         interactor->Start();
> >>>> >>
> >>>> >>         return 0;
> >>>> >>     }
> >>>> >> }
> >>>> >>
> >>>> >>
> >>>> >> CMakeLists.txt:
> >>>> >>
> >>>> >> cmake_minimum_required(VERSION 3.1)
> >>>> >>
> >>>> >> project(TestCase)
> >>>> >>
> >>>> >> find_package(VTK 8.0 COMPONENTS
> >>>> >>     vtkCommonCore
> >>>> >>     vtkCommonDataModel
> >>>> >>     vtkCommonExecutionModel
> >>>> >>     vtkCommonMath
> >>>> >>     vtkFiltersSources
> >>>> >>     vtkGUISupportQt
> >>>> >>     vtkInteractionStyle
> >>>> >>     vtkRenderingCore
> >>>> >>     vtkRenderingOpenGL2
> >>>> >>     vtkRenderingVolume
> >>>> >>     vtkRenderingVolumeOpenGL2
> >>>> >>     REQUIRED
> >>>> >> )
> >>>> >>
> >>>> >> find_package(Qt5Widgets REQUIRED)
> >>>> >>
> >>>> >> add_executable(TestCase main.cpp)
> >>>> >>
> >>>> >> target_link_libraries(TestCase PUBLIC
> >>>> >>     vtkCommonCore
> >>>> >>     vtkCommonDataModel
> >>>> >>     vtkCommonExecutionModel
> >>>> >>     vtkCommonMath
> >>>> >>     vtkFiltersSources
> >>>> >>     vtkGUISupportQt
> >>>> >>     vtkInteractionStyle
> >>>> >>     vtkRenderingCore
> >>>> >>     vtkRenderingOpenGL2
> >>>> >>     vtkRenderingVolume
> >>>> >>     vtkRenderingVolumeOpenGL2
> >>>> >>     Qt5::Widgets
> >>>> >> )
> >>>> >>
> >>>> >> target_include_directories(TestCase PUBLIC
> >>>> >>     ${VTK_INCLUDE_DIRS}
> >>>> >> )
> >>>> >>
> >>>> >> target_compile_definitions(TestCase PUBLIC
> >>>> >>     ${VTK_DEFINITIONS}
> >>>> >> )
> >>>> >>
> >>>> >> set_target_properties(TestCase PROPERTIES
> >>>> >>     CXX_STANDARD 14
> >>>> >>     CXX_STANDARD_REQUIRED ON
> >>>> >> )
> >>>> >> _______________________________________________
> >>>> >> Powered by www.kitware.com
> >>>> >>
> >>>> >> Visit other Kitware open-source projects at
> >>>> >> http://www.kitware.com/opensource/opensource.html
> >>>> >>
> >>>> >> Search the list archives at:
> >>>> >> http://markmail.org/search/?q=vtk-developers
> >>>> >>
> >>>> >> Follow this link to subscribe/unsubscribe:
> >>>> >> http://public.kitware.com/mailman/listinfo/vtk-developers
> >>>> >>
> >>>> > --
> >>>> >
> >>>> > Sankhesh Jhaveri
> >>>> >
> >>>> > Sr. Research & Development Engineer | Kitware | (518) 881-4417
> >>>
> >>> --
> >>>
> >>> Sankhesh Jhaveri
> >>>
> >>> Sr. Research & Development Engineer | Kitware | (518) 881-4417
> >>
> >> --
> >>
> >> Sankhesh Jhaveri
> >>
> >> Sr. Research & Development Engineer | Kitware | (518) 881-4417
> _______________________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at http://www.kitware.com/
> opensource/opensource.html
>
> Search the list archives at: http://markmail.org/search/?q=vtk-developers
>
> Follow this link to subscribe/unsubscribe:
> http://public.kitware.com/mailman/listinfo/vtk-developers
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/vtk-developers/attachments/20170525/ab154bbe/attachment-0001.html>


More information about the vtk-developers mailing list