WIP - Fast Remesh - [ need help with betatesting b4 submitting]

   1677   8   2
User Avatar
Member
651 posts
Joined: Feb. 2016
Offline
**UPDATE**
You can now try Fast Remesh, your feeback is very welcome, thanks!
Check this post please [www.sidefx.com]



---------------------------------------------------------------

Based on the vanilla Remesh Node, The new Fast Remesh is more performant and it comes improved with some quality of life features.

Key Features:
  • Up to 12.5x 25.5x faster than vanilla Remesh Node thanks to multithreading (measured on a 24cores machine)
    The input geo is divided into chunks to be remeshed independently and in parallel inside a compiled loop.
    The chunks are then fused back together.
  • Up to a 2.5x remeshing speed boost measured in a low specs dual cores laptop
  • Different options to split the input Geo into chunks: by automatic fast clustering, by connectivity, by user attribute, by UV islands.
  • Computes the Average Edge Length, with Target Size Presets in UI to easily set the target remesh size
    The average edge length of the input Geo is a good starting point to set the desired remesh size, instead of blindly typing numbers and running a remesh to see what they mean. It can prevent some unnecessary slow cooks! The average edge length is also useful to simply equalize the topology.
  • Advanced and Simple interface mode for faster user setup
  • Preserves UVs
  • Compatible with Safe Displace workflow (it won't break any a chain of layered safe displacements)
    Safe Displace is an upcoming entry for the contest, this tool lets you displace geometry avoiding self-intersections

Features to be added to Fast Remesh: (not necessary before contest deadline)
  • Target remesh size live linking with upstream geometry. For example, you might want any upcoming Geo to be remeshed with a target size of half of its average edge length. This is useful in PDG and wedging scenarios.
  • Estimate the expected polycount of the remeshing. This would be a great quality of life improvement: super useful for the user to have this estimate during the setup.
  • Maximum Polycount allowed. A threshold for polycount with automatic clamping of the target size. It could save a lot of time in automated workflows and prevent doomsday remeshing scenarios...
  • Auto Detect CPU specs (like in the TOP Scheduler). How many cores are available for parallel processing?
    This information is very useful to automatically setup the ideal number of chunks to split the geometry.
  • Adaptive remeshing like in the vannilla Remesh Node. I haven't checked yet if it can be implemented.
  • Noisy Clustering. A method to make clusters with noisier outlines that should produce a more natural topology around the seams.

    Bugs and issues
  • Some glitch in the UVs under certain conditions
  • Need for more reliable tools to improve the quality of the topology produced around the seams
  • Performance in some areas might be improved (fusing chunks, post compute normals, polydoctor alternative, user interface lag on heavy geos)
Edited by Andr - Sept. 30, 2021 19:08:42

Attachments:
performance_monitor.JPG (29.9 KB)
pigheadremeshed.JPG (190.4 KB)

User Avatar
Member
11 posts
Joined: Oct. 2020
Online
Great job so far, and lovely documentation post!

You should take a look at Jake Rice's remesh hip [twitter.com], based on "Instant Field Aligned Meshes" paper by W Jakob.
Maybe it'd provide inspiration or could be substituted for the default remesh node.
Edited by volodXYZ - Sept. 13, 2021 07:38:45
User Avatar
Member
651 posts
Joined: Feb. 2016
Offline
I wish I can open a beta testing phase very soon, so to have some quality feedback to consolidate the tool before the deadline.

I attached screenshots of how the interface looks now.

volodXYZ
Great job so far, and lovely documentation post!

You should take a look at Jake Rice's remesh hip [twitter.com], based on "Instant Field Aligned Meshes" paper by W Jakob.
Maybe it'd provide inspiration or could be substituted for the default remesh node.

Hello Volod, thanks for the input, that project file is a bit out of my league of expertise for now! I don't know nothing about OpenCL.
However you made me realize that the same main concept of Fast Remesh, could be applied to the Subdivide Sop as well.
So I'll look into adding it to Fast Remesh. It's now a most wanted feature!

====================================================

New features have been implemented:
  1. Dynamic target remesh size mode. The user can set a live-linking with the upstream geometry, for more automated and wedging workflows.
  2. Custom Size Presets, by easily writing a list of multipliers for the computed average edge length.
  3. A smarter interface that automatically unchecks some toggle paramaters to bypass the unnecessary cooking of some heavy nodes. This is helpful especially when the user is operating on Minimal Interface Mode, and some toggle parms are not revealead to him (but they are still active).
    An example: if the pieces for the loop are identified by connectivity, there is no need for the Fuse Sop to cook after the loop (there is nothing to fuse!). Better to have the toggle to bypass the fusing automatically unchecked.
Edited by Andr - Sept. 15, 2021 11:42:01

Attachments:
interface_minimal.JPG (63.5 KB)
interface_advanced.JPG (85.8 KB)
interface_debugging.JPG (49.0 KB)

User Avatar
Member
651 posts
Joined: Feb. 2016
Offline
An issue I'm having is to make a good estimation for the final polycount after the Remesh.
Do you have any tip in this regard?

My method:
TotalArea_in: the Total Area of the Input Geometry (which is easily retrievable)
AVGprimarea_out: is the expected average area for the primitives of the remeshed Geometry.
Polycount estimation: is TotalArea_in / AVGprimarea_out .
To compute AVGprimarea_out we can use the formula for the area of an equilateral triangle given the side (the side is the target remesh size decided by the user).
As the Documentation reports, the Remesh Sop tries his best to output a topology made of equilateral triangles, with edge length as close as the Target Remesh Size.

The above method gives a very rough estimation, that even becomes less and less accurate as you increase the values for the of the smooth param, while it gain accuracy as you increase the Iterations.
I think of applying a Ramp to the computed estimation and then trying to manually match the curve of the polycount as it goes through higher values of Iterations and Smooth.
Edited by Andr - Sept. 16, 2021 12:07:55
User Avatar
Member
651 posts
Joined: Feb. 2016
Offline
Beta testing is open for everyone who want to try Fast Remesh.
I hope I can catch some critical bugs before submitting it to the contest.

Would be helpful to know:

1-) The overall ease of use and experience
2-) Is there anything broken?
3-) Is Fast Remesh actually faster on your machine and for your workflow?
4-) Does it produce any unexpected/ugly result?
5-) Is the documentation clear enough?
6-) Any feature you wish to be added in future version?



