<div dir="ltr">Hi,<div><br></div><div>I have a use case that I want to glyph several hundreds of vtkDatasets. However, the frame rate becomes super slow since vtkOpenGLyph3DMapper would call rebuildstructures function for each dataset. With 258 vtkDatasets, it takes more than 4 seconds to render one frame and spends 52% of the time doing rebuilding stuff(Rebuilding the structure 258 times even though nothing new!). I'm thinking to remove <a href="https://gitlab.kitware.com/vtk/vtk/blob/master/Rendering/OpenGL2/vtkOpenGLGlyph3DMapper.cxx#L515">Line 515 in /Rendering/OpenGL2/vtkOpenGLGlyph3DMapper.cxx</a> and pass a flag instead to trigger the rebuilding if a new color is assigned.</div><div><br></div><div><div>--- a/Rendering/OpenGL2/vtkOpenGLGlyph3DMapper.cxx</div><div>+++ b/Rendering/OpenGL2/vtkOpenGLGlyph3DMapper.cxx</div><div>@@ -368,7 +368,7 @@ void vtkOpenGLGlyph3DMapper::Render(vtkRenderer *ren, vtkActor *actor)</div><div> </div><div> // ---------------------------------------------------------------------------</div><div> void vtkOpenGLGlyph3DMapper::Render(</div><div>-  vtkRenderer* ren, vtkActor* actor, vtkDataSet* dataset)</div><div>+  vtkRenderer* ren, vtkActor* actor, vtkDataSet* dataset, bool colorChanged)</div><div> {</div><div>   vtkIdType numPts = dataset->GetNumberOfPoints();</div><div>   if (numPts < 1)</div><div>@@ -500,8 +500,15 @@ void vtkOpenGLGlyph3DMapper::Render(</div><div> </div><div>   // rebuild all entries for this DataSet if it</div><div>   // has been modified</div><div>   if (subarray->BuildTime < dataset->GetMTime() ||</div><div>-      subarray->BuildTime < this->GetMTime() ||</div><div>+            colorChanged ||</div><div>       subarray->BuildTime < this->BlockMTime)</div><div>   {</div><div>     rebuild = true;</div></div><div><br></div><div><br clear="all"><div>Ideas and suggestions?</div><div><br></div><div>Thanks!</div>-- <br><div class="gmail-m_2221781247527975576gmail_signature"><div dir="ltr"><div><div dir="ltr">Best regards<div>Haocheng</div><div><br></div><div>Haocheng LIU</div><div><span style="color:rgb(0,0,0);font-size:12.8px">Kitware, Inc.</span><br style="color:rgb(0,0,0);font-size:12.8px"><span style="color:rgb(0,0,0);font-size:12.8px">R&D Engineer</span><br style="color:rgb(0,0,0);font-size:12.8px"><span style="color:rgb(0,0,0);font-size:12.8px">21 Corporate Drive</span><br style="color:rgb(0,0,0);font-size:12.8px"><span style="color:rgb(0,0,0);font-size:12.8px">Clifton Park, NY 12065-8662</span><br style="color:rgb(0,0,0);font-size:12.8px"><span style="color:rgb(0,0,0);font-size:12.8px">Phone: </span><a href="tel:(518)%20881-4421" value="+15188814443" style="color:rgb(17,85,204);font-size:12.8px" target="_blank">518-881-4421</a><br></div></div></div></div></div>
</div></div>