The big Blender Sculpt Mode thread (Part 1)

level 0 currently IS the basemesh. So yeah its for editmode, its for sculpting on level 0, its for baking,…

You’re damn right, I had missed that. Right now changes are propagated through all levels except level 0. At least I’m on the same page as everyone now heheh. If apply base could be automatic for sculpt mode but manual for edit mode, wouldn’t that solve it ? The modifier would carry all displacement information and that would keep it nondestructive. But I’m way over my head here, I don’t know if it’s possible.

1 Like

Yes but then you need to be able to differentiate between the input mesh and level 0 multires. Normally there is no need NOT to use the basemesh/inputmesh itself as “base”. That additional level 0 offset would be useful here as it could keep the modifier stack idea intact AND allow for the discussed features like auto apply. That’s what I tried to describe above.

2 Likes

How is it misleading? You’re basically agreeing with me that there actually is a destructive aspect of Edit Mode and the base mesh. It’s the same for Sculpt Mode and using modifiers in Sculpt Mode still allows you to destructively edit the base mesh like when using SubSurf. The only time the base mesh in Sculpt Mode is ever non-destructive in its current iteration is when using MultiRes and working on any subdiv level higher than 0.

A thing that is very inconsistent is that MultiRes doesn’t change the base mesh without either having MultiRes deactivated or going down to level 0 and doing the exact destructive behaviour I was describing. If your argument is that MultiRes should not affect the base mesh, why even allow sculpting at level 0 at all? It is destructive and can be easily done by “mistake” in a sculpting session by how the feature is designed to go up and down subdiv levels to make edits fast. Yet another genius design decision that is inconsistent with itself. :upside_down_face:

Besides, it is a very tiring argument that every single modifier must all be fully non-destructive because of “consistency”. If the only way of adding in certain features into Blender that are standard in other programs as a modifier yet they don’t get added because of “consistency”, then maybe it is time to consider scrapping that non-destructive “rule”. If it is possible to design a destructive modifier that is (very) useful to users, then just simply add it. Users should not have to suffer badly designed features because Blender can’t add them in any other way than as modifiers.

That said, I don’t mind if there is a warning when using a destructive behaviour in the modifier stack. There is nothing stopping the devs from adding a destructive and non-destructive section to the modifiers list just to add some clarity.

You didn’t even disagree with the facts about the destructive aspects of Edit Mode, or even Sculpt Mode. There is nothing factually wrong with my statement that Sculpt Mode is destructive editing, because it is. The only time it is ever non-destructive to the base mesh in a normal practical scenario is when using MultiRes in specific conditions that I already laid out. It is misleading to first agree with the basic facts and then later call them wrong.

2 Likes

Dyntopo, anyone? :grin:

2 Likes

Yep. Yet another destructive aspect of Sculpt Mode which is even based off of Edit Mode according to the devs.

1 Like

It’s not because of consistency in itself, but because consistency makes the program predictable. I also think the pros outweigh the cons, but it would be really cool to avoid having any cons at all, which is what this discussion is trying to solve.

If we think of multires modifier being a container of sorts for displacement information, then it makes sense to be able to sculpt down at level 0 and see all changes propagated nicely throughout all levels, yet be able to turn off the modifier and see the unaffected base mesh.

To be frank, although this is not directly my problem, I suspect there are also code complexity issues to having some modifiers behave differently, either by affecting/not affecting the edit mesh, or by silently modifying their position in the list.

Sure, but what other option is there then? I gave my suggestion of dividing up destructive and non-destructive modifiers, since apparently we can’t get MultiRes separated from the modifiers stack from what I have been able to gather. However, if no consensus can be reached, then the “consistency rule” has to give.

I would propose a destructive option within the multires modifier that essentially auto-propagates higher level changes. This could either be a checkbox, or a more destructive ‘collapse base mesh’ operation that remains for the lifetime of that particular modifier.

9 Likes

I also think this is the next best solution.
The thing is, Blender being in the process of changing very rapidly right now, I think now is the time to think of new ideas to succeed to modifiers and the like -be it crazy ideas- you know, just brainstorm. New object types, alternate modifier list, all good suggestions. Blender’s already cramming so much into the same box, I’m sure it’ll work out fine anyway for users.

That sounds good to me…

1 Like

Ok I’ll try it once more.

  • Subdiv works perfectly with the modifier stack. It does not change the input mesh so it is a non destructive modifier
  • Multires with AutoApply would currently destructive for the input mesh.
  • So subdiv is a modifier that keeps the nondestructive nature of the modifier stack, multires not.
  • Editing a mesh is indeed destructive (sculpting normally also), but editing and sculpting is happening BEFORE the stack is applied. So it does say nothing about if the modifier stack should be destructive or not.

Modifiers are a common concept in many apps. And many of us are used to and love their nondestructive nature. If you can’t appreciate that, it is no problem for me. But others do. And so we are talking about changes that doesn’t compromise that.

  • In short it does not have to be destructive, a non destructive editing of the baselevel would also work. So this is no argument that things should be destructive and also not that they are otherwise not effective

