octree-nn / octfusion

OctFusion: Octree-based Diffusion Models for 3D Shape Generation
123 stars 2 forks source link

About thin structures #2

Closed LaFeuilleMorte closed 1 week ago

LaFeuilleMorte commented 2 weeks ago

I've tested your method with unconditional generation. However I found the model tended to produce large smooth surfaces while it's not very good at thin structures. The below are some examples.

Smooth Surfaces: image

Thin structures: image

Can you give me some advices on how to avoid this and maintain high quality when dealing with thin structures. BTW, can this model be scaled up to be able to generate universal kinds of 3D meshes (For example, generate table, chairs and various furnitures using only one diffusion pretrained weights) ? And can we generate textured meshes using this?

wst2001 commented 2 weeks ago

Our model has the ability to generate thin structure (e.g., the chair legs in the figure), but we admitted that it is not good enough (e. g., the chair back), due to the model's insufficient resolution(octree in 64^3 and mesh in 256^3). We have provided category-conditional model and weights (see README), which can generate category-specific meshes in one model. Our model can generate textured meshes, which is presented in our paper. We have not release the code for textured generation and it will come later.

MarcusLoppe commented 2 weeks ago

Our model has the ability to generate thin structure (e.g., the chair legs in the figure), but we admitted that it is not good enough (e. g., the chair back), due to the model's insufficient resolution(octree in 64^3 and mesh in 256^3). We have provided category-conditional model and weights (see README), which can generate category-specific meshes in one model. Our model can generate textured meshes, which is presented in our paper. We have not release the code for textured generation and it will come later.

Do you think this is a issue with SDF or using a higher resolution for the octree/diffusion model can resolve?

I'm not a fan of using SDF with ML since it's probabilistic nature isn't great for small details, and if the SDF value is little bit off it doesn't look great. But for SDF-based models, yours is far the best I've seen. bild

Was the main limitation VRAM issue when you tried to go past 64^3? Also have you experimented with higher octree resolutions to prevent issues like below: bild

wst2001 commented 2 weeks ago

Yes. Experiments on higher resolution (e. g. 1024^3) resquire much more memory and time, since we conduct most of our experiments on Nvidia 4090 with 24GB memory. And They are more complex because we need to add a new stage to generate 256^3 octree. We have conducted an single-category experiment on 1024^3 resolution using A100 and get finer details (Fig. 13 in paper).