Set object origin - but it's not at local 0,0,0 - often a bit off

I selected an object, tabbed into Edit Mode, selected a vertex, uses Shift-S and 2 to move the 3D cursor to the vertex. Then I tabbed to Object Mode, picked “Set Origin to 3D Cursor.” It looks like it worked, but then, when I go back to Edit Mode I see this:

image
I’ve seen this happen a lot. I would think the origin would be at 0,0,0 and not a little bit off. (And what’s more confusing is this is showing 6 decimal places in the display and sometimes the same display shows a number like 1.5 when the actual position is 1.53987.)

Is this due to how Blender rounds off measurements or some other issue, or is it something I’m doing wrong? I tried this multiple times and could NOT get the vertex I set to the origin to be at a true 0,0,0.

That is normal due to operations on the mesh that values get floating point inaccuracy.
If you want the origin at 0,0,0 you have to overwrite the values after setting the origion to the vertex.

1 Like

Okay, so at least it’s not something I’m doing wrong.

I can do that, but does that jog the vertex just a little when done? I only addressed the origin, but it confuses me because it happens to other vertices in the same mesh. If it’s just a floating point issue and I can keep going, knowing that things haven’t moved around, then that’s easier to deal with.

To your computer, 0,0,0 is the same as 0.000017, 0.00002, 0. That is to say- changing those to zero not only won’t change anything visually, but they’ll probably go right back as soon as you stop editing them :wink: Ultimately, Blender has lots of floating-point errors, you can entirely ignore them, precision beyond floats is only needed for CAD software (which doesn’t use floats, it uses longs AFAIK)

That raises the question of just how many significant digits Blender uses. These numbers are 5 places beyond the decimal. How far out does Blender use?

Along with that, I find it interesting that Blender displays these digits, but that there are times I have a number like 2.65 and it rounds to 2.7, with nothing to indicate it’s rounding off until I click in the box where it’s displayed.

I’m using it for printing so, unless these errors add up, as long as the total is below a threshold (which changes from printer to printer, or even print to print), then it’s not an issue for me - but it is something I’ll have to be aware of if I ever start sending STLs out for creation by someone else. But if it’s only an issue in the display, that’s not a big problem.

6 significant digits doesn’t seem like quite enough for floating point errors, it’s true, but it’s really hard to predict exactly how these errors are going to take place. I don’t think it should be a problem though - I’m 99% sure it’s just a visual glitch and the object is actually at 0,0,0

What I’m wondering is how far past the decimal matters? Will 1.2345 and 1.23456 be read as the same? Where is the cutoff where it becomes so fractional it doesn’t matter or Blender doesn’t use it? At the ten thousands place? The hundred thousands place?

thats not entireney true.

It is usefull to have doubles in very large scale enviroments

eg. some open world games and engines use doubles for positions, and floating point games must use workarounds

1 Like