Object Dimensions no longer accounting for Subdivision

I am not sure if this is a deliberate change, or a new setting somewhere, or a bug.

This is the default behaviour up to and including 4.4:

Default cube, 2m x 2m x 2m.

Add subdivision, now it’s dimensions are 1.68m x 1.68m x 1.68m.

In Blender 4.5 however:
Default cube, 2m x 2m x 2m

Add subdivision…


Still thinks it’s 2m x 2m x 2m.

I need the behaviour where the given dimensions include subdivision.

Regards

Hm. This is interesting.

In 4.4 over here: I’m getting a dimension of 2m, both with and without the modifier.

Weird.

Sounds like a setting somewhere then…

Hmmm.

I’d bet it comes from GPU subdivision, at this stage the UI has no clue what the subdivided mesh looks like

since it works with other modifier I think that’s it… Now hard to tell if it’s a known issue or an actual regression…

Probably to get this working properly that would requires dirty hacks…
In the meantime if you add another modifier after subdiv you force CPU subdiv and the numbers are good again !

Cheers.

Hmmm. That sounds plausible.

I don’t have ‘GPU Subdivision’ checked in the preferences, so it must be doing that without my say so.

Oh well, back to version 4.4.

Ah. That’s exactly what it is.

Turning GPU on/off - you’ll see the Dimensions change.

Which honestly, I find completely weird. The number should be the same in both, regardless of which processor is doing whatever it does.

Where are you switching GPU on and off?

It’s sort of hidden under a dropdown for mystery reasons.

Yeah, that bottom option for Subdivision; I’ve been trying that, but it makes no difference to me if it’s on or off.

Weird,
Silly test if you add a geometry node modifier (even empty) after the sub D the dimensions are right.

(I get 222 without on 4.5)

Also same with Bevel modifier and probably some others.

Yes. That works.
As does adding a decimate modifier and leaving it at 1.0.

Looks a bit buggy to me.

Aye.

I could probably manage by adding a Decimate modifier after subdivision, but I’d rather not have to. Will carry on in 4.4 for now and see if it changes in the future.

Thanks for digging onto it.

Cheers

I would try an Empty Geometry node It should not add much complication, calculation, just Geo in-out. (0.1ms)

Yeah, but from a technical standpoint that’s completely understandable :

The goal of GPU subdiv is to offload the work to the GPU so it’s faster. Therefore this append as a last step in the process, so what blender “see” is the un-subdivided mesh. Then this is sent to the GPU who perform the subdiv and display the mesh at the same time. It can’t send it back to the CPU to evaluate the bounding box then to update the UI. Maybe some hacks are possible but it might be a bit more difficult than what we think. Since we have somewhat to go back in the past in the pipeline just when we reach the end…

Yes because then it’s evaluated on the CPU. For the same reasons…
To be able to just display the mesh subdivided so the CPU has nothing to deal with it. It should be the last step in the process. It can’t upload the geo to the GPU/VRAM, send it back to the CPU/RAM add bevel, GN, or whatsoever and send that back to the GPU for final display… This would completely ruin the benefit of GPU subdivs…

If that’s really important just disable GPU subdiv in prefs, unless you do animation it’s not going to be super beneficial… At least it’s worth testing your scene’s performance with and without.

When I checked recently I gaves me 1 or 2 fps … But the performances varies depending on the case and the subdiv level…

An empty GN is also a good way to bypass the GPU subdiv but if you end up adding that to all your objects, then just disable it in prefs :smiley:

I get the benefits of GPU subdiv, but the problem for me is that I’m modelling stuff for CNC machining and moulding, and so I need to know the dimensions with subdivision applied.
I’d prefer not have to fiddle about adding extra modifiers just to get them.

Cheers
Derek

Problem is even if you turn off GPU subdivision it still does to show the correct dimensions.

Yeah then it probably completely make sense to disable GPU subdiv in preferences and I don’t think you’ll really feel the difference except that the numbers will be correct :slight_smile:

Unfortunately not :frowning_face: