NVlabs / nvdiffmodeling

Differentiable rasterization applied to 3D model simplification tasks
Other
455 stars 30 forks source link

How to combine with automatic face reduction #24

Open Lucklycat opened 1 year ago

Lucklycat commented 1 year ago

Thank you very much for your work. Your project is great.

In the article, most of your optimization is based on a basic guess that there are fewer triangles obtained through other software (such as Simplygon),

Can we combine optimization and automatic face reduction, set the number of triangles after simplification, and automatically simplify the face and optimize the model after having a high modulus target?

The way I think of at present is to combine the traditional surface reduction algorithm, such as QEM, and optimize the model again after deleting several points each time. This will be very slow. Do you have any better experience? I hope you can give some suggestions

jmunkberg commented 1 year ago

One option may be to use nvdiffrec or nvdiffrecmc which work without an initial guess for topology. You can play with the grid resolution to reach different triangle counts of the mesh.

As you point out nvdiffmodeling works fine if you have a good simplified mesh with reasonable topology, from e.g., Simplygon, and use that as a starting point for the optimization.

Lucklycat commented 1 year ago

One option may be to use nvdiffrec or nvdiffrecmc which work without an initial guess for topology. You can play with the grid resolution to reach different triangle counts of the mesh.

As you point out nvdiffmodeling works fine if you have a good simplified mesh with reasonable topology, from e.g., Simplygon, and use that as a starting point for the optimization.

Thank you for your answer,I still want to ask how to solve the problem of a lot of noise in the map generated by using nvdifmodeling optimization. I understand the reason for using mipmaps, so how to avoid it? As you said before, add texture_ Is res set to the same? My configuration is as follows: image

jmunkberg commented 1 year ago

You will get less noise (but also less detail) in the textures if you decrease the texture resolution. Try reducing it to [512,512]. If you have very high texture resolution, you also need a high rendering resolution (train_res) so that the texels in the most detailed mips are touched.

Lucklycat commented 1 year ago

You will get less noise (but also less detail) in the textures if you decrease the texture resolution. Try reducing it to [512,512]. If you have very high texture resolution, you also need a high rendering resolution (train_res) so that the texels in the most detailed mips are touched.

Thank you very much for your reply, thank you

Lucklycat commented 1 year ago

You will get less noise (but also less detail) in the textures if you decrease the texture resolution. Try reducing it to [512,512]. If you have very high texture resolution, you also need a high rendering resolution (train_res) so that the texels in the most detailed mips are touched.

@jmunkberg when i set [512, 512] the the problem is still unsolved.Is there any way to get a map form similar to nvdiffrecmc, clear and noiseless: image

At the same time, I have another problem. The right side of my map is always blank,such as : image

Import blender to view, and there are many such lines: image

JulianKnodt commented 1 year ago

If you set the texture to be all gray, it may reduce the final output noise. I believe this requires changing their original code