Page MenuHome

Defaults: Turn fast navigate off by default
Needs ReviewPublic

Authored by Dalai Felinto (dfelinto) on Sat, Sep 12, 11:46 AM.
This revision needs review, but there are no reviewers specified.

Details

Reviewers
None
Summary

Fast navigate makes sculpting to look really bad.

This change was introduced on rB444934632a8d8e2 as part of workspaces
changes in startup.blend. However there is little (none?) explanation to
the reasoning.

There is no reason to have this on, really. And I think we should even
remove this option altogether. I'm sending this patch to start this
conversation. If we decide to NOT remove it, I will update to also do
doversion. Otherwise I will update accordingly too, to remove this from
everywhere in the code.

PS: I think the sculpting template should use a cube with multires
instead of a subdivided sphere.

Diff Detail

Repository
rB Blender
Branch
dev-change-fast-navigate (branched from master)
Build Status
Buildable 10149
Build 10149: arc lint + arc unit

Event Timeline

Dalai Felinto (dfelinto) requested review of this revision.Sat, Sep 12, 11:46 AM
Dalai Felinto (dfelinto) created this revision.

@Brecht Van Lommel (brecht) do you recall why you did this change in the startup.blend?

Dalai Felinto (dfelinto) edited the summary of this revision. (Show Details)

Hi. I agree that the option should be off by default, the user should enable it intentionally if performance problems while orbiting the view start to appear.
On the other hand I'm not sure about removing the option, considering that Pablo has this patch in sight:
https://developer.blender.org/D7403

@Dalai Felinto (dfelinto)

There is no reason to have this on, really. And I think we should even remove this option altogether.

This feature shouldn't be removed, imo.
This is a standard optimization trick used in most sculpting apps that have a "multires" system. Even zbrush has this enabled by default. Without this feature, it would be a nightmare to work on very high res meshes...

The problem in blender is that it displays the low res mesh with some sort of smooth shading, that's why it looks weird. It should display the low res in flat shading instead, like in other sculpting apps...
This just needs a setting to control when/how to display this optimization..

I think the sculpting template should use a cube with multires instead of a subdivided sphere.

A subdivided cube with multires doesn't make much sense to be there by default.
Usually when you start sculpting , you choose either the remesh workflow or the dynamic topology workflow... the multires workflow usually comes later, after the retopo, when you need a clean topo to continue sculpting on higher subdivisions to add details... /baking etc...
So yeah, the sphere is fine IMHO..

A comment regarding the default option, just to say that Blender doesn't work like Zbrush. Performance in Blender while you sculpt with Multires will become unusable slow before orbiting the view starts to give problems (on any common mid-range hardware). Fast navigate On by default doesn't make sense in Blender.

I think this feature is valuable to have as an option. But I think perhaps what would be nice is an option to choose what level of multires resolution is displayed for fast navigate. Right now it just seems to display the lowest possible resolution and I think an option to choose a higher level (but still lower than maximum) would be better.

Removing the feature would be an excessive reaction to surprise of new users.

The feature corresponds to an option to enable. It was introduced as is unchecked.
If default was changed to enabled, it is because a lot of people knowing the feature pushed or agreed to do, so for 2.8.
Otherwise, you would have lots of users complains at the moment, change happened.

You are thinking about a removal after accumulating lots of surprised reactions by people discovering the software.

But Fast Navigate is a "must have".
Users are currently complaining about bad performance to edit high poly meshes in edit mode.
That would make no sense to increase that dissatisfaction by making it harder to do it in Sculpt mode, too.
Result would just be : people not able to sculpt millions of polygons mesh, anymore.
That will stop them to ask for more polygons supported in object/edit mode.
The request will just amplify with more people asking for more polygons in 3 modes.

I think the sculpting template should use a cube with multires
instead of a subdivided sphere.

A multires modifier on a primitive does not make sense. That is a modifier that requires a meaningful basemesh.
A cube is too basic for that. An human head, a human or animal body, a tree, a cloth, ... that is the kind of meshes that would make sense to use to demonstrate multires modifier utility.
People already proposed an human head for template.
IMO, template should use a basic shape to explore dyntopo/voxel remesher workflow. And an addon should be done to propose meshes with multires modifier automatically created.

I agree that it should be off by default, and maybe make it clearer in the UI so people can find it easily, but please don't remove it. It is very useful for high res sculpting.

No, it should stay enabled by default. This feature is the only reason sculpting with multires is still kind of doable. Power users can turn this off if they want.
And yes, make it show in flat shading like Wax said.

About the removal and the cube with multires suggestions , I think the OP was just kidding, right? It makes no sense at all. LOL

