[vtk-developers] OpenGL2 Updates

Ken Martin ken.martin at kitware.com
Wed Dec 3 10:15:02 EST 2014


Hello folks,



I just wanted to provide some updates on what has been happening on the
polygonal side of the OpenGL2 backend. First a quick clarification on
naming. OpenGL2 is just a placeholder and hopefully at some point (years
away?) we will remove the old OpenGL directory and rename this to just
OpenGL. The 2 does not mean it is specific to OpenGL 2.0 as the backend is
being designed to work with 2.1, 3.2, ES 2.0, ES 3.0, etc in the long run.
Timings reported are for first frame and then subsequent frames. The
following updates are a bit terse but I wanted to get something out. If you
have questions on some of them just let me know and I’ll try to go into
more details.



Thanks

Ken



1)      Fixed a number of depth peeling  issues.  It is passing on the
systems we are currently testing OpenGL2 on.



2)      Spent a lot of time working on cleaning up the dashboard. We are
now down to around 10 failures out of 1800 tests on most systems. On my
development system it is down to 4 failures two of which I think need new
valid images for valid reasons, one is a lighting issue I know about and
just need to decide how to handle, and the last is just odd.



3)      Implemented faster molecular rendering, the new code uses imposters
and is about 5000 times faster than the old OpenGL1 code.



*PDB ball stick 3CC2 atom (99K atoms plus 198K bonds)*



NVidia Windows Laptop

OpenGL                31.5     29.0

OpenGL2G           2.65     1.25     (using just new Glyph3D mapper 23x
faster)

OpenGL2              1.33     0.0057  (default use of  imposters 5088x
total)


Intel Windows Laptop

OpenGL                26.1     24.5

OpenGL2              0.422   0.0129



4)      Reworked a lot of the lighting code in OpenGL2. Switched to the
Blinn-Phong lighting model as that matches the old pipeline and is a tad
faster.



5)      Surfaces with Edges were quite slow in OpenGL2, reworked that to be
much faster.



6)      Worked with Tim Thirion to add OpenGL ES 3.0 support for VTK.  We
will need to at some point try turning on the volume rendering code and see
if that works on iOS. The OpenGLES testing is very limited modules.



7)      Added support (and a test) for point picking in VTK and fixed up a
lingering issue with cell picking.



8)      Turned on MPI and parallel for my build and resolved some issues
related to those.



9)      Thanks to Sandia/Bob O/Juda  vtkCompositePolyDataMapper2 has been
converted to the OpenGL2 backend and the performance looks really good. As
this class had no tests in VTK I added a test for it.

*TestCompositePolyDataMapper2*

1x64x256 (8192 cylinders/datasets 64x128 as 50% are off)



Res 18 cylinders (~ 80 triangles/cyl)

OpenGL    0.369   0.043

OpenGL2  0.158   0.033



Reactor     (a bunch o’ something no culler)

OpenGL    3.18     0.554

OpenGL2  0.08     0.020



10)   The RenderPasses were converted over to OpenGL2, including Gaussian,
Sobel, and DepthPeeling.  This enabled us to clean up the depth peeling
code in Renderer to just delegate it to the renderpass; a much cleaner
solution. We still have ShadowMap/Baker passes to convert. We also created
a new RenderStepsPass class to make using RenderPasses easier as the old
approach involved quite a bit of gluing together the steps. Converted the
GuassianBlur test to use this new class.



11)   RenderingParallel and MPI has been converted to work with OpenGL2.
It compiles and passes a number of tests but I believe there are probably
issues lurking in there to deal with that ParaView will hit.



12)   Added in support for up to 6 clipping planes in the 3D mapper which
fixed a couple failing tests.



13)   VTK is building with iOS and has a working multitouch example. Also
setup iOS dashboards for ES 2.0 and ES 3.0 to verify that iOS is at least
building.



14)   Marcus worked through a number of build issues to get Paraview built
with the new backend.  Lots of various issues with missing classes or
module changes etc but it is getting there. He also worked on mesa issues
with the new back end.



15)   added backface property support, edge flag support, fixed a few
resource leaks



16)   addressing VTK’s glyphing performance. Bob O had a nice test case he
made for Nuclear Energy that used multiple glyph sources and lots of glyphs
(135K to 1.5 million glyphs).  We were able to update the glyph mapper to
be about 20 times faster than the old OpenGL. What was rendering at 1 frame
a second is now very interactive. Tested on Windows/Mac/Intel/NVidia/ATI.
This is done using OpenGL instanced rendering.



17)   Android has both a Native and Java example working. We need to get a
dashboard setup in the future to at least make sure it continues to
compile.  Once we have that we will probably try to extend it to at least
have a burn test run etc.





Ken Martin PhD

Chairman & CFO

Kitware Inc.

28 Corporate Drive

Clifton Park NY 12065

ken.martin at kitware.com

518 881-4901 (w)

518 371-4573 (f)



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.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/vtk-developers/attachments/20141203/c8b1c7a8/attachment-0001.html>


More information about the vtk-developers mailing list