[prev in list] [next in list] [prev in thread] [next in thread] 

List:       vtk-developers
Subject:    Re: [vtk-developers] OpenGL2 Updates
From:       Will Schroeder <will.schroeder () kitware ! com>
Date:       2014-12-03 15:38:21
Message-ID: CAEiDrtXCy1Nc_6y_rRAq9k29XyK+XqVAE2DQUBKMDECvrMgLyQ () mail ! gmail ! com
[Download RAW message or body]

[Attachment #2 (multipart/alternative)]


And a Happy Holiday to you too! What a great present, just awesome.... I've
made sure that our PM and supporters at the NIH see this report, they will
be pleased.
W

On Wed, Dec 3, 2014 at 10:15 AM, Ken Martin <ken.martin@kitware.com> wrote:

> 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@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.
>
>
>
> _______________________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Follow this link to subscribe/unsubscribe:
> http://public.kitware.com/mailman/listinfo/vtk-developers
>
>
>


-- 
William J. Schroeder, PhD
Kitware, Inc.
28 Corporate Drive
Clifton Park, NY 12065
will.schroeder@kitware.com
http://www.kitware.com
(518) 881-4902

[Attachment #5 (text/html)]

<div dir="ltr">And a Happy Holiday to you too! What a great present, just awesome.... \
I&#39;ve made sure that our PM and supporters at the NIH see this report, they will \
be pleased.<div>W</div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, \
Dec 3, 2014 at 10:15 AM, Ken Martin <span dir="ltr">&lt;<a \
href="mailto:ken.martin@kitware.com" \
target="_blank">ken.martin@kitware.com</a>&gt;</span> wrote:<br><blockquote \
class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc \
solid;padding-left:1ex"><div lang="EN-US" link="blue" vlink="purple"><div><p \
class="MsoNormal">Hello folks, </p><p class="MsoNormal">  </p><p class="MsoNormal">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.</p><p class="MsoNormal">  </p><p class="MsoNormal">Thanks</p><p \
class="MsoNormal">Ken</p><p class="MsoNormal">  </p><p><span \
style="color:#1f497d"><span>1)<span style="font:7.0pt &quot;Times New Roman&quot;">   \
</span></span></span><span style="color:#1f497d">Fixed a number of depth peeling   \
issues.   It is passing on the systems we are currently testing OpenGL2 \
on.</span></p><p class="MsoNormal"><span style="color:#1f497d">  </span></p><p><span \
style="color:#1f497d"><span>2)<span style="font:7.0pt &quot;Times New Roman&quot;">   \
</span></span></span><span style="color:#1f497d">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.</span></p><p \
class="MsoNormal"><span style="color:#1f497d">  </span></p><p><span \
style="color:#1f497d"><span>3)<span style="font:7.0pt &quot;Times New Roman&quot;">   \
</span></span></span><span style="color:#1f497d">Implemented faster molecular \
rendering, the new code uses imposters and is about 5000 times faster than the old \
OpenGL1 code.</span></p><p><span style="color:#1f497d">  </span></p><p \
class="MsoNormal" style="margin-top:10.0pt;text-indent:.25in"><b><span \
style="font-size:13.0pt;font-family:&quot;Trebuchet \
MS&quot;,&quot;sans-serif&quot;;color:black">PDB ball stick 3CC2 atom (99K atoms plus \
198K bonds)</span></b><b><span style="font-size:18.0pt;font-family:&quot;Times New \
Roman&quot;,&quot;serif&quot;"></span></b></p><p class="MsoNormal" \
style="margin-left:.25in"><span style="font-size:12.0pt;font-family:&quot;Times New \
Roman&quot;,&quot;serif&quot;">  </span></p><p class="MsoNormal" \
style="margin-left:.25in"><span \
style="font-size:11.5pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;;color:black">NVidia \
Windows Laptop</span><span style="font-size:12.0pt;font-family:&quot;Times New \
Roman&quot;,&quot;serif&quot;"></span></p><p class="MsoNormal" \
style="margin-left:.25in"><span \
style="font-size:11.5pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;;color:black">OpenGL \
31.5         29.0</span><span style="font-size:12.0pt;font-family:&quot;Times New \
Roman&quot;,&quot;serif&quot;"></span></p><p class="MsoNormal" \
style="margin-left:.25in"><span \
style="font-size:11.5pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;;color:black">OpenGL2G \
2.65         1.25         (using just new Glyph3D mapper 23x faster)</span><span \
style="font-size:12.0pt;font-family:&quot;Times New \
Roman&quot;,&quot;serif&quot;"></span></p><p class="MsoNormal" \
style="margin-left:.25in"><span \
style="font-size:11.5pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;;color:black">OpenGL2 \
1.33         0.0057   (default use of   imposters 5088x total)</span><span \
style="font-size:12.0pt;font-family:&quot;Times New \
Roman&quot;,&quot;serif&quot;"></span></p><p class="MsoNormal" \
style="margin-left:.25in"><span \
style="font-size:11.5pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;;color:black"><br>Intel \
Windows Laptop</span><span style="font-size:12.0pt;font-family:&quot;Times New \
Roman&quot;,&quot;serif&quot;"></span></p><p class="MsoNormal" \
style="margin-left:.25in"><span \
style="font-size:11.5pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;;color:black">OpenGL \
26.1         24.5</span><span style="font-size:12.0pt;font-family:&quot;Times New \
Roman&quot;,&quot;serif&quot;"></span></p><p class="MsoNormal" \
style="margin-left:.25in"><span \
style="font-size:11.5pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;;color:black">OpenGL2 \
0.422     0.0129</span><span style="font-size:12.0pt;font-family:&quot;Times New \
Roman&quot;,&quot;serif&quot;"></span></p><p><span style="color:#1f497d">  \
</span></p><p><span style="color:#1f497d"><span>4)<span style="font:7.0pt &quot;Times \
New Roman&quot;">           </span></span></span><span style="color:#1f497d">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.</span></p><p><span \
style="color:#1f497d">  </span></p><p><span style="color:#1f497d"><span>5)<span \
style="font:7.0pt &quot;Times New Roman&quot;">           </span></span></span><span \
style="color:#1f497d">Surfaces with Edges were quite slow in OpenGL2, reworked that \
to be much faster.</span></p><p><span style="color:#1f497d">  </span></p><p><span \
style="color:#1f497d"><span>6)<span style="font:7.0pt &quot;Times New Roman&quot;">   \
</span></span></span><span style="color:#1f497d">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.</span></p><p><span style="color:#1f497d">  </span></p><p><span \
style="color:#1f497d"><span>7)<span style="font:7.0pt &quot;Times New Roman&quot;">   \
</span></span></span><span style="color:#1f497d">Added support (and a test) for point \
picking in VTK and fixed up a lingering issue with cell picking.</span></p><p><span \
style="color:#1f497d">  </span></p><p><span style="color:#1f497d"><span>8)<span \
style="font:7.0pt &quot;Times New Roman&quot;">           </span></span></span><span \
style="color:#1f497d">Turned on MPI and parallel for my build and resolved some \
issues related to those.</span></p><p class="MsoNormal">  </p><p><span>9)<span \
style="font:7.0pt &quot;Times New Roman&quot;">           </span></span><span \
style="color:#1f497d">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. </span></p><p class="MsoNormal" \
style="margin-top:10.0pt;text-indent:.25in"><b><span \
style="font-size:13.0pt;font-family:&quot;Trebuchet \
MS&quot;,&quot;sans-serif&quot;;color:black">TestCompositePolyDataMapper2</span></b><b><span \
style="font-size:18.0pt;font-family:&quot;Times New \
Roman&quot;,&quot;serif&quot;"></span></b></p><p class="MsoNormal" \
style="text-indent:.25in"><span \
style="font-size:11.5pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;;color:black">1x64x256 \
(8192 cylinders/datasets 64x128 as 50% are off) </span><span \
style="font-size:12.0pt;font-family:&quot;Times New \
Roman&quot;,&quot;serif&quot;"></span></p><p class="MsoNormal"><span \
style="font-size:12.0pt;font-family:&quot;Times New Roman&quot;,&quot;serif&quot;">  \
</span></p><p class="MsoNormal" style="margin-left:.25in"><span \
style="font-size:11.5pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;;color:black">Res \
18 cylinders (~ 80 triangles/cyl)</span><span \
style="font-size:12.0pt;font-family:&quot;Times New \
Roman&quot;,&quot;serif&quot;"></span></p><p class="MsoNormal" \
style="margin-left:.25in"><span \
style="font-size:11.5pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;;color:black">OpenGL \
0.369     0.043</span><span style="font-size:12.0pt;font-family:&quot;Times New \
Roman&quot;,&quot;serif&quot;"></span></p><p class="MsoNormal" \
style="margin-left:.25in"><span \
style="font-size:11.5pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;;color:black">OpenGL2 \
0.158     0.033</span><span style="font-size:12.0pt;font-family:&quot;Times New \
Roman&quot;,&quot;serif&quot;"></span></p><p class="MsoNormal" \
style="margin-left:.25in"><span style="font-size:12.0pt;font-family:&quot;Times New \
Roman&quot;,&quot;serif&quot;">  </span></p><p class="MsoNormal" \
style="margin-left:.25in"><span \
style="font-size:11.5pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;;color:black">Reactor \
(a bunch o' something no culler)</span><span \
style="font-size:12.0pt;font-family:&quot;Times New \
Roman&quot;,&quot;serif&quot;"></span></p><p class="MsoNormal" \
style="margin-left:.25in"><span \
style="font-size:11.5pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;;color:black">OpenGL \
3.18         0.554</span><span style="font-size:12.0pt;font-family:&quot;Times New \
Roman&quot;,&quot;serif&quot;"></span></p><p class="MsoNormal" \
style="margin-left:.25in"><span \
style="font-size:11.5pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;;color:black">OpenGL2 \
0.08         0.020     </span><span style="font-size:12.0pt;font-family:&quot;Times \
New Roman&quot;,&quot;serif&quot;"></span></p><p class="MsoNormal" \
style="margin-left:.25in"><span style="color:#1f497d">  </span></p><p><span \
style="color:#1f497d"><span>10)<span style="font:7.0pt &quot;Times New Roman&quot;">  \
</span></span></span><span style="color:#1f497d">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.</span></p><p class="MsoNormal"><span style="color:#1f497d">  \
</span></p><p><span style="color:#1f497d"><span>11)<span style="font:7.0pt \
&quot;Times New Roman&quot;">     </span></span></span><span \
style="color:#1f497d">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.</span></p><p><span \
style="color:#1f497d">  </span></p><p><span style="color:#1f497d"><span>12)<span \
style="font:7.0pt &quot;Times New Roman&quot;">     </span></span></span><span \
style="color:#1f497d">Added in support for up to 6 clipping planes in the 3D mapper \
which fixed a couple failing tests.</span></p><p class="MsoNormal">  \
</p><p><span>13)<span style="font:7.0pt &quot;Times New Roman&quot;">     \
</span></span><span style="color:#1f497d">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. </span></p><p class="MsoNormal">  </p><p><span \
style="color:#1f497d"><span>14)<span style="font:7.0pt &quot;Times New Roman&quot;">  \
</span></span></span><span style="color:#1f497d">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.</span></p><p class="MsoNormal"><span \
style="color:#1f497d">  </span></p><p><span style="color:#1f497d"><span>15)<span \
style="font:7.0pt &quot;Times New Roman&quot;">     </span></span></span><span \
style="color:#1f497d">added backface property support, edge flag support, fixed a few \
resource leaks</span></p><p><span style="color:#1f497d">  \
</span></p><p><span>16)<span style="font:7.0pt &quot;Times New Roman&quot;">     \
</span></span><span style="color:#1f497d">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.</span></p><p class="MsoNormal">  \
</p><p><span>17)<span style="font:7.0pt &quot;Times New Roman&quot;">     \
</span></span>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.</p><p class="MsoNormal">  </p><p class="MsoNormal">  </p><p \
class="MsoNormal">Ken Martin PhD</p><p class="MsoNormal">Chairman &amp; CFO</p><p \
class="MsoNormal">Kitware Inc.</p><p class="MsoNormal">28 Corporate Drive</p><p \
class="MsoNormal">Clifton Park NY 12065</p><p class="MsoNormal"><a \
href="mailto:ken.martin@kitware.com" target="_blank"><span \
style="color:blue">ken.martin@kitware.com</span></a></p><p class="MsoNormal"><a \
href="tel:518%20881-4901" value="+15188814901" target="_blank">518 881-4901</a> \
(w)</p><p class="MsoNormal"><a href="tel:518%20371-4573" value="+15183714573" \
target="_blank">518 371-4573</a> (f)</p><p class="MsoNormal">  </p><p \
class="MsoNormal">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.</p><p class="MsoNormal">  </p></div></div> \
<br>_______________________________________________<br> Powered by <a \
href="http://www.kitware.com" target="_blank">www.kitware.com</a><br> <br>
Visit other Kitware open-source projects at <a \
href="http://www.kitware.com/opensource/opensource.html" \
target="_blank">http://www.kitware.com/opensource/opensource.html</a><br> <br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://public.kitware.com/mailman/listinfo/vtk-developers" \
target="_blank">http://public.kitware.com/mailman/listinfo/vtk-developers</a><br> \
<br> <br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div \
class="gmail_signature">William J. Schroeder, PhD<br>Kitware, Inc.<br>28 Corporate \
Drive<br>Clifton Park, NY 12065<br><a \
href="mailto:will.schroeder@kitware.com">will.schroeder@kitware.com</a><br><a \
href="http://www.kitware.com">http://www.kitware.com</a><br>(518) 881-4902</div> \
</div></div>



_______________________________________________
Powered by www.kitware.com

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

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/vtk-developers



[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic