Performance difference caused by local rendering and remote rendering

Hello, I am testing the web client performance using VTK as server in remote mode. We read a obj model in the local file which has 1 billion triangle faces and got 3 fps. But when we rendered the same model with vtk renderer(not in remote mode), the fps is more than 10000. It just shocked me. So do you know the reason why we get the different performance. Thank you very much.

Are you using mesa for rendering or else? How big is the picture that you send over the network when you do remote rendering and that you are getting 3 fps?

I would say we need more informations in order to figure out what is happening here. With remote rendering we tend to limit the fps to 30 to prevent network overload.

In general we get 20 fps over DSL across the US with reasonable screen size (HD not 4k).

Hi Jourdain, thank you for your reply.
The size of the picture is 1080p.We tested the performance of remote rendering in local area network(in fact, use the site http://localhost:8080/).
And we rendered the same model with vtk renderer(not in remote mode) in 1080p size.
Thank you very much.

How did you setup your server? Build, setup, run? So far I don’t have enough to provide any guidance.

Hi Jourdain, thank you for your help.

  • About visualizer, I didn’t build or setup the server. I just run the visualizer in ParaView-5.9.0-MPI-Windows-Python3.8-msvc2017-64bit file with this codes:
    .\bin\pvpython.exe share\paraview-5.9\web\visualizer\server\ --content share\paraview-5.8\web\visualizer\www\ --port 8080

  • About vtk remote rendering, we modified the ParaViewWeb-SimpleDemo project, and build and run it with the recommended command:

$ cd js
$ npm install
$ npm run build
$ npm start
  • About vtk(local) rendering, I imported the vtk package in pycharm IDE and wrote the scripts in python.

With your help, I did some tests about vtk(local) rendering, vtk remote rendering and visualizer remote rendering.
Here are the results.
Test condition:

  • Hardware condition:RTX 3090(24GB), 64GB RAM, Intel® Core™ i9-10900K CPU @ 3.70GHz, 1 TB(220 GB available) SSD;
  • Model scale: 5700.obj, with 57 milion triangle faces, the 5700.obj file is 6.08GB. We copied it in renderer to build a scene with about 114 million triangle faces;
  • Remote rendering: in local area network environment(one pc);

Test results:

  • vtk(local) rendering: 1000-10000 FPS, 36.6GB RAM usage, picture size 3127*1139;
  • vtk remote rendering: 2-3 FPS, 36.9GB RAM usage, picture size 3127*1139;
  • visualizer remote rendering: 30+ FPS, 36.3GB RAM usage, picture size 3127*1139;

As for the huge difference between vtk remote rendering and visualizer remote rendering in FPS, I think the reason is that visualizer has done some optimizations. Such as limite the Max interactive server FPS, reduce the interactive image quality(JPEG), reduce the interactive image size, and reduce the number of mouse event throttling pre second, etc.

All in all, thank you for helping me all the time. I am more than appreciated.

That example is a better one to follow which is more modern than Visualizer and will give you the same performances.

Great, thank you!
By the way, as for the judgement above, we have a different speculation. We used the same 4 optimizations when testing the vtk romote rendering project, but still get 2~3 FPS.

So I guess that the factor is the architectural difference between vtk remote rendering and visualizer remote rendering which caused the FPS difference.

However, I can’t point out the specific reason. If you have some opinions, please write and tell me.
Thanks a million!

The example given above has a VTK server available as well. I’m not sure what you are doing that might induce such difference.