// Here some change log about the new main features implemented recently:

-) I've measured a case where Fast Remesh is over 25x (!) faster than the traditional Remesh Sop.
-) Now we have Polycount Estimation from the Target Edge Length input. The estimate starting accuracy is 0.8, reaching 0.99 in some cases (especially when you set the remesher for 5 iterations).
-) A report Label Parm to see directly the poly estimate in the parameter pane, while you are setting the Target Length.
-) Target Polycount Mode: now you can remesh a geo just by typing your desired polycount instead of using the target edge length (with an acceptable accuracy in the outcome)
-) Polycount Emergency Limit with autoclamping to avoid unwanted remeshing tasks of trillion of polygons (especially useful in Dynamic mode)
-) Initial documentation support
Edited by Andr - Sept. 30, 2021 19:54:24

Attachments:
Fast_Remesh_Asset_and_Examples.rar (432.6 KB)

User Avatar
Member
11 posts
Joined: Oct. 2020
Online
I can already imagine scenarios were being able to set target poly count from an outside attribute would be a game changer.
It works really nice. Fantastic work!
User Avatar
Member
651 posts
Joined: Feb. 2016
Offline
Hello Volod, thanks for checking it and for confirming that it's working.
Do you find the lack of Adaptive remeshing a deal breaker for your typical workflow?
I really wanted to implement this feature before the deadline, but the early version is not very reliable so far.

cheers!
User Avatar
Member
143 posts
Joined: Sept. 2012
Offline
Hello

I found your tool very interesting indeed and I wish Sidefx will address soon that batch of essential nodes which are only single thread ... Not sure your tool is working when using a DOP and Sop Solver...
Vincent Thomas   (VFX and Art since 1998)
Senior Env and Lighting  artist & Houdini generalist & Creative Concepts
http://fr.linkedin.com/in/vincentthomas [fr.linkedin.com]
User Avatar
Member
651 posts
Joined: Feb. 2016
Offline
vinyvince
Hello
Not sure your tool is working when using a DOP and Sop Solver...

have you tried by any chance? I'd like to see an example, I don't see why it shouldn't work...
cheers
  • Quick Links