<div dir="ltr">Hi folks,<div><br></div><div>Just wanted to share an improvement to VTK's transparency rendering.</div><div><br></div><div>We've just merged[1] a new order-independent translucent render pass implementation for the OpenGL2 backend. Dual depth peeling[2] builds on the standard depth peeling algorithm by simultaneously peeling fragments from both the front and the back of the translucent geometry, blending them appropriately to compose the final image.</div><div><br></div><div>In benchmarking a very large scene (10M triangles) with high depth complexity, the new implementation doubled the framerate compared to standard peeling (52% of the standard peeling time). The scene took 40+ geometry passes with standard depth peeling to get a perfect image, while the dual algorithm accomplished the same in 20 passes. The new implementation supports the same parameters as the old one (max number of peels and target occlusion ratio) and will be used automatically when depth peeling is enabled in vtkRenderer with the OpenGL2 backend.</div><div><br></div><div>The catch is that it requires floating point texture support, which are omitted from many packaged mesa drivers due to licensing issues. In these cases, the renderer will fallback to the old standard peeling implementation gracefully.</div><div><br></div><div>If anyone notices any blending issues with the new code please ping the mailing list.</div><div><br></div><div>Cheers, </div><div>Dave </div><div><br></div><div>[1] <a href="https://gitlab.kitware.com/vtk/vtk/merge_requests/1409">https://gitlab.kitware.com/vtk/vtk/merge_requests/1409</a></div><div>[2] <a href="http://developer.download.nvidia.com/SDK/10/opengl/screenshots/samples/dual_depth_peeling.html">http://developer.download.nvidia.com/SDK/10/opengl/screenshots/samples/dual_depth_peeling.html</a></div></div>