Page MenuHome

Voxel Remesher eventually breaks QuadriFlow usability by creating non-manifolds
Closed, InvalidPublic

Description

System Information
Operating system: Windows-10-10.0.18362 64 Bits
Graphics card: GeForce GTX 980/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 436.30

Blender Version
Broken: version: 2.81 (sub 13), branch: master, commit date: 2019-10-04 22:33, hash: rBab519b91b2c4
Worked: Before the patch that fixed the crashing when using QuadriFlow on a messy mesh. https://developer.blender.org/rBf025b625f410ceb8a1edda584fe89acb5fff39d7#248075

Short description of error
Been trying to use QuadriFlow after the latest patches which fixed some of the bugs. While it is more stable now (still crashes from time to time, but far less so now), it is now nearly completely unusable with Voxel Remesher, which is an essential aspect of the sculpting workflow. These two need to play nice with each other or the workflow breaks completely apart. I have tried to decimate the objects to see if that worked, but nothing seems to work now.

QuadriFlow is only reliably useable on smaller objects, so anything fairly complex when using Voxel will fail nearly every time. Non-manifolds are practically inevitable when using it and are not practical to remove manually on really dense meshes (i.e. above a million), so these two features are now incompatible.

Exact steps for others to reproduce the error

Event Timeline

So if I understand correctly, the issue is either that Voxel Remesh is creating non-manifold or inconsistent face normal mesh OR Quadriflow is doing its safety checks incorrectly, and identifies the mesh as non-manifold, or having inconsistent face normals, when neither of those are true?

To save some time for the devs, could you attach a file with a mesh that we can Voxel Remesh, then Quadriflow, and see it fail? You could do this by waiting for it to fail like in the video, then Ctrl+Z'ing the Voxel Remesh step, then save and upload the file in that state.

Brecht Van Lommel (brecht) lowered the priority of this task from 90 to 30.Oct 5 2019, 11:59 AM

We require a .blend file and exact steps to reproduce the issue to be provided.

@Demeter Dzadik (Mets) I think it is the former, but since it is super hard finding non-manifolds on a dense mesh, I can't confirm if this is the case. My best guess is that it is Voxel that creates non-manifolds.

@Brecht Van Lommel (brecht) Here is the file and another video. While I was preparing the file, I actually found another issue with Voxel and QuadriFlow interaction. Because of the holes that QuadriFlow creates sometimes, using Voxel on that mesh will make the mesh collapse in on itself, since Voxel doesn't have the ability to fill any gaping holes before remeshing. I would suggest adding a new option to Voxel that makes it able to fill any gaping holes so you are able to remesh it into a complete mesh again.

Brecht Van Lommel (brecht) raised the priority of this task from 30 to 90.Oct 5 2019, 12:58 PM

This should be fixed in D5933, I can make another patch without the shrinkwrap fix.

@Pablo Dobarro (pablodp606) I made a video highlighting the problems with Voxel Remesher and QuadriFlow a bit better:

As you can see, Voxel creates doubles under actual quads which can be seen when you go into Edit Mode and select all the non-manifolds. Also, that final part of the video with the hole, that is caused by Preserve Sharp. I tried the option before and reported it yesterday as well.

https://developer.blender.org/T70546

It is really easy to reproduce:

1 Add a cube, remesh with 0.01m in sculpt mode
2 Extrude a log spike with the grab brush
3 Remesh with all the options enable
4 Try to make a quadriflow remesh with all the options enable

I think it has to do with the bug that makes some faces with inverted normals, and that connect some distance vertex.

Germano Cavalcante (mano-wii) lowered the priority of this task from 90 to 50.
Pablo Dobarro (pablodp606) claimed this task.

I'm trying both operators in the latest master and it seems to work fine. I'm able to run Quadriflow after Voxel Remesher multiple times, so I need a file to reproduce this. If this can be reproduced and D6008 solves the issue I can commit it, but I really do not want to add more steps to the voxel remesher.

@Pablo Dobarro (pablodp606) The problem still persists, however. I just tried it on a brand new sculpt and it still doesn't work because of non-manifolds created by Voxel Remesher.

May I make a suggestion? Instead of making a patch that removes non-manifolds automatically while voxel remeshing, you instead add it to QuadriFlow as a toggable option. That way Voxel will remain efficient while QuadriFlow has the option to remove the non-manifolds before running the remesher. Alternatively you could just add a "Remove non-manifolds" button as a menu option in QuadriFlow so you can run it manually whenever the problem comes up. This way it is easy for user to find the option when it is absolutely needed, since it is the only time when non-manifolds actually matter while sculpting.

So please, reconsider closing this task as invalid and try those two options. As long as there is a way to remove them in Sculpt Mode without relying on the built in add-on 3D-Print (Not everyone knows about it, but it has a Make Manifold option that actually works.), it would be sufficient enough to solve this problem.