lzhengning / SubdivNet

Subdivision-based Mesh Convolutional Networks.
MIT License
251 stars 34 forks source link

Data preprocessing #29

Closed lykius closed 2 years ago

lykius commented 2 years ago

I'm trying to use your script datagen_maps.py to preprocess some meshes in order to feed them to SubDivNet. The meshes are obtained with marching cubes and I tried different resolutions to get meshes with different number of vertices/faces. The preprocessing fails in the decimate() function here, without any meaningful error (at least that I can understand).

Do you have any suggestion? Is there any special requirement for the meshes in order to be able to preprocess them?

Thanks in advance!

lzhengning commented 2 years ago

Hi @lykius,

Could you please show some examples from your meshes so that I can have some clues?

Also, you can try genTrainData_slow.m in NeuralSubdivision. It may work in your case.

lykius commented 2 years ago

Hi @lzhengning, Thanks for the quick response!

You can find some examples here. The folder marching_cubes_32 contains meshes reconstructed with marchin cubes on a grid with resolution 32^3, while the folder marching_cubes_64 with resolution 64^3. It seems that the preprocessing is working on the 32^3 meshes now (maybe the problem was that they were not watertight during my first try?) but still no luck on the 64^3 meshes.

Let me know if you get any useful insight! Thanks!

lzhengning commented 2 years ago

Sorry that I forgot to further reply to your question.

I have try the remeshing script to a few of your provided meshes. The algorithm seems Okay in my cases.

before remeshing:

截屏2022-05-19 16 23 52

after remeshing:

截屏2022-05-19 16 23 47

However, the scripts is really slow to process the 64^3 meshes. There is a timeout configuration in the make_MAPS_dataset function. Enlarging timeout will stop the scripts from early exiting. However, I would suggest to simplify the inputs before remeshing rather than consuming more time.