<div dir="ltr">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.<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"><<a href="mailto:ken.martin@kitware.com" target="_blank">ken.martin@kitware.com</a>></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 "Times New Roman""> </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 "Times New Roman""> </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 "Times New Roman""> </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:"Trebuchet MS","sans-serif";color:black">PDB ball stick 3CC2 atom (99K atoms plus 198K bonds)</span></b><b><span style="font-size:18.0pt;font-family:"Times New Roman","serif""></span></b></p><p class="MsoNormal" style="margin-left:.25in"><span style="font-size:12.0pt;font-family:"Times New Roman","serif""> </span></p><p class="MsoNormal" style="margin-left:.25in"><span style="font-size:11.5pt;font-family:"Arial","sans-serif";color:black">NVidia Windows Laptop</span><span style="font-size:12.0pt;font-family:"Times New Roman","serif""></span></p><p class="MsoNormal" style="margin-left:.25in"><span style="font-size:11.5pt;font-family:"Arial","sans-serif";color:black">OpenGL 31.5 29.0</span><span style="font-size:12.0pt;font-family:"Times New Roman","serif""></span></p><p class="MsoNormal" style="margin-left:.25in"><span style="font-size:11.5pt;font-family:"Arial","sans-serif";color:black">OpenGL2G 2.65 1.25 (using just new Glyph3D mapper 23x faster)</span><span style="font-size:12.0pt;font-family:"Times New Roman","serif""></span></p><p class="MsoNormal" style="margin-left:.25in"><span style="font-size:11.5pt;font-family:"Arial","sans-serif";color:black">OpenGL2 1.33 0.0057 (default use of imposters 5088x total)</span><span style="font-size:12.0pt;font-family:"Times New Roman","serif""></span></p><p class="MsoNormal" style="margin-left:.25in"><span style="font-size:11.5pt;font-family:"Arial","sans-serif";color:black"><br>Intel Windows Laptop</span><span style="font-size:12.0pt;font-family:"Times New Roman","serif""></span></p><p class="MsoNormal" style="margin-left:.25in"><span style="font-size:11.5pt;font-family:"Arial","sans-serif";color:black">OpenGL 26.1 24.5</span><span style="font-size:12.0pt;font-family:"Times New Roman","serif""></span></p><p class="MsoNormal" style="margin-left:.25in"><span style="font-size:11.5pt;font-family:"Arial","sans-serif";color:black">OpenGL2 0.422 0.0129</span><span style="font-size:12.0pt;font-family:"Times New Roman","serif""></span></p><p><span style="color:#1f497d"> </span></p><p><span style="color:#1f497d"><span>4)<span style="font:7.0pt "Times New Roman""> </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 "Times New Roman""> </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 "Times New Roman""> </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 "Times New Roman""> </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 "Times New Roman""> </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 "Times New Roman""> </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:"Trebuchet MS","sans-serif";color:black">TestCompositePolyDataMapper2</span></b><b><span style="font-size:18.0pt;font-family:"Times New Roman","serif""></span></b></p><p class="MsoNormal" style="text-indent:.25in"><span style="font-size:11.5pt;font-family:"Arial","sans-serif";color:black">1x64x256 (8192 cylinders/datasets 64x128 as 50% are off) </span><span style="font-size:12.0pt;font-family:"Times New Roman","serif""></span></p><p class="MsoNormal"><span style="font-size:12.0pt;font-family:"Times New Roman","serif""> </span></p><p class="MsoNormal" style="margin-left:.25in"><span style="font-size:11.5pt;font-family:"Arial","sans-serif";color:black">Res 18 cylinders (~ 80 triangles/cyl)</span><span style="font-size:12.0pt;font-family:"Times New Roman","serif""></span></p><p class="MsoNormal" style="margin-left:.25in"><span style="font-size:11.5pt;font-family:"Arial","sans-serif";color:black">OpenGL 0.369 0.043</span><span style="font-size:12.0pt;font-family:"Times New Roman","serif""></span></p><p class="MsoNormal" style="margin-left:.25in"><span style="font-size:11.5pt;font-family:"Arial","sans-serif";color:black">OpenGL2 0.158 0.033</span><span style="font-size:12.0pt;font-family:"Times New Roman","serif""></span></p><p class="MsoNormal" style="margin-left:.25in"><span style="font-size:12.0pt;font-family:"Times New Roman","serif""> </span></p><p class="MsoNormal" style="margin-left:.25in"><span style="font-size:11.5pt;font-family:"Arial","sans-serif";color:black">Reactor (a bunch o’ something no culler)</span><span style="font-size:12.0pt;font-family:"Times New Roman","serif""></span></p><p class="MsoNormal" style="margin-left:.25in"><span style="font-size:11.5pt;font-family:"Arial","sans-serif";color:black">OpenGL 3.18 0.554</span><span style="font-size:12.0pt;font-family:"Times New Roman","serif""></span></p><p class="MsoNormal" style="margin-left:.25in"><span style="font-size:11.5pt;font-family:"Arial","sans-serif";color:black">OpenGL2 0.08 0.020 </span><span style="font-size:12.0pt;font-family:"Times New Roman","serif""></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 "Times New Roman""> </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 "Times New Roman""> </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 "Times New Roman""> </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 "Times New Roman""> </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 "Times New Roman""> </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 "Times New Roman""> </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 "Times New Roman""> </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 "Times New Roman""> </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 & 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>