← All ideas
  • Published 3 Sep 2021

Edge Flow View

Under Viewport Shading, add the option to [view edge flow] using [randomized colors] that updates in realtime while in edit mode.

I often use the [add edge loop tool] to check the flow of my mesh, using the prediction line it generates, already so why not add a view mode that automates these kinds of analytical checks and balances?

Source of inspiration was Danny Mac 3D's tutorial on retopolization techniques:

youtube.com/watch

Image in the attachment (from Marco Nogueira on Art Station) is an example of what this new view mode would look like. marco-nogueira-01.jpg

85.7%

Development Status: Open

Upvote 12 Downvote 2
roosterdog
3 Sep 2021

5 Comments

testure

how could it possibly know which direction the loop is traveling though (short of some AI visual analysis)? looking at your screenshot and ignoring the colors you've already set up, I could find multiple different dominant loop 'paths' that might be highlighted instead.

Pretend you're a computer- how does a computer know the difference between a "cheek" and a forehead? why wouldn't the forehead loop just continue through the cheek and around the bottom of the chin? What's stopping one of the lateral ear loops from continuing all the way into the corner of the mouth? The difference is that you have observed the mesh, and applied human logic and intuition to create those groups. A basic algorithm is not capable of doing that.

2
IIIFGIII

It might work somehow I think. It could be not the same what human mind/eyes see/expect to see (because our brain work different, on this head example - yellow colored zone stopped on cheeks for some reasons), but still...

  • 1 - Algorithm start from checking for closed loops and storing each as data.

  • 2 - Algorithm check each closed loop for length + some mirrored mesh check maybe for such cases like this head example.
  • 2.1 For longest closed loop grow neighbor polygons from both sides.
  • 2.2 If appended polygons border also create closed edge loop --> grow more on this side --> repeat up to not closed loop / or N-gon polygons (when loop still can be closed but move aside) to avoid overlaped/intersected closed loops.
  • 2.3 After end up with single closed loop (pair of mirrored loops) selection growing - store polygons IDs as some group of polygons, exclude them from next checks.

  • 3 Repeat again closed loops check/grow steps until algorithm find no more closed loops.

  • 4.1 For all remaining mesh - check for loops, sort them again from longest to shortest
  • 4.2 Similar for loop as described before.

  • 5 All remaining polygons mark as last polygon group (or different by loose parts)

  • 6 Assign for each polygon group random color overlay.

May also has alternative modes when start from shortest closed loops up to longest. Maybe even has some sort of fill mode (fill all polygons from one of loop sides if those polygons not touch any other closed loop) to solve cases like fingertips or so.

Sounds doable, but to make it work with realtime overlay performance it has to be implemented on low level + good multithreading/multitasking. Otherwise such amount of constant for loops through whole mesh would be laggy as shit even on mid poly meshes. Of course - to design in around 5 minutes on words is one thing and to make it work is quite different ))

1
roosterdog Author

"but to make it work with realtime overlay performance it has to be implemented on low lefel + good multithreading/multitasking. Otherwise such amount of constant for loops through whole mesh would be laggy as shit even on mid poly meshes."

I don't think it needs to run in realtime...

Manually refreshing the display would probably be the more feasible way to implement such a feature...I would only see it being important to briefly analyze complex edge flows for things like facial topology, on various types of creatures and not just humans, or in skin deformations if you're creating a muscle/bone rig and want to save on performance by manually carving out where everything creases rather than throwing a ton of poly at it...

IIIFGIII

It has not much sense if it will be not auto refreshable overlay. I don't know. Interesting idea, but how to make it work question not to me... in coding I'm just hobbyist - sitting and working on small python addons for myself.

koko_ze

Automatically? nahh just use the face sets/ make them usable for this kind of work.