Mesh Editing Optimization – Initial Steps

Since releasing Blender 2.8x there have been performance regressions with mesh editing that haven’t been addressed. While Blender developers were aware of these problems, early on a lot of time was spent investigating and fixing bugs in order to get feature parity with 2.7x. Later some improvements were made and Blender was once again functional for artists at Blender Studio (where they were not doing a lot of high-poly mesh editing).

Sprite Fright by Blender Studio – Forest Mesh Editing

Having said this, artists in the community have been asking for improvements in this area (see thread on blenderartists).

This kind of development needs focused time to investigate issues and try different solutions. After all, it is not so easy to fit this between regular development tasks. So the Blender development team has set aside some time to improve the situation with a 6-8 week sprint involving 3 developers (Germano Cavalcante, Jeroen Bakker and myself).

The team started investigating bottlenecks in more detail with a focus on edit mesh. Early test results show there is room for significant performance improvements.

In brief, the main bottlenecks are uploading data to the GPU as well as redundant data-duplication and GPU-data rebuilding that can be skipped entirely.

For details see:

… not so fast!

While gains in mesh editing should be achievable, it’s possible users with complex files won’t notice much difference. For instance, files where subdivision surface is the bottleneck require development specifically to optimize OpenSubdiv. In general, files with heavy use of modifiers may not see much in the way of overall speed improvements, since that’s not the initial target at the moment.

The focus of this sprint will be on high priority areas, while other projects can be prioritized in the future.

— Campbell Barton

