[vtkusers] Odd opacity issue

Gib Bogle g.bogle at auckland.ac.nz
Sat Aug 9 21:47:56 EDT 2014


Hi Kim,

I added the code for depth peeling that was provided at that site, but found that depth peeling was not used by the renderer.  Maybe my graphics card/driver does not support it.  To find out how to determine my card's capabilities, I followed a link there to a program called GLview426.exe.  I am reluctant to run it, though, having been burned before by free software like this.  Do you know if this is still the right way to interrogate the graphics card on Windows?

Thanks
Gib
________________________________
From: Kim Rosenbohm [kim.rosenbohm at posteo.de]
Sent: Sunday, 10 August 2014 11:57 a.m.
To: Gib Bogle; vtkusers at vtk.org
Subject: Re: [vtkusers] Odd opacity issue

Hi Gib.

Proper blending of transparent objects is only possible by rendering them in the correct order.
This can be tricky and if objects or polygons overlap you even won't get away with sorting them...
You probably want depth peeling for order-independent transparency: http://www.vtk.org/Wiki/VTK/Depth_Peeling

Best Regards,

Kim

Am 10.08.2014 01:48, schrieb Gib Bogle:
The problem is simply demonstrated with the opacity example:
http://www.vtk.org/Wiki/VTK/Examples/Cxx/Visualization/Opacity

Adding this line:
  sphereActor->SetPosition(1.0,0.0,0.0);
and setting the opacity of both actors to 0.99 gives an unexpected and unattractive result.

I see that there have been posts about problems with opacity/transparency as far back as 2006.  Maybe there is a solution...
________________________________
From: vtkusers [vtkusers-bounces at vtk.org<mailto:vtkusers-bounces at vtk.org>] on behalf of Gib Bogle [g.bogle at auckland.ac.nz<mailto:g.bogle at auckland.ac.nz>]
Sent: Sunday, 10 August 2014 11:25 a.m.
To: vtkusers at vtk.org<mailto:vtkusers at vtk.org>
Subject: [vtkusers] Odd opacity issue

Hi,
I'm using vtkRenderWindowInteractor (VTK 5.10) in Qt, rendering spheres.  I'm trying to implement a degree of transparency, like this:

actor->GetProperty()->SetOpacity(opacity);

applied to all the spheres.

If opacity is less than 1 the image immediately changes in unexpected ways.  See the two attached images, with opacity = 1.0 and 0.99.  It looks as if spheres have had their positions and sizes changed.  But when I rotate the scene it becomes apparent that something else is happening.  Some of the "foreground" spheres move from left to right (for example) while others apparently in the foreground are moving right to left.  It seems that the order of rendering of the spheres, which normally places the most remote first and the nearest last, has somehow been messed up, so that spheres at the back are being rendered last so that they appear to be the closest.  Maybe the order has been simply reversed, but the visual effect is made more confusing by parallax - my brain is interpreting the bigger spheres as closer.

Is this a well-known issue, and is there a simple way to fix it?

Thanks
Gib



_______________________________________________
Powered by www.kitware.com<http://www.kitware.com>

Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the VTK FAQ at: http://www.vtk.org/Wiki/VTK_FAQ

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/vtkusers


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/vtkusers/attachments/20140810/18b3c32f/attachment.html>


More information about the vtkusers mailing list