Select Mirror and Other Updates

March 7, 2010 at 9:58 pm 20 comments

So, I’ve managed to put in some BMesh time.   Recently I ported a bunch of selection tools, select linked flat faces, select random, select sharp edges (as in edges with folded faces around them, not edgesplit-sharp edges).

I also ported select mirror to bmesh, and in the process I decided to try my hand at writing a topological-based function to find the best mirror candidate for a vert.  It works pretty well, except I’ve later learned that Campbell Barton beat me to it in svn trunk.   I’ll have to take a look at the code, see how it compares with my method.

A good mirror-finding function is important.  In a perfect world, the function would be entirely topological (e.g. no need to have your model in a t pose, perfectly split by the x axis), but I’m not sure if I’ll be able to do that anytime soon.  What I’ve done is coded it to detect the best match among possible candidate vertices in a sphere around the vert’s mirrored location, based on how similar the topology around the candidate is to the topology around the source vert.

I’ll have to put up some illustrations later.  I’ve not yet hooked this up to x-axis mirroring, weight paint, etc; I need to look at Campbell’s code, and decide if I should modify my version to use the same method.  Mine isn’t completely perfect, and I suspect his approach would work better in certain situations.  Most likely I’ll end up combining the two.  This isn’t something I’ll likely be spending a lot of time on in the near future, though, since there’s lots of porting work and debugging to do.

I’ve also been chugging away at aforesaid porting work, and merging in recent changes from the main development trunk.  I’ve decided to put off the dreaded loop to region tool (ctrl-e, for example, loop select a forearm and loop to region will select the hand) until later, since it seems few people use it and it’d be more effective to spend time on other parts of the code right now.

Entry filed under: Uncategorized.

Join Triangles Blender Institute

20 Comments Add your own

  • 1. Blenderificus  |  March 7, 2010 at 10:07 pm

    More BMESH updates = very cool! 🙂

    Intelligent mirror functions for BMESH will be appreciated. CAnt wait till the trunk merge, thanks Joe, I continue to donate to your great effort.

    Reply
  • 2. wayneberry  |  March 8, 2010 at 9:22 am

    thanks for the update 🙂

    really looking forward to having a modern mesh system in blender!

    Reply
  • 3. xyz14  |  March 8, 2010 at 12:02 pm

    Im soo looking forward to it 😀

    Reply
  • 4. PLyczkowski  |  March 8, 2010 at 1:17 pm

    Now it’s only possible to cut between two existing verts right? But will there be a cut tool to add new verts and an edge?

    Reply
  • 5. Michael w  |  March 9, 2010 at 8:09 am

    Few people use “loop to region”? i use it a lot! LOL

    i wouldn’t let it put off a merge back into trunk, 😉 but consider it a valuable tool!

    Reply
  • 6. Jan  |  March 9, 2010 at 8:45 pm

    At some point in _near_ time (!) you must make a hard cut, and merge your changes into trunk.
    Otherwise you will never get ready, if other people like campbell constantly code new stuff (and they will do that), which you than have to rewrite in BMesh code again… and again and again.
    Even if it doesn’t compile: At some point in _near_ time is _must_ be merged!

    Reply
  • 7. Max Puliero  |  March 10, 2010 at 3:07 am

    I use a lot “loop to region” too!

    Reply
  • 8. Sleeper  |  March 10, 2010 at 12:59 pm

    Loop to region? I thought the point of Bmesh was to make writing these sorts of tools easier. Is this just hard whatever mesh system is used?

    Reply
  • 9. Carrozza  |  March 12, 2010 at 9:37 am

    Thanks Joe, your work is much appreciated!

    Reply
  • 10. ZanQdo  |  March 12, 2010 at 6:49 pm

    Awesome Joe! every time I come to this blog and theres updates I feel so happy!

    Reply
  • 11. Niyado  |  March 21, 2010 at 12:36 am

    Hi, do you guys dont have a new build with the bmesh stuff? that would be great, like an update. Plx let me know, thx, and keep it up!!

    Reply
  • 12. Carrozza  |  March 22, 2010 at 8:05 am

    Joe, any update?
    Keep us posted, pleeeeease! 🙂

    Reply
  • 13. xsinick  |  March 22, 2010 at 2:20 pm

    i still don’t understand why you are not funded by the blender foundation. Sentinel looked ok at first but now I don’t care about that project , I just want a kick ass blender.
    I think I speak for all in saying if the foundation put off that project and just focused on bemesh, meshtools and all other blender 2.6 goals we will be happier than waiting to by an animated film project on DVD.

    Reply
  • 14. Marcus  |  March 23, 2010 at 9:55 pm

    @xsinick:
    I second that I too don’t understand why Joe doesn’t get support, BUT on Sintel: You have to see that such projects are good PR for Blender and more importantly drive the development of features forward faster.

    Reply
  • 15. Sienio  |  April 1, 2010 at 1:14 pm

    Hi! I heard you going to visit Blender Institute? Ton hired you as developer? Could tell something about this? 🙂

    Regards

    Reply
  • 16. xoxol  |  April 3, 2010 at 3:38 pm

    I was wondering; when bmesh is properly implemented, will then the Subdivision Surface (Subsurf) modifier accept vertrex selections and groups ?

    Reply
  • 17. Cobel  |  April 9, 2010 at 1:05 pm

    Hi Joe, now that’s official you have been hired by BF, can you tell us more about this?

    And can you tell us more about the actual level of BMesh development and integration in trunk?

    Long time without updating the blog… 😦

    Reply
  • 18. Jan  |  April 9, 2010 at 3:13 pm

    Should we maybe start a fan movement to push Bmesh finally into main trunk?
    It would give the development a big boost, when finally everyone develops with the new Bmeshs.
    And the current developer doesn’t have to redo every new Blender 2.5 feature in Bmesh Style.
    This way it will never get done.

    Reply
  • 19. Marcus  |  April 9, 2010 at 4:45 pm

    @Jan: Good idea, but how can we do that? Who do we have to push, the Blender Foundation or the developer?

    Reply
  • 20. Jan  |  April 11, 2010 at 12:00 am

    @Marcus:
    First step could be that someone with a good connection to one of the main developers convinces him to include bmesh into the main trunk. Or everybody who has gotten onto the blender mailing list posts his wish there.
    Sorry, don’t have a real good plan now, but it’s better than nothing!

    Reply

Leave a reply to Blenderificus Cancel reply

Trackback this post  |  Subscribe to the comments via RSS Feed


Categories

Feeds