MATLAB Answers

Multi-resolution technique for a large 3-D mesh

3 views (last 30 days)
Affan on 15 Jul 2015
Commented: Walter Roberson on 17 Jul 2015
I was hoping if someone could help me point to the right direction when it comes to visualizing large 3D point clouds without downsampling in MATLAB.The large 3-D points clouds will ultimately be converted to mesh for visualization. Now I have looked up functions like scatter3 and fscatter3. However they deal with downsampling data. I want to preserve all the points in my data. I have over 100 million points. I understand that there is no possible way to show that many pixels on a desktop screen. However I was wondering if there was a technique to focus into the data as you zoom into it (like the tile zoom in Google Maps). For instance the mesh will have higher resolution as you zoom in further into the mesh. I looked up and found that "plot (Big)" was available for 2D data. I am wondering if there is a similar library for a 3D mesh? Apologies if this question sounds trivial.

Answers (1)

Ghada Saleh
Ghada Saleh on 17 Jul 2015
Hi Affan,
I understand that you would like to plot a high resolution 3D mesh using large number of points. You will need to build a function that have similar functionality to "plot (Big)" but for 3D. Basically, you will treat the 'rendering of the data' separately from the 'processing of the data'. The function should do the following:
  1. Downsample the 3D data. You can use scatteredInterpolant class to downsample your data.
  2. Render your surface at a low resolution using the downsampled data.
  3. Program the zoom mode callbacks to re-render the surface at higher resolution which get activated when a user zoom in a particular area of the mesh.
Note that, since you are zooming in on a smaller surface, the number of data points required to re-render the mesh in high resolution would be less than the total original data points.
I hope this helps,
  1 Comment
Walter Roberson
Walter Roberson on 17 Jul 2015
I agree, the way to go is to reprogram the zoom callbacks, and use the current information about the xlim and ylim to extract a portion of the data and render that.

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!