Support for fixed units in Blender 2.8

Jakes Lucke just commited his patch, it makes Blender keep the same untis no matter what you enter in a field, by default it is meter, kilograms and second. The old behavior can be restored (don’t know if a lot of people will use that ?) as he is saying in the commit. :slight_smile:

3 Likes

Does anybody have an idea of a setting that will use time units ?
Timeline seems to still be relative to User Preference.
And any kind of animation stuff still seems to be relative to timeline.

For fluid simulation time there is a setting where you can choose the time the simulation is in the real world (that we have to set to 10 seconds for a framerange of 250 frames to be at normal speed), but maybe it will change soon with mantaflow. Or maybe it changed already but I think it is still here, I cannot check right now.

3 Likes

Currently, it looks like physics are not affected.
Mantaflow did not use same time settings than elbeem sim. Smokes use a multiplier of fps instead.
And in Mantaflow, that idea was adapted from smokes to liquids.

I don’t think that will be possible to make simulation of days of a physic effect.
But maybe, it would make sense for future nodes setup made using “everything nodes”.

I’ve been longing for this since I started using Blender. I come from architectural/interior design education and a graphic design career. I want everything millimeters. In Blender anyway. Obviously I still like to use points for text and leading. This is an amazing change. Long overdue. Cheers devs.

2 Likes

It even has the dynamically sizing grid in the viewport. This is so awesome! :smiley:
I really need to give this a proper try, now ^^

I might actually use the units now. They were so inconsistent to use that I just stick with default blender units, and remember in my head that I am working in inches.

That does have a lot of consequences though. For years the viewport AO wouldn’t scale up that high, the walkthrough mode had fixed gravity set in meters, so it was like walking on the moon when I would jump. A lot of things were built on the assumption that everyone was modeling in 1 bu = 1 meter scale. The Devs have been really responsive though, usually my bug reports have been resolved within 24 hours.

Which units will python scripts use?
Lets say I write a script that moves an object by 2 units.
Will the script move the object by 2 cm when the units are set to cm and by 2 meters when the units are set to meters? Or is the object in both cases moved by the same distance because of some underlying system units?

I am asking this because in 3ds max they differentiate between “system units” and “display units”. You can for example set the system units to inch and the display units to cm. The user would see the units displayed in cm but the above discribed script would move the object by 2 inches (roughly 5cm).
This is increadibly annyoing behavior and I have lost countless hours to this when getting files form other people who weren’t aware of or didn´t care about the system units.

Should the choice of units scale not be saved when we “save startup file”? It keeps resetting to Meters instead of Millimeters for me. Still happy though :slight_smile:

At long last …Millimeters here i come!

1 Like

Try this with the new build make a 2m cube in meter units then change to mm units your cube is 2mm instead of 2000mm. I don’t think anyone wants that their model change in size when swapping between units.

4 Likes

I talked to jacques about this, he will look into it.

1 Like

I hope it works with import too!
Their are precision issues which is why the internal unit is scaled. As has been said many times max has a unit scale and a display scale that can be different so that precision is maintained.

It would be nice to have a macro that asks if you change the units what you want to happen.

1 Like

If they separate the system units and display units they have to do so very carefully. The way it is handled in Max is horrible.

They way it is handled in 3ds Max is exactly the same as in Blender. Just the UI presentation is different. The Unit Scale value field in the new 2.8 is exactly what “System Units” is in Max, while those Rotation/Length/Mass/Seconds dropdowns are what “Display Units” are in Max. Sure, Max doesn’t have as granular control (you can only choose length units), but the idea behind it is the same.

I have to agree though that the way it’s presented in Blender is a lot more logical. The way it’s presented in 3ds Max UI leaves a lot of room for confusion and has caused many mistakes and headaches for many people over the years :slight_smile:

The important thing is when you change units or import an object with different units in max you get asked if you want to scale the units, adopt the units or use the file units… which is handy though can be confusing… it needs good wording!

1 Like

That is what I mean. In Max the system units are rather hidden and I have encountered several seasoned Max artists who didn´t know about them. Some folks I would try to explain the difference and why using mixed units is usually bad but some wouldn´t understand the problem. It was infuriating.
Since Max system units default to inch I often recieved files looking like they were set to some metric unit but were actually running in inch.

Which is horrible if you live in a country where metric is the norm and it can be very time consuming or impossible to switch system units. It will often generate scaling issues with certain types of constraints or the Max equivalent of drivers. Expressions can get messed up and certain types of rigs will explode or get crumbled up like a piece of paper.

Some plugins would also allways use the system units no matter what the display units were. Very confusing all around.

I can’t get it to do this. I started with meters, added a 2m cube, switched to mm and had a 2000mm cube which is as expected.

One issue I found was that if I scaled a 2m or 2000mm cube in object mode, then applied Scale Blender reset the X, Y and Z scaling to 1.0, but also reset the length values of the cube, so that for example I now had a 4000mm cube which claimed it was at 1.0 scaling and claimed it was 2000mm in XYZ. The Apply Properties checkbox in Apply Object Transform was causing the unexpected behaviour.

1 Like

This whole segment is so dense that I can’t understand it. I’m an architect, have a masters degree, and I can’t understand this reasoning. Sorry for coming here, but I spent the last half hour trying to understand the point of all of this.

So, if I set up blender so it uses mm and start drawing the lengths are fine, they do what I understand they should from any other software or mental process. Then I use bevel, and the offset is in something else. So after looking around and trying to understand what I did wrong, I find that I should change the unit scale. So by now I have no idea what I’m doing. Why have any unit setting if it works like this? Why not set it to mm and have it actually be mm, like what you expect when you actually set it to mm?

Sorry for my tone, I’m just astounded by this - I honestly am not able to understand any of the reasoning behind a system like this. If I set units to something in my mind I would move, objects using those units and I would do anything at all related to length in those same exact units. If I understand this whole mess something like this happens - I set the units to mm and I can move objects in mm. If I want to use bevels and type in the offset I actually type it in some other units. SO why did I set the units?

At this point I don’t care if this is going to stay like this, I just would love it if there is any reasonable explanation at all.