38 comments 9,907 Views
  1. Hey Campbell Barton, are these improvements for transform operations only or do they involve other parts like switching modes, Selection, Proportional editing..?

  2. I think Blender’s Devs need to plan these kind of performance sprints each year, at least do one in a year for a specific area(Selection, Undo,Playback,Unwrapping…) since performance is one blender’s weakest points.
    After few years not only it’ll catch up to other softwares but it could take the lead, therefore the complains will stop & the Studios/Community won’t have an excuse.

  3. Thank you so much for looking at the performance – finally! I have to stick with 2.79 because Vertex Paint is way slower in 2.9x / 3.0, the same with the Weight Paint (but this was already slow in 2.79).
    Is there any chance these core features performance will get improved, or better say fixed (as I believe weight / vertex painting 1M mesh shouldn’t really be a big deal nowadays).
    There are features relying on V / W painting (like Geometry Nodes & Particles scatter) and the current performance limits make them barely usable for any heavier projects (or just larger than all those demos with 30x30m grounds).
    If these are significantly improved, together with the general large-mesh editing performance, I could finally focus on the creation itself, instead of setting up workarounds how to get at least 10 fps while working on the projects (my post describing what I am doing and why this is a big issue for me: https://devtalk.blender.org/t/geometry-nodes/16108/1058)

    Thank you for all your work!

  4. yes please! this is what i have been waiting for!!

  5. As someone who also does a fair amount of high poly photogrammetry editing work in blender, this sounds like it could lead to a major improvement in my quality of life 😀 (and less reliance on Zebras). Can’t wait to see how this progresses, I will be following with bated breath! GO TEAM!

  6. Amazing news! The constant stream of new features is exciting with Blender but honestly the high-poly editing is holding my work back when it comes to photogrammetry and landscape modelling.

  7. is this affecting sculpting and dyntopo scultping performance

    • Probably not, sculpt mode has it’s own code paths for mesh drawing (which is why it’s already so much faster than mesh-edit mode), in most cases optimizations to mesh-edit mode won’t impact sculpt mode. Although Jeroen can better speak to this.

  8. Hey guys !

    Don’t forget to support Blender with $$ (dev fund, cloud)…(well only if you can afford to)

    Those amazing improvememts and Devs are not free 🙂

    Ppl need to pay their bills !!

  9. clap clap clap clap clap 😉 hooray.

  10. Will be adressed, that selecting meshes gets really slow, if there are more than 20million polygons and more than 10000objects in the scene. In our company we can’t use blender for material assignment because waiting up to eight seconds until an object gets selected is top much. We use a really old programm where we select objects and assign shading groups. Then we export to fbx. We import in Blender. Viewport performace is great also rendering, but why takes selecting a mesh so much time? It would be really great if you can speed up mesh selection!

    • Agree this is a problem, most likely this needs to be handled as a separate project.

      A possible workaround for this is holding control while selecting the object which uses the object center for selection which can, of course this is only a stopgap measure, but it may help.

      • The object selection performance decreases with more objects and more polygons in a blender scene. It is most noticable if you have >15000 objects and >20million overall polygons, then blender isn´t usable anymore for tasks like shading, because you can´t work with good performance.
        All other DCC progs like Maya, Cinema, 3D Studio Max etc. have no problem with such scenes.
        There must be an overhead somewhere because the scenes I describe have very good viewport performance, only selection is super slow! I hope this problem could be adressed soon!

  11. This is a great news! Working with photogrammetry based assets are insanely hard in Blender. And performance drop in quadratic. Last week lost many days in trying edit (mostly merge, collapse bad polygons after series of decimation in 3D party app) and 2mln poly editing with UV editor open (in same time was need fix UVs) blender took enormous amount of time after any vertex or poly deletion. Yesterday made hard decision decimate model to 1mln and finally had a chance to do something.
    But be honest, tested almost every release from 2.79 to 3.0 and all of them was not usable for this.
    If you need a help with real world high res meshes feel free to contact me. 3D scanning community will glad to help with this and with tests.
    Best regards.
    Vlad Kuzmin

  12. Hopefully after this Undo won’t take 5-10 seconds long!!

    • Where are you noticing slow performance? (edit-mode / object-mode, large scenes or single meshes)

      • Please can you look into mesh selection performance!
        Will be adressed, that selecting meshes gets really slow, if there are more than 20million polygons and more than 10000objects in the scene. In our company we can’t use blender for material assignment because waiting up to eight seconds until an object gets selected is top much. We use a really old programm where we select objects and assign shading groups. Then we export to fbx. We import in Blender. Viewport performace is great also rendering, but why takes selecting a mesh so much time? It would be really great if you can speed up mesh selection!
        Thanks!

        • Yeah, it is a problem for me too.
          But i found some good solution with using Pick material tool from Machine Tools add-on.
          Really saved me a lot of time.

        • Agree, that would not happen if material assignment was procedural at render with rules like assigned geo => /geo/car/body/*

          We are in 2021, material assignment should be procedural nowadays.

      • Hi Campbell. I didn’t know any of these plans touched on undo, but since you’re asking, mmy experience is that undoing an action gets terribly slow (up to several seconds) when either of these statements is true :

        1. a high resolution object has been modified (transformed, parented…) in object mode
        2. the data of this object has been selected (any selection paradigm) or edited (transform, modeling operators…) in edit mode
        3. an object has been modified (same operations as above) within a scene that contains a fairly large number of objects. It doesn’t have to be a lot, so what I infer from this is the total amount of geometry in the scene is at fault, at least partially

        In any of those cases, I think the studio artists should be able to provide you with models that challenge Blender, both in mesh editing performance and undo performance (as they seem to be linked to an extent). Please see the benchmark video posted above by JuanGea, it contains a few different cases where performance can be improved.

        My experience is by no means representative and will not replace proper profiling… which I understand you’ve been doing if I understand correctly what I’m reading.

        I’m very happy that you’ve taken soem time to tackle this in between being a dad and everything

        Best wishes and keep close to that BA thread, people are eager to test and help

        Hadrien

      • I hit undo lag , sometimes almost all day/every day in quite a few cases, working on AAA assets. It’s currently my #1 issue , besides this task (mesh editing optimizations) and UV improvements.

        From what I can tell, for how I work, if my scene has many objects, especially many objects with modifiers like subSurf, Undo gets worse and worse over time. If I am in object mode and move something and hit Undo, its not too bad…

        But the main lag I hit, is if I am in Object Mode, Toggle into Edit Mode and make some vert changes, or I think even if I ONLY toggle into Edit mode, then toggle back to Object mode, something “bad” happens.
        Bad as in, at that point when I undo, after toggling, I get a lag of 3-5 seconds or more, everytime I undo like that. So anytime I have to model/toggle back and forth from object to edit mode, I get that lag. Which can happen 50-100 times in a day or more. So on an average day, I might be losing 5-10+ minutes waiting on Undo, which can get extremely frustrating. Especially if you are trying to work quickly / be creative and constantly hitting that lag.

        • While I would need a specific test case to reply with exact details. This sounds like a lag updating the dependency graph – which is a known issue and won’t be impacted by optimization to edit-mesh (not very much at least).

          If the problem you reported was a single high poly object taken a long time this is something that mesh editing optimizations could improve on.

    • This is one of the massive issues of late. I’ve had the same computer for the last year and before the updated 2.9 versions came out, using 2.83, I was able to manipulate with ease a scene with over 20mil verts and now Blender just crashes if I add over 4 mil. I reduced the undo memory and lag is now driving me crazy. I have to separate basic scenes into multiple scenes and still can only add small amounts before considerable lag accrues. I don’t have a high powered PC, but 16 gig ram with 8 cores and an 8 gig gtx 1070 shouldn’t lag to the point of crashing with only 4mil verts in the scene. Hope there is a fix on the way

    • Wow, really glad this blew up a little bit.

      I’ve noticed (2.92) that undo is worst when I’m in Material Preview mode. When I have a large scene (doesn’t take long to be considered “large”, and I only consider it a “large scene” when the undo resistance hits) I will usually turn on Solid View mode on and then Undo. But then it has to reload/recompile all the materials again when I go back into material mode.

      Has anyone else noticed a consistency with slow undo/editing times in Material Preview as opposed to Solid View?

  13. At last! This is the best Blender news I’ve heard in a good long while!

    Thanks for listening!

  14. “It’s important to be conscious of the state of the art regarding high poly mesh editing, Eloi Andaluz did a very well done video regarding this matter doing some fair comparisons.”

    yep and it’s pretty old now, since then maya 2022 and max 2022 are even better now on the performance side

  15. It’s important to be conscious of the state of the art regarding high poly mesh editing, Eloi Andaluz did a very well done video regarding this matter doing some fair comparisons.

    https://www.youtube.com/watch?v=4VmTBCFZE6Q

  16. Great, this is very good news, thanks to the development team for tackling these performance problems!

  17. ​Hi, will RadeonRays 4.1 be used in cycles for AMD now that it’s open source?

    • As I know the cycles as based on OpenGL but RR 4.1 need vulkan.

      • As I know the cycles is based on OpenGL but RR 4.1 doesn’t support open gl*

        • cyclesx has mentioned to give up opencl, for a new api, in addition vulkan is also in the plan (legend is amd specified) 2021 that article also mentioned: “ready for specific suppliers” that is to say, vulkan hip sycl between the campaign vulkan hopes a lot, with rays this high-level library can greatly improve the development efficiency similar to optix.

      • Both vulkan and dx12 have universal computing capabilities

  18. That’s amazing news !

  19. Could the memory usage be addressed at the same time ?
    The amount of used Bytes per Vertex/Face is crazy !!
    Memory consumption could be reduced by 10 at least.

    • This isn’t likely, although there are some lower priority tasks that will reduce memory use:
      – Refine undo data storage.
      – Avoid storing copies of meshes for error handling when they’re not needed.

      While these will help, it’s not going to give the kinds of gains your asking about. Significant reduction in memory use would have to be a separate project.

      • Yeah Campbell we understand that this stuff need separate projects & planning, so could you guys at least do couple performance sprints each few months or even a in year? and hopefully once you’re not busy you could go back and surprise us with new modeling features like you always do 🙂

  20. Thank god someone finally thinks that the editing performance of the big grid (。・∀・)ノ

In order to prevent spam, comments are closed 45 days after the post is published.
Feel free to resume the conversation on the forums.