Doesn’t the suggestion by @Debuk almost solve all the cons by including level 0 in the multires data? This way the non-destructiveness is kept, as wel as all the other advantages of having the lowest level being influenced by the other sculpted layers and having it visible in sculpt mode…

These two posts were the proposal that would allow a nondestructive auto apply base

Okay, I’ll try once more.

SubSurf levels being non-destructive doesn’t change the fact that the base mesh is getting edited destructively.

MultiRes somehow managed to be both non-destructive and destructive to the base mesh by just allowing you to sculpt on the base mesh with multiple levels and allowing you to easily move to level 0 or disable MultiRes to perform destructive edits. Not only is it not good for a destructive workflow, but for a non-destructive one as well.

Yes, MultiRes is not a good non-destructive workflow, and it should not be that either. If features can’t be destructive because they are forced to be a modifier it is simply a design failure for not leaving room for those kinds of features elsewhere.

Completely missing the point. I never advocated that all modifiers need to be destructive, but some certainly should be like MultiRes by judging the current state of sculpting in Blender. MultiRes was forced to become a modifier since Blender doesn’t seem to allow a proper sculpting subdiv system any other way. It should not have been made a modifier in the first place if modifiers aren’t “allowed” to be destructive, but here we are.

It has to be destructive to be efficient. All the other professional sculpting applications do this and are far better for it. Using Apply Base has only been a complete waste of time since I moved over from ZBrush. The feature got better since the MultiRes recode, but it is still extremely slow to the automatic destructive approach.

A completely non-destructive way of sculpting the base level with MultiRes would likely mean that you would have to disable level 0 sculpting completely and only use Apply Base when needed. You would however lose out on efficiency when level 0 is very useful when making big edits that propagate to the higher ones, like if you would use the Pose tool to, well, pose the model. @Musashidan had a good suggestion for adding both the destructive and non-destructive workflow, but if in practice it doesn’t work, then the destructive way has to be the standard workflow.

1 Like

It does ! carefully read Debuk’s post above, edit mesh would be kept intact but sculpting on level 0 would still be allowed. Of course that’s just theory : we would have to see if it’s doable in practice.

I know I already wrote the idea a few posts above but I’ve made some mental progress since then ^^ What about a sculpt object ? It would be inherently multiresolution, and all those fancy features Pablo added (such as mesh filters) could be procedural operations part of this particular object’s modifier list. Obviously that would duplicate some stuff code-wise, but how often do you need a generative modifier on top of a full-fledged sculpt ? Maybe we need to separate the sculpting process a bit more from the rest of “generalist” Blender ?
This is in line with my idea of making “geometry nodes” into its own “procedural object” so that it can be type-agnostic. Not sure at all whether that’s a good idea of course. Plus that’s a broad design question that goes beyond the scope of multires… but I’m trying to think BIG ! heh

Would that mean that level 0 will be different from the base mesh when disabled? If so, interesting, but can it be done?

Would be nice if sculpting got a bit more disconnected from other features if it means a better Sculpt Mode. I just want subdiv sculpting to make some sense, since the current system looks like a chimaera.

It’s not about multires being nondestructive or destructive itself. The modifier holding the multires logic should be, because every modifier should be. If multires would live elsewhere the need would be gone. Although being nondestructive is nice to have

No and I did also never assume that. No modifier should be destructive. Thats obviously just not interesting for you.

That’s the point. So a solution should be to move it elsewhere or make it nondestructive without compromising functionality.

The performance advantage of other apps has other reasons. Being nondestructive in a modifier means you are just not working on the original meshdata but a copy or another separate dataset.

No, that is not needed.

Well, yeah… as far as I understand the original idea. Of course in that case baking would have to be done against that “multires level 0” and not against the “edit base mesh”.

Totally agree, but I’ll be leaving this to experienced surfacing artists who know zbrush inside and out (still going to comment the hell out, but don’t mind me heheh). With Pablo and the dev fund I guess we can hope for a more thought-through sculpting experience. The tools are have been flowing in but the big picture is still lacking a lot.

Does that really impact performance ?

1 Like

It should be destructive, period. That is what Blender needs and that is what Blender shall have. The devs are already planning on adding it.

Consistency is nice if you can design it as such. However, we are in a situation where we are running out of options and we are stuck with a modifier MultiRes for the foreseeable future. If there is nothing really stopping MultiRes from being destructive despite being a modifier then there is little reason not to add it. Users should not have to wait years for a potential non-modifier redesign when it is feasible get it asap.

The latter option is completely out of the question. It is either be both or be only destructive if you can’t satisfiably create a non-destructive and destructive workflow for the modifier.

Normally no, and definitely not per se. Running out of memory can be a problem. Beside that it doesn’t really differ if the mesh used in the modifier as basemesh is coming from datablock A or datablock B. And if one is the basemesh and the other an modifier internal version. Why should that need more performance? Updating the internal one if the other one was edited sure takes a bit of time. But the basemesh is also the smallest and updating higher level meshes after returning from editmode to sculptmode is taking the majority of what is currently being done.