<div dir="ltr">Hi Richard,<div><br></div><div>Does your OpenGL implementation do anything special to "clip out" the stationary data?<br></div><div><br></div><div>I'm wondering whether the slowness is due to 1) the time taken to load the data onto the GPU or 2) the time taken for the GPU to render the polygons after they're in GPU memory. I'm assuming that both VTK and your OpenGL implementation do #2 on every render, since that is typical.</div><div><br></div><div>VTK only reloads data onto the GPU when the data changes, but if something goes wrong and static data is re-loaded on every render, there is a huge performance hit. I believe that VTK's new OpenGL2 backend temporarily had some issues with unnecessarily reloading data, but those issues were fixed for VTK 7.0.0.rc1. Are you using the OpenGL2 back end? And what version of VTK?</div><div><br></div><div>The vtkActor::Render() method should only be called by VTK itself. Applications call vtkRenderWindow::Render().</div><div><br></div><div> - David</div><div><br></div><div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Jan 12, 2016 at 9:32 PM, Richard Frank <span dir="ltr"><<a href="mailto:rickfrank@me.com" target="_blank">rickfrank@me.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
Hi,<br>
<br>
We are moving a small arrow actor around 3D space driven by data from a sensor, with another somewhat dense polygon model held stationary. We are moving the actor with setusertransform.<br>
<br>
We are only getting about 10 fps. An OpenGL implementation with the same data gets 50fps.<br>
<br>
What might we be doing wrong? It seems that the call to renderwindow->Render() is just drawing everything without clipping out data that doesn't need to be updated.....<br>
<br>
Also, what is the vtkActor::Render() method for? It seems to perform all the OpenGL calls but at the end nothing is drawn on the screen. Is that only to be called from within renderwindow->Render()?<br>
<br>
Our code uses a timer to read the data from the sensor, and parse the data, and then move the actor.<br>
<br>
Thanks,<br>
<br>
Rick<br></blockquote></div></div></div></div>