Jump to content

Atmosphere works all wrong


ArunPrasath
  • Branch: Live Branch Version: Windows Pending

Hi There,

When a gas is being pumped off from a room, the lower right corner first fills up with gases from other rooms. It is not even.

Also, the averaging method of diffusing air to nearby cells is not correct. Air pressure normalizes instantly. Current working is incorrect

Please see attached pic below. The room was filled with hydrogen before. As its emptied by 10 continuously working pumps, air is taken in from the bottom 5 mesh tiles. Yet air is taken in from the bottom right corner only and not from the middle and left corners!

image.thumb.png.02416e1d9f831ee56e5d69dc01b77a71.png


Steps to Reproduce
See attached pic



User Feedback


What you describe is working like that by design. (light gas moving up and left, gases taking a long while to balance out). The idea behind it is (most likely) to have easy transition rules for every gas combination by only looking at one cell and its immediate neighbours. The less cells, you need to look at, the better the performance.

The movements are also not instant, because ONI is tile-based and tick-based. So every gas movement you see is just another step towards a stable state (light in upper left, heavy in lower right).

 

What happened in your scenario:

1) oxygen entered through mesh tiles.

2) oxygen is checked to neighbouring fields (simplified)

2.1) if neightbours are oxygen, stay where you are

2.2) if neighbours hydrogen, move down/right

3) rince repeat

Likewise hydrogen will move up and left if meeting oxygen.

 

By this logic you will quickly end up with your diagonal gas distribution.

So this does not seem like a bug to report, but a concept to discuss. You are surely not the only one, who would prefer a gravity-esque concept.

Edited by blash365

Share this comment


Link to comment
Share on other sites

actually you can remove the skewed distribution quite easy and without any performance impact... it may not totally flatten horizontally but it would be much better than now...

 

all you have to do is:

even sim steps: do what you do now

odd sim steps: mirrored logic (topright light, bottom left heavy)

 

it's more code but it will just compensate that unatural skew you see now...

  • Like 2

Share this comment


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...