<div dir="ltr"><div>If your LUT has transparent values then VTK will assume your object is transparent and turn of depth testing so that alpha blending can be used. If you want your object to be treated as Opaque even though it may have translucent values then set SetForceOpaque(true) ala</div><div><br></div>actor->SetForceOpaque(true);</div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Dec 20, 2016 at 9:21 PM, Alexandre Boucher <span dir="ltr"><<a href="mailto:afboucher@gmail.com" target="_blank">afboucher@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Quick update.<div><br></div><div>The depth issue manifests itself when I set a alpha value to the NaN.</div><div><br></div><div>lut->SetNanColor(0.803, 0.788, 0.788, 0.8);  // depth issue<br></div><div>lut->SetNanColor(0.803, 0.788, 0.788,1.0);  // NO depth issue<br></div><div><br></div><div>Not sure the reason, but the problem is right there.</div><div><br></div><div>see the code below:</div><div><br></div><div><div>#include <QApplication></div><div>#include <QFrame></div><div>#include <QLabel></div><div>#include <QVBoxLayout></div><div>#include <QVTKWidget.h></div><div>#include <vtkImageData.h></div><div>#include <vtkSmartPointer.h></div><div>#include <vtkFloatArray.h></div><div>#include <vtkCellData.h></div><div>#include <vtkRenderWindow.h></div><div>#include <vtkActor.h></div><div>#include <vtkDataSetMapper.h></div><div>#include <vtkRenderer.h></div><div>#include <vtkProperty.h></div><div>#include <vtkThreshold.h></div><div>#include <vtkPassThrough.h></div><div>#include <vtkLookupTable.h></div><div><br></div><div><br></div><div><br></div><div>int main(int argc, char *argv[])</div><div>{</div><div><span class="m_-6638880294720501558gmail-Apple-tab-span" style="white-space:pre-wrap">     </span>QApplication app(argc, argv);</div><div><br></div><div><span class="m_-6638880294720501558gmail-Apple-tab-span" style="white-space:pre-wrap">      </span>vtkSmartPointer<vtkImageData> im_data = vtkSmartPointer<vtkImageData>:<wbr>:New();</div><div><span class="m_-6638880294720501558gmail-Apple-tab-span" style="white-space:pre-wrap">        </span>im_data->SetDimensions(21, 21, 21);</div><div><span class="m_-6638880294720501558gmail-Apple-tab-span" style="white-space:pre-wrap">      </span>im_data->SetSpacing(1.0, 1.0, 1.0);</div><div><span class="m_-6638880294720501558gmail-Apple-tab-span" style="white-space:pre-wrap">      </span>im_data->SetOrigin(0.0, 0.0, 0.0);</div><div><br></div><div><br></div><div><span class="m_-6638880294720501558gmail-Apple-tab-span" style="white-space:pre-wrap">     </span>vtkSmartPointer<vtkFloatArray> data = vtkSmartPointer<vtkFloatArray><wbr>::New();</div><div><span class="m_-6638880294720501558gmail-Apple-tab-span" style="white-space:pre-wrap"> </span>data->SetNumberOfValues(20 * 20 * 20);</div><div><span class="m_-6638880294720501558gmail-Apple-tab-span" style="white-space:pre-wrap">   </span>for (int i = 0; i < data->GetNumberOfValues(); ++i) {</div><div><span class="m_-6638880294720501558gmail-Apple-tab-span" style="white-space:pre-wrap">         </span>data->SetValue(i, (float)i/20.0/20./20.0);</div><div><span class="m_-6638880294720501558gmail-Apple-tab-span" style="white-space:pre-wrap">       </span>}</div><div><span class="m_-6638880294720501558gmail-Apple-tab-span" style="white-space:pre-wrap">   </span>im_data->GetCellData()-><wbr>SetScalars(data);</div><div><br></div><div><span class="m_-6638880294720501558gmail-Apple-tab-span" style="white-space:pre-wrap"> </span>vtkSmartPointer<vtkRenderer> renderer = vtkSmartPointer<vtkRenderer>::<wbr>New();</div><div>  </div><div>  vtkSmartPointer<<wbr>vtkDataSetMapper> mapper = vtkSmartPointer<<wbr>vtkDataSetMapper>::New();</div><div>  mapper->SetInputData(im_data);</div><div><br></div><div>  vtkSmartPointer<vtkProperty> vtk_property = vtkSmartPointer<vtkProperty>::<wbr>New();</div><div><br></div><div><span class="m_-6638880294720501558gmail-Apple-tab-span" style="white-space:pre-wrap">        </span>vtkSmartPointer<vtkActor> actor = vtkSmartPointer<vtkActor>::<wbr>New();</div><div><span class="m_-6638880294720501558gmail-Apple-tab-span" style="white-space:pre-wrap">  </span>actor->SetMapper(mapper);</div><div><span class="m_-6638880294720501558gmail-Apple-tab-span" style="white-space:pre-wrap">        </span>renderer->AddActor(actor);</div><div><br></div><div>  vtkSmartPointer<<wbr>vtkLookupTable> lut = vtkSmartPointer<<wbr>vtkLookupTable>::New();</div><div>  int n_colors = 8;</div><div>  lut->SetNumberOfTableValues(n_<wbr>colors);</div><div>  lut->Build();</div><div><br></div><div>  for (int i = 0; i < n_colors; i++) {</div><div>    lut->SetTableValue(i, 1.0-(0.125*i), 0.125*i, 0.125*i, 1.0);</div><div>  }</div><div>  lut->SetRampToLinear();</div><div>//  lut->SetNanColor(0.803, 0.788, 0.788, 1.0);</div><div>  lut->SetNanColor(0.803, 0.788, 0.788, 0.8);</div><div>  mapper->SetScalarRange(0, 2);</div><div>  mapper->SetLookupTable(lut);</div><div>  mapper->Modified();</div><div><span class="m_-6638880294720501558gmail-Apple-tab-span" style="white-space:pre-wrap">        </span></div><div>  QFrame* frame = new QFrame();</div><div>  frame->setLayout(new QVBoxLayout(frame));</div><div>  frame->layout()->addWidget(new QLabel("TEST TEST TEST TEST ... ... TEST"));</div><div>  QVTKWidget* vtk_widget = new QVTKWidget(frame);</div><div>  frame->layout()->addWidget(<wbr>vtk_widget);</div><div>  vtk_widget->GetRenderWindow()-<wbr>>AddRenderer(renderer);</div><div><br></div><div>  frame->show();</div><div><span style="white-space:pre-wrap">  </span>return app.exec();</div><div><br></div><div>}</div></div><div><br></div><div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Dec 20, 2016 at 6:17 PM, Alexandre Boucher <span dir="ltr"><<a href="mailto:afboucher@gmail.com" target="_blank">afboucher@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Sorry,   This is on Windows 10, NVIDIA GTX 1080 (but tried with a few older NVIDIA card).<div><br></div><div>I have been looking at it in more details today without success.  The  <span style="font-family:"courier new";font-size:13.3333px">QSurfaceFormat</span><span style="font-family:"courier new";font-size:13.3333px"> </span>approach  mentioned above did not work.</div><div><br></div><div> I tried to isolate the issue in a stand alone code but could not reproduce the depth issue.  The closest I have been in isolating the problem is by not setting the look up table to the mapper, in that case the imageData is displayed correctly (no depth issue).</div><div><br></div><div>without these two lines, I do not have depth issue.</div><div>mapper->SetScalarRange(cmap_-><wbr>lower_bound(), cmap_->upper_bound());<br></div><div><div>mapper->SetLookupTable(cmap_-><wbr>color_table());</div></div><div><br></div><div>I'll further dig into that and let you know if I get closer to any solution.  That same code is working fine on opengl1 backend.</div><div><br></div><div>Thank you all for the help</div><div><br></div></div><div class="m_-6638880294720501558HOEnZb"><div class="m_-6638880294720501558h5"><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Dec 20, 2016 at 5:42 PM, Marcus D. Hanwell <span dir="ltr"><<a href="mailto:marcus.hanwell@kitware.com" target="_blank">marcus.hanwell@kitware.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span>On Tue, Dec 20, 2016 at 12:47 AM, Alexandre Boucher <<a href="mailto:afboucher@gmail.com" target="_blank">afboucher@gmail.com</a>> wrote:<br>
><br>
> I am having a problem using the opengl2 backend with QVTKWidget (I tried Qt 5.4 to 5.7 and vtk 7.0 and 7.1). When looking at a simple vtkImageData for instance some of the faces of the grid are not properly displayed, see image below.  Everything works fine with the opengl1 backend.<br>
><br>
> I also try using QVTKWidget2, but I am getting a crash when the widget call OpenGLInitState().<br>
><br>
> Is there a trick to use Qt and opengl2?<br>
><br>
</span>You don't mention what OS/graphics card you are using. I have been<br>
tracking a problem with OpenGL2 and Mesa/Intel DRI driver (based on<br>
Mesa) with Qt 5. It looks just like this, no working depth buffer. I<br>
proposed a patch that made it work, but it made the NVIDIA-based Linux<br>
systems segfault.<br>
<br>
I am hoping that we can come up with something that will work on both,<br>
but I haven't had time to revisit it since I looked at it in November.<br>
I can dig up the merge request if this sounds like your set up.<br>
<span class="m_-6638880294720501558m_-3028643082142064704HOEnZb"><font color="#888888"><br>
Marcus<br>
</font></span></blockquote></div><br></div>
</div></div></blockquote></div><br></div>
<br>______________________________<wbr>_________________<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/<wbr>opensource/opensource.html</a><br>
<br>
Please keep messages on-topic and check the VTK FAQ at: <a href="http://www.vtk.org/Wiki/VTK_FAQ" rel="noreferrer" target="_blank">http://www.vtk.org/Wiki/VTK_<wbr>FAQ</a><br>
<br>
Search the list archives at: <a href="http://markmail.org/search/?q=vtkusers" rel="noreferrer" target="_blank">http://markmail.org/search/?q=<wbr>vtkusers</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://public.kitware.com/mailman/listinfo/vtkusers" rel="noreferrer" target="_blank">http://public.kitware.com/<wbr>mailman/listinfo/vtkusers</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature">Ken Martin PhD<div>Chairman & CFO<br>Kitware Inc.<br>28 Corporate Drive<br>Clifton Park NY 12065<br>518 371 3971<div><br></div><div><span style="font-size:10pt;font-family:Tahoma,sans-serif">This communication,
including all attachments, contains confidential and legally privileged
information, and it is intended only for the use of the addressee.  Access to this email by anyone else is
unauthorized. If you are not the intended recipient, any disclosure, copying,
distribution or any action taken in reliance on it is prohibited and may be
unlawful. If you received this communication in error please notify us
immediately and destroy the original message. 
Thank you.</span></div></div></div>
</div>