Jump to content

Long decimals on block sizes


Weylin

Recommended Posts

I've been getting some really weird scaling values where a block will show something like 1.975543 instead of 2, and on zooming in close, it is indeed a hair smaller and leaves a gap, which leads to confusing issues later in construction, as well as some unsightly "z-fighting" overlaps.

 

Usualy doing a quick rescale snaps it back to the proper grid, but why are pieces getting into this mess in the first place?

 

I make a point of keeping the block scaler up to keep an eye on this. Seems like using Match Block gets this scrambled result a lot.

Link to comment
Share on other sites

  • 3 months later...

This is related to numeric errors in floating point numbers, which is perfectly normal and not a bug. The only way of handling this would be to round block sizes which would remove accuracy.

 

Hey, I understand why you say it isn't a bug but the end result of this is a bugged building system. I really love the building in this game but even if one uses whole numbers when building or a sensible scale one ends up with unsightly shadows in odd places or blocks that just wont line up properly. It gets especially problematic when using copy/paste to create more complex shapes.

 

I am sure you are aware of how bad things are but just in case others don't realise then this is the result of using a grid size of 1 and a scale step of 2 and just placing a 2x2x2 block on to the 2x2x2 root block using local grid, global grid, and block middle.

 

The root block, fine so far:

block index="1" color="ffbfaea3" up="3" look="1" material="0" upperZ="1" upperY="1" upperX="1" lowerZ="-1" lowerY="-1" lowerX="-1"

 

local grid:

block index="2" color="bfbfbfbf" up="3" look="1" material="1" upperZ="-1" upperY="0.999999881" upperX="0.999999523" lowerZ="-3" lowerY="-0.999999881" lowerX="-0.999999523

 

global grid:

block index="2" color="bfbfbfbf" up="3" look="1" material="1" upperZ="1" upperY="0.999999881" upperX="-1.00000024" lowerZ="-1" lowerY="-0.999999881" lowerX="-2.99999928

 

block middle:

block index="2" color="bfbfbfbf" up="3" look="1" material="1" upperZ="3" upperY="0.999999762" upperX="0.999999762" lowerZ="1" lowerY="-0.999999762" lowerX="-0.999999762

 

You say that rounding would fix this but you seem not to want to fix this because it reduces accuracy. I can understand that accuracy is desirable but just can't comprehend what in the building system requires the level of accuracy that results in a number like 1 becoming 0.999999762, for example.

 

The smallest scale is 0.05, surely a elegant solution would be to tie the rounding to the scale step being used or failing that to the smallest scale available. Obviously I do not have your skill or experience of coding so perhaps there is some use case or issue I am missing that requires this level of accuracy but I think some rounding would make the building process far less of a headache for the vast majority of people.

 

I hope you can understand how frustrating it is to spend hours on a build only to find out that some blocks don't line up or overlap causing weird shadows and having to track back and break things down to find out where it all started, or finding out there seems to be no way to solve it.

 

I also hope my argument/plea will lead you to reconsider your position on rounding in the build system.

 

Thank you for your time.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...