<div dir="ltr"><div class="markdown-here-wrapper" style="font-family:"Lucida Sans",Cantarell,Verdana,sans-serif;color:rgb(11,83,148)"><p style="margin:0px 0px 1.2em!important">Hi Elvis,</p>
<p style="margin:0px 0px 1.2em!important">Could you try downloading the <a href="http://www.paraview.org/download/">ParaView nightly binary</a> 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.</p>
<p style="margin:0px 0px 1.2em!important">Thanks,<br>Sankhesh</p>
<div title="MDH:SGkgRWx2aXMsPGRpdj48YnI+PC9kaXY+PGRpdj5Db3VsZCB5b3UgdHJ5IGRvd25sb2FkaW5nIHRo
ZSBbUGFyYVZpZXcgbmlnaHRseSBiaW5hcnldKGh0dHA6Ly93d3cucGFyYXZpZXcub3JnL2Rvd25s
b2FkLykgYW5kIHRlc3Qgdm9sdW1lIHJlbmRlcmluZyB0aGVyZT8gWW91IGNhbiB1c2UgdGhlIHdh
dmVsZXQgc291cmNlIGZvciBhIHRlc3QgZGF0YXNldC4gUGFyYVZpZXcgdXNlcyB0aGUgUVZUS09w
ZW5HTFdpZGdldCBhbmQgaXQgd291bGQgYmUgYSBnb29kIHRlc3QgYmVmb3JlIGRpdmluZyBpbnRv
IHRoZSBjb2RlLjwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+VGhhbmtzLDwvZGl2PjxkaXY+U2Fu
a2hlc2g8L2Rpdj48ZGl2Pjxicj48L2Rpdj4=" style="height:0;width:0;max-height:0;max-width:0;overflow:hidden;font-size:0em;padding:0;margin:0">​</div></div></div><br><div class="gmail_quote"><div dir="ltr">On Tue, May 23, 2017 at 6:50 AM Elvis Stansvik <<a href="mailto:elvis.stansvik@orexplore.com">elvis.stansvik@orexplore.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi all,<br>
<br>
In porting to QVTKOpenGLWidget, I can't get volumes rendered using<br>
vtkGPUVolumeRayCastMapper to show up on Windows 7, Intel graphics (HD<br>
4600). They show up fine on Linux. They also show up fine on Windows 7<br>
if using a plain VTK render window. I've tried turning off<br>
multisampling with setSamples(0) on the default QSurfaceFormat.<br>
<br>
The below test case illustrates the issue. See the attached<br>
screenshots from running "TestCase" (left) and "TestCase 1" (right).<br>
The former uses a plain render window while the latter uses the new<br>
QVTKOpenGLWidget. Notice how in the Windows 7 screenshot, the plain<br>
VTK rendering works fine, but the QVTKOpenGLWidget one is not showing<br>
the volume.<br>
<br>
Versions used:<br>
<br>
Kubuntu Linux 16.04<br>
VTK 8.0.0.rc1, OpenGL2<br>
Qt 5.5.1<br>
<br>
Windows 7<br>
VTK 8.0.0.rc1, OpenGL2<br>
Qt 5.6.2<br>
<br>
Any ideas what the problem might be?<br>
<br>
I can provide a standalone .zip distribution of my build of the test<br>
case if you want.<br>
<br>
Note that this issue is orthogonal to the alpha issue I reported and<br>
got solved in my other thread.<br>
<br>
Many thanks in advance,<br>
Elvis<br>
<br>
<br>
main.cpp:<br>
<br>
#include <algorithm><br>
<br>
#include <vtkColorTransferFunction.h><br>
#include <vtkGenericOpenGLRenderWindow.h><br>
#include <vtkGPUVolumeRayCastMapper.h><br>
#include <vtkImageData.h><br>
#include <vtkNew.h><br>
#include <vtkPiecewiseFunction.h><br>
#include <vtkProperty.h><br>
#include <vtkRenderer.h><br>
#include <vtkRenderWindow.h><br>
#include <vtkRenderWindowInteractor.h><br>
#include <vtkVolume.h><br>
#include <vtkVolumeProperty.h><br>
<br>
#include <QVTKOpenGLWidget.h><br>
<br>
#include <QApplication><br>
<br>
int main(int argc, char *argv[])<br>
{<br>
    auto defaultFormat = QVTKOpenGLWidget::defaultFormat();<br>
    defaultFormat.setSamples(0);<br>
    QSurfaceFormat::setDefaultFormat(defaultFormat);<br>
<br>
    QApplication app(argc, argv);<br>
<br>
    // Set up volume rendering<br>
    vtkNew<vtkColorTransferFunction> colorFunction;<br>
    colorFunction->AddRGBPoint(0.0, 0.0, 0.0, 0.0);<br>
    colorFunction->AddRGBPoint(1.0, 0.0, 0.0, 0.0);<br>
<br>
    vtkNew<vtkPiecewiseFunction> opacityFunction;<br>
    opacityFunction->AddPoint(0.0, 0.0);<br>
    opacityFunction->AddPoint(1.0, 1.0);<br>
<br>
    vtkNew<vtkImageData> imageData;<br>
    imageData->SetExtent(0, 200, 0, 200, 0, 200);<br>
    imageData->AllocateScalars(VTK_FLOAT, 1);<br>
    std::fill_n(static_cast<float *>(imageData->GetScalarPointer()),<br>
8000000, 0.01);<br>
<br>
    vtkNew<vtkGPUVolumeRayCastMapper> volumeMapper;<br>
    volumeMapper->SetInputData(imageData.Get());<br>
<br>
    vtkNew<vtkVolumeProperty> volumeProperty;<br>
    volumeProperty->SetScalarOpacity(opacityFunction.Get());<br>
    volumeProperty->SetColor(colorFunction.Get());<br>
    volumeProperty->ShadeOff();<br>
<br>
    vtkNew<vtkVolume> volume;<br>
    volume->SetMapper(volumeMapper.Get());<br>
    volume->SetProperty(volumeProperty.Get());<br>
<br>
    vtkNew<vtkRenderer> renderer;<br>
    renderer->AddVolume(volume.Get());<br>
    renderer->SetBackground(1.0, 1.0, 1.0);<br>
<br>
    if (argc > 1) {<br>
        // Render with QVTKOpenGLWidget<br>
        vtkNew<vtkGenericOpenGLRenderWindow> window;<br>
        window->AddRenderer(renderer.Get());<br>
<br>
        auto widget = new QVTKOpenGLWidget();<br>
        widget->SetRenderWindow(window.Get());<br>
        widget->show();<br>
<br>
        return app.exec();<br>
    } else {<br>
        // Render with "plain" render window / interactor<br>
        vtkNew<vtkRenderWindow> window;<br>
        window->AddRenderer(renderer.Get());<br>
<br>
        vtkNew<vtkRenderWindowInteractor> interactor;<br>
        interactor->SetRenderWindow(window.Get());<br>
        interactor->Start();<br>
<br>
        return 0;<br>
    }<br>
}<br>
<br>
<br>
CMakeLists.txt:<br>
<br>
cmake_minimum_required(VERSION 3.1)<br>
<br>
project(TestCase)<br>
<br>
find_package(VTK 8.0 COMPONENTS<br>
    vtkCommonCore<br>
    vtkCommonDataModel<br>
    vtkCommonExecutionModel<br>
    vtkCommonMath<br>
    vtkFiltersSources<br>
    vtkGUISupportQt<br>
    vtkInteractionStyle<br>
    vtkRenderingCore<br>
    vtkRenderingOpenGL2<br>
    vtkRenderingVolume<br>
    vtkRenderingVolumeOpenGL2<br>
    REQUIRED<br>
)<br>
<br>
find_package(Qt5Widgets REQUIRED)<br>
<br>
add_executable(TestCase main.cpp)<br>
<br>
target_link_libraries(TestCase PUBLIC<br>
    vtkCommonCore<br>
    vtkCommonDataModel<br>
    vtkCommonExecutionModel<br>
    vtkCommonMath<br>
    vtkFiltersSources<br>
    vtkGUISupportQt<br>
    vtkInteractionStyle<br>
    vtkRenderingCore<br>
    vtkRenderingOpenGL2<br>
    vtkRenderingVolume<br>
    vtkRenderingVolumeOpenGL2<br>
    Qt5::Widgets<br>
)<br>
<br>
target_include_directories(TestCase PUBLIC<br>
    ${VTK_INCLUDE_DIRS}<br>
)<br>
<br>
target_compile_definitions(TestCase PUBLIC<br>
    ${VTK_DEFINITIONS}<br>
)<br>
<br>
set_target_properties(TestCase PROPERTIES<br>
    CXX_STANDARD 14<br>
    CXX_STANDARD_REQUIRED ON<br>
)<br>
_______________________________________________<br>
Powered by <a href="http://www.kitware.com" rel="noreferrer" target="_blank">www.kitware.com</a><br>
<br>
Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html" rel="noreferrer" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
<br>
Search the list archives at: <a href="http://markmail.org/search/?q=vtk-developers" rel="noreferrer" target="_blank">http://markmail.org/search/?q=vtk-developers</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://public.kitware.com/mailman/listinfo/vtk-developers" rel="noreferrer" target="_blank">http://public.kitware.com/mailman/listinfo/vtk-developers</a><br>
<br>
</blockquote></div><div dir="ltr">-- <br></div><div data-smartmail="gmail_signature"><div dir="ltr"><div class="inbox-markdown-here-wrapper" style="font-family:'proza libre',sans-serif;color:rgb(0,56,107)"><h5 id="inbox-sankhesh-jhaveri" style="margin:1.3em 0px 1em;padding:0px;font-size:1.1em;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:rgb(238,238,238);font-weight:bold;color:rgb(11,65,148)">Sankhesh Jhaveri</h5>
<h6 id="inbox--sr-research-development-engineer-kitware-http-www-kitware-com-518-881-4417" style="margin:1.3em 0px 1em;padding:0px;font-size:1em;color:rgb(11,83,148);font-family:'open sans',sans-serif;font-weight:normal"><em>Sr. Research & Development Engineer</em> | <a href="http://www.kitware.com/">Kitware</a> | (518) 881-4417</h6>
<div title="MDH:PGIgc3R5bGU9ImZvbnQtZmFtaWx5OiB2ZXJkYW5hLCBzYW5zLXNlcmlmOyBjb2xvcjogcmdiKDEx
LCA4MywgMTQ4KTsiPjxmb250IHNpemU9IjIiPiMjIyMjU2Fua2hlc2ggSmhhdmVyaTwvZm9udD48
L2I+PGRpdj48Zm9udCBjb2xvcj0iIzBiNTM5NCIgZmFjZT0idmVyZGFuYSwgc2Fucy1zZXJpZiIg
c2l6ZT0iMiI+PGI+PGJyPjwvYj48L2ZvbnQ+PGRpdj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6
IGFyaWFsLCBzYW5zLXNlcmlmOyBjb2xvcjogcmdiKDExLCA4MywgMTQ4KTsiPjxzcGFuIHN0eWxl
PSJmb250LWZhbWlseTogdmVyZGFuYSwgc2Fucy1zZXJpZjsiPjxpPiMjIyMjIypTci4gUmVzZWFy
Y2ggJmFtcDsgRGV2ZWxvcG1lbnQgRW5naW5lZXIqPC9pPiZuYnNwO3wmbmJzcDs8L3NwYW4+PC9z
cGFuPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTogdmVyZGFuYSwgc2Fucy1zZXJpZjsgY29sb3I6
IHJnYigxMSwgODMsIDE0OCk7Ij48YSBocmVmPSJodHRwOi8vd3d3LmtpdHdhcmUuY29tLyIgdGFy
Z2V0PSJfYmxhbmsiIHN0eWxlPSJjb2xvcjogcmdiKDE3LCA4NSwgMjA0KTsiPktpdHdhcmU8L2E+
Jm5ic3A7fCZuYnNwOzwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6IHZlcmRhbmEsIHNh
bnMtc2VyaWY7IGNvbG9yOiByZ2IoMTEsIDgzLCAxNDgpOyI+KDUxOCkgODgxLTQ0MTc8L3NwYW4+
PGJyPjwvZGl2PjxkaXY+PGRpdj48ZGl2PjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTogdmVyZGFu
YSwgc2Fucy1zZXJpZjsgY29sb3I6IHJnYigxMSwgODMsIDE0OCk7Ij48L3NwYW4+PC9kaXY+PC9k
aXY+PC9kaXY+PC9kaXY+" style="height:0px;width:0px;max-height:0px;max-width:0px;overflow:hidden;font-size:0em;padding:0px;margin:0px">​</div></div></div></div>