lucasw / rviz_textured_quads

RVIZ Plugin: Displays textured images in 3D space
54 stars 28 forks source link

Very low frame rate for high resolution images #16

Open JordySehn opened 4 years ago

JordySehn commented 4 years ago

First of all, just want to say great work! This is a really useful plugin!

I've adapted your plugin to use for displaying static high resolution "satellite esk" overhead photographs of some urban environment that I mapped. The purpose is to use in a navigation system as an overlay with the static obstacle maps so that you can get a better perspective of where you are navigating in the the real world.

The size of the terrain is quite large; about 337m by 739m in RViz. Using a low resolution photo (461x1013) pixels, I am able to display in RViz with no dropped frames. However the quality of the photo is not great. I would like to be able to use the full 1 to 1 scale high resolution map (3370x7390 pixels), but there is significant dropped frames and delay at this resolution, or really any increase in resolution beyond the 461x1013 I was using before.

Not expecting a fix or anything as I know I am not using this in its intended application, but wondered if you had any thoughts on improving the performance. I wondered if splitting up the picture into a few different tiles (A mesh display for each) would help at all? It also may be worth noting I really am only sending a single image message one time only on startup.

Bonus points if you know of a way to add transparency to the mesh, I would also like to be able to see the map_server maps slightly underneath In RViz if that is even possible.

lucasw commented 4 years ago

Possibly that is larger than the maximum texture size your gpu supports- and then Ogre or the gpu driver is doing something that works but is very slow (maybe scaling it down to fit in software- is it actually showing all the detail?).

There should be a way to query that size but I'm not seeing it right now.

Tiling the image ought to help.

Another approach is to texture a large rectangle and load that as a mesh resource, and not use this plugin at all if you aren't updating the image. Possibly transparency will work there.

JordySehn commented 4 years ago

Hi Lucas,

Thanks for your comments, I will give some some of those things a try. Interesting idea with the mesh resource.

JordySehn commented 4 years ago

Using the mesh resource from a textured image plane made in blender seemed to work considerably better, thanks for the help! I still plan on using your plugin for future projects, it is quite useful!

Cheers

reygago commented 4 years ago

First of all, just want to say great work! This is a really useful plugin!

I've adapted your plugin to use for displaying static high resolution "satellite esk" overhead photographs of some urban environment that I mapped. The purpose is to use in a navigation system as an overlay with the static obstacle maps so that you can get a better perspective of where you are navigating in the the real world.

The size of the terrain is quite large; about 337m by 739m in RViz. Using a low resolution photo (461x1013) pixels, I am able to display in RViz with no dropped frames. However the quality of the photo is not great. I would like to be able to use the full 1 to 1 scale high resolution map (3370x7390 pixels), but there is significant dropped frames and delay at this resolution, or really any increase in resolution beyond the 461x1013 I was using before.

Not expecting a fix or anything as I know I am not using this in its intended application, but wondered if you had any thoughts on improving the performance. I wondered if splitting up the picture into a few different tiles (A mesh display for each) would help at all? It also may be worth noting I really am only sending a single image message one time only on startup.

Bonus points if you know of a way to add transparency to the mesh, I would also like to be able to see the map_server maps slightly underneath In RViz if that is even possible.

Nice application! I'm thinking about the same use for an indoor mapping view in Rviz, for testing. Please share your work...