[vtkusers] Odd opacity issue
Gib Bogle
g.bogle at auckland.ac.nz
Sat Aug 9 21:17:03 EDT 2014
I think I spoke too soon (again). In each time step, sphere actors change position and some are added to or removed from the vtkRenderer. Dealing with that would be a nuisance (I would have to remove all the actors and add them back in the required order each time step), but doable without too much of a performance hit. More serious is the need to reorder the actors when the user rotates the scene. I am not keen to do this.
I will explore depth peeling, but my concern is that it might affect the smoothness of scene rotation.
________________________________
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/ed642035/attachment.html>
More information about the vtkusers
mailing list