<div dir="ltr"><br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><span class="gmail-">On 28 November 2016 at 15:40, David E DeMarle wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div dir="ltr">Responses inline. Mostly though, make sure you are using the "OpenGL2" rendering backend, which is the default for 7.0 and 7.1.<br></div></blockquote><div><br></div><div><br></div></span><div>I am using VTK 7.0 through the Python bindings (the official ones from the Kitware website here:</div><div><br></div><div><a href="http://www.vtk.org/download/" target="_blank">http://www.vtk.org/download/</a><br></div><div><br></div><div><br></div><div>So I was assuming that the rendering backend was already OpenGL2... is there any way to check if this is really the case?</div><div><br></div></div></div></div></blockquote><div><br></div><div>The 7.x binaries were made with OpenGL2, so I'm extremely surprised at the poor rendering speed.</div><div><br></div><div>In 7.0 not easily. If the package has a libvtkRenderingOpenGL2-7.0.1.dylib file in it, then it is OpenGL2.</div><div><br></div><div>In 7.1 you can say:</div><div>rw = vtk.vtkRenderWindow()</div><div>print rw.GetRenderingBackend()</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div></div><div>Also, I have tried to load my dataset in ParaView, and ParaView seems to be doing some kind of black magic on my vtkUnstructuredGrid as I get these kind of messages when I load the vtk file:</div><div><br></div><div>
<p style="margin:0px"><span style="font-family:courier;font-size:8.25pt;color:rgb(0,0,0)">Warning: In C:\bbd\df0abce0\source-<wbr>paraview\VTK\Rendering\<wbr>VolumeOpenGL2\<wbr>vtkOpenGLProjectedTetrahedraMa<wbr>pper.cxx, line 251</span></p>
<p style="margin:0px"><span style="font-family:courier;font-size:8.25pt;color:rgb(0,0,0)">vtkOpenGLProjectedTetrahedraMa<wbr>pper (000000000D3CAA60): Missing FBO support. The algorithm may produce visual artifacts.</span></p>
<p style="margin:0px;font-family:courier;font-size:8.25pt;color:rgb(0,0,0)"><br></p><p style="margin:0px;font-family:courier;font-size:8.25pt;color:rgb(0,0,0)"><br></p><p style="margin:0px;font-family:courier;font-size:8.25pt;color:rgb(0,0,0)"><br></p><p style="margin:0px;font-family:courier;font-size:8.25pt;color:rgb(0,0,0)"><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small">Which, I believe, is telling me that ParaView is not doing what I am doing but maybe using some kind of volume-based rendering - when I rotate the grid the (almost cube-shaped) cells becomes subdivided in small triangles, when I stop interacting with them they go back to their normal appearance. It would be nice to know what ParaView is doing though, and also what "FBO support" means :-). I also noticed that ParaView is slightly faster in changing the displayed property - maybe 2 or 3 times faster than my bare-bone script.</span></p><p style="margin:0px;font-family:courier;font-size:8.25pt;color:rgb(0,0,0)"><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small"><br></span></p></div></div></div></div></blockquote><div><br></div><div>The warning is saying that if you change from surface to volume rendering mode, you may run into trouble. ParaView makes a number of display pipelines behind the scenes that will become active only when change display types. Here it is complaining about one of them</div><div><br></div><div>The subdivision you see is quadric clustering that paraview switches into when interacting with the camera. See LOD threshold in settings/preferences to turn it off.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div><p style="margin:0px;font-family:courier;font-size:8.25pt;color:rgb(0,0,0)"><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small"></span></p><p style="margin:0px;font-family:courier;font-size:8.25pt;color:rgb(0,0,0)"><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small"> </span><br></p></div><div><div class="gmail-h5"><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><span class="gmail-m_8906617077897442594gmail-">On Mon, Nov 28, 2016 at 7:35 AM, Andrea Gavana <span dir="ltr"><<a href="mailto:andrea.gavana@gmail.com" target="_blank">andrea.gavana@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div dir="ltr"><font face="monospace, monospace">Dear All,</font><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace"> I am working with some stuff coming out of CFD simulations, and in the current work the simulator produces a 3D grid (unstructured grid made of hexahedrons). The full grid is about 4 million cells, but due to other settings in the simulator the number of "active" cells in the simulation ends up being "only" 270,000. In order to visualize all this, I create a vtkUnstructuredGrid to hold the full grid, use a vtkThreshold to remove the "inactive" cells and then use a vtkDataSetMapper to visualize the resulting active grid:</font></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace">vtkUnstructuredGrid --> vtkThreshold --> vtkDataSetMapper --> vtkActor<br></font></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace">However, the rendering speed for the 270,000 cells grid is quite low - it takes about one second to display a new property by using SetScalars on the output of vtkThreshold. So I thought of using a vtkDataSetSurfaceFilter on the output of vtkThreshold to try and speed up the rendering. So, the current visualization strategy I have implemented is the following:</font></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace">vtkUnstructuredGrid --> vtkThreshold --> vtkDataSetSurfaceFilter --> vtkPolyDataMapper --> vtkActor</font></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace">This is still as slow as my first approach, and I also have a couple of questions - which stems from my ignorance in VTK things:</font></div><div><font face="monospace, monospace"><br></font></div></div></blockquote><div><br></div></span><div>DataSetMapper internally does vtkDataSetSurfaceFilter->vtkPo<wbr>lyDataMapper when given something other than PolyData, so not surprising that it isn't faster.<br> <br></div><span class="gmail-m_8906617077897442594gmail-"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><font face="monospace, monospace"></font></div><div><font face="monospace, monospace">1. When I load (from the simulator outputs) a new property (cell-based) and I assign its values to the original vtkUnstructuredGrid (by using SetScalars on it), do all the filters (vtkThreshold and vtkDataSetSurfaceFilter) need to be re-run? If yes, why? I am not changing the active/inactive cells nor the geometry of the grid, only assigning different scalars. And, if yes, is there any way to tell the pipeline: "look, I've only changed the scalars, there's no need to re-run all the thresholds and surface filters *again*"?</font></div><div><font face="monospace, monospace"><br></font></div></div></blockquote><div><br></div></span><div>Yes they do, since the Executive classes' Modified time tracking is not fine grained enough to know the difference, and few if any of the filters would know how to update just the changed portions.<br> <br></div><span class="gmail-m_8906617077897442594gmail-"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><font face="monospace, monospace"></font></div><div><font face="monospace, monospace">2. Is there any other pipeline style or visualization technique in VTK or any settings whatsoever that could bring down the rendering time (memory is not that much of a concern)? Basically, what I have a the moment - in terms of timing - is as follows:</font></div><div><font face="monospace, monospace"><br></font></div></div></blockquote><div><br></div></span><div>Yes, use OpenGL"2". Modern OpenGL programming techniques make it up to hundreds of times faster than the Legacy fixed function "OpenGL" backend.<br> <br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><span class="gmail-m_8906617077897442594gmail-"><div dir="ltr"><div><font face="monospace, monospace"></font></div><div><div><font face="monospace, monospace">Reading data from simulator: 0.042 seconds</font></div><div><font face="monospace, monospace">Create VTK array with data : 0.002 seconds</font></div><div><font face="monospace, monospace">Call to SetScalars : 0.000 seconds</font></div><div><font face="monospace, monospace">Create Lookup Table : 0.001 seconds</font></div><div><font face="monospace, monospace">Render on screen : about 1 second</font></div><div><br></div></div><div><br></div><div><font face="monospace, monospace">Thank you in advance for any suggestion, my apologies for the long message.</font></div><span class="gmail-m_8906617077897442594gmail-m_-1709261349134371923HOEnZb"><font color="#888888"><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace">Andrea.</font></div></font></span></div>
<br></span>______________________________<wbr>_________________<br>
Powered by <a href="http://www.kitware.com" rel="noreferrer" target="_blank">www.kitware.com</a><br>
<br>
Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html" rel="noreferrer" target="_blank">http://www.kitware.com/opensou<wbr>rce/opensource.html</a><br>
<br>
Please keep messages on-topic and check the VTK FAQ at: <a href="http://www.vtk.org/Wiki/VTK_FAQ" rel="noreferrer" target="_blank">http://www.vtk.org/Wiki/VTK_FA<wbr>Q</a><br>
<br>
Search the list archives at: <a href="http://markmail.org/search/?q=vtkusers" rel="noreferrer" target="_blank">http://markmail.org/search/?q=<wbr>vtkusers</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://public.kitware.com/mailman/listinfo/vtkusers" rel="noreferrer" target="_blank">http://public.kitware.com/mail<wbr>man/listinfo/vtkusers</a><br>
<br></blockquote></div><br></div></div>
</blockquote></div></div></div><br></div></div>
</blockquote></div><br></div></div>