YAFU (YAFU) added a comment.EditedSun, Sep 13, 9:00 PM

No, it should stay enabled by default. This feature is the only reason sculpting with multires is still kind of doable.

I'm not sure what you mean. The feature affects navigation performance in sculp mode, not sculp performance.

It doesn't sound like this has been discussed with Pablo ? Fast navigate is a necessity to keep navigating smoothly around a heavy multires object, it is standard in sculpting programs. Then, @ronan ducluzeau (zeauro) is right about a multires cube not being a good candidate for "starter geometry" - the workflow introduced by Pablo goes like this : 1. blockout forms from a primitive, using voxel remesh 2. retopo and use multires on the new object. For a "starter geometry", it does make more sense to use a subdivided cube.

This was not discussed (yet) with @Pablo Dobarro (pablodp606) .

I would like to get from the sculpting team why we need that mode in the first place. I'm a bit skeptical about viewport rotating being more performance demanding than sculpting a highpoly mesh.

Either way since this big change was done without a documentation I could find, it is important to check that the change was not done by accident.

I'm a bit skeptical about viewport rotating being more performance demanding than sculpting a highpoly mesh.

In my tests sculpt becomes unusable long before I start to have slow navigation. Perhaps people with very weak GPUs benefit from this feature. But I think that since 2.8 has increased GPU requirements, the average user does not have a very weak GPU. And by default options should satisfy the average user.

I don't know if this has been considered, but something to consider is having a kind of threshold that triggers fast navigation (at the specified multires level).

It doesn't make sense for fast navigation to engage when the user is able to rotate around a geometry with no perceivable frame drop, but it would be useful when navigation becomes sluggish.

My first thought was Blender looking at the polygons in scene, but sluggishness would depend from machine to machine with the same geometry.

A much better option would be triggering based on frame rate.
Maybe the user sets "15 FPS" as the threshold and fast navigation doesn't turn on until the viewport FPS dips below 15.

I'm not sure why it changed. Maybe it was an accident, or it was already in versioning code and got baked into the startup.blend.

Probably it should be off by default. This option was important when we were using immediate mode, but now that all vertex buffers are on the GPU and unchanged while navigating, it's usually not GPU side rendering that is the bottleneck.

It's also more important in combination with partial viewport updates, which are missing currently.

PS: I think the sculpting template should use a cube with multires instead of a subdivided sphere.

Multires is a second step in a sculpting workflow for detailing, after you've established the overall shape, and 8 faces is not enough for a good base mesh shape.

The actual problem here is that all the Sculpt Mode code design is based on the assumption that making a partial update and redraw of the mesh is faster than redrawing the entire mesh. This is the right assumption to make, and it was probably working as expected at some point in the 2.7 series, but for some reason, this design is no longer giving the expected results (see T80608 and the missing partial redraws @Brecht Van Lommel (brecht) pointed out), so it looks like fast navigate is doing nothing.
Unless you are using an ultrabook CPU with integrated graphics, I don't see any other situation were in the 2.9 series sculpting will be affected by drawing performance.

It is ok with me if to change the default or even removing the option from the UI, but doing so may create some confusion as new users would think that the reason for bad performance is because Multires does not have fast navigate, even if it does not have anything to do with that. (that is how all other sculpting software work, and in all those software navigating the viewport with a high poly mesh is much slower than doing brush strokes).

I'm not sure what you mean. The feature affects navigation performance in sculp mode, not sculp performance.

The thing is, rotating a dense mesh (no multires) in sculpt mode sucks, it lags like hell. Sculpting is already slow in blender no matter what, now add a slow navigation on top of that and that's the end of it.
If you only do stylized stuff, you won't miss it, but this feature is a must for everyone else , removing it would be a terrible decision.
It should be improved with a threshold setting like in other softwares, so people can tweak it freely as they want.

I don't mind if it comes disabled by default, but removing it is a no go.

YAFU (YAFU) added a comment.EditedTue, Sep 15, 1:52 PM

@Nelson (NAS) , What is your hardware (RAM amount, CPU and GPU)? Could you share a .blend file or a Multires configuration and the base mesh used where you can still sculpt fluently (or just before sculpt becomes unusable), but with big navigation problems?

I think this feature is valuable to have as an option. But I think perhaps what would be nice is an option to choose what level of multires resolution is displayed for fast navigate. Right now it just seems to display the lowest possible resolution and I think an option to choose a higher level (but still lower than maximum) would be better.

Agree with this. I might actually use the fast navigate feature if I could choose which multires level was displayed during navigation. As it stands right now I always turn fast navigate off.