cnr-isti-vclab / nexus

Nexus is a c++/javascript library for creation and visualization of a batched multiresolution mesh
GNU General Public License v3.0
213 stars 86 forks source link

GPU cache limit set to 2000 MBs on nxsview #144

Open Zeeraktahir opened 1 year ago

Zeeraktahir commented 1 year ago

Hi @ponchio, great work you have done here. I ran into a problem while running nxsview to visualize a large textured model. Running the nexus on my RTX 3060 laptop (6GB VRAM), It is restricting GPU cache to 2000 MBs. I tried nxsview Heater/Ulco_Model_3.nxz -m 9000 -g 4000 to no avail. Interestingly, we can take the RAM over 10GBs but it limit VRAM cache back to 2GBs. And it seems that texture quality render in nxsview is dependent on GPU. I also tried to rebuilding the nexus source files and passing larger values by default but that also didn't work for GPU value.

image

Great texture quality and 2GB GPU cache feels like bottleneck to the multiresolution model generated by nxsbuild. Any guide or help would be great Thanks!

ponchio commented 1 year ago

2GB of vram ought to be enough for anybody. (cit.)

The interface ram and gpu fields require a maximum value, I raised it.

I think the problem for that kind of dataset is worsened by the depth complexity, hence the GPU cache needs to be higher.

Zeeraktahir commented 1 year ago

Thanks!

I see that QT UI interface was setting maximum values limit for RAM and GPU. I have build nexus using 6000 MBs VRAM maximum limit on my end. Here is the results when I ran nxsview Ulco_Model_3.nxz -m 19000 -g 5500

Heater_8K_Snapshot

I have also recorded my screen while visualization of the model on nxsview. Link to the video (heater model)

Even after increasing the GPU from 5.5 to 6K MBs, GPU cache keeps filling up, my guess is that perhaps we didn't select right parameters for the nexus build. which were nxsbuild Ulco_Model_3.obj -f 4096 -t 512 -q 100 -r 16000 for this particular version

Well, 2GB VRAM is certainly enough most of the models, sadly we are testing on datasets which are crashing regular model viewing softwares like Blender and MeshLab (as they are trying to load the model with textures completely in RAM!)

Nexus was the perfect solution for viewing such large models at good frame rate, we wanted to test on further datasets but they are taking forever to build.

Here is my current model/dataset nxz file Link to NXZ file

Original Model (Heater) along with other models Link to the heater model and other datasets

ponchio commented 1 year ago

Sorry I had some trouble downloding the files and they expired. Could you send me them again (at ponchio@gmail.com)?

Thanks

Zeeraktahir commented 1 year ago

Done 🙌