Page 1 of 1

What "Atlas Texture Size" really do?

Posted: Sun Jun 11, 2017 1:27 pm
by mp0011
IDK if it's a bug, or my GPU just sucks, but what's a point of using high Atlas Texture size?

Except killing GPU, dropping frames and lagging, because in forest, with higher setting, at regular zoom my GPU usage level goes to 100%, while at 2048 it's about 0%, at any zoom level...

I do not notice any difference in games look, so what this option do?
Does the game should look better? Or work better in other, specific factory regions?

GPU: HD6850 1GB.
Atlas set to 2k
Atlas set to 2k
Atlas2k.jpg (990.42 KiB) Viewed 9775 times
Atlas set to Largest
Atlas set to Largest
AtlasFull.jpg (856.14 KiB) Viewed 9775 times

Re: What "Atlas Texture Size" really do?

Posted: Sun Jun 11, 2017 4:10 pm
by orzelek
Bigger atlas sizes are better for rendering - they reduce amount of texture switching needed during rendering. This also allows to optimize draw calls which improves performance.
For them to show the benefit they need to fit in VRAM - if they don't performance suffers more then with smaller ones since whole atlas needs to be streamed from RAM at once.

Re: What "Atlas Texture Size" really do?

Posted: Sun Jun 11, 2017 4:41 pm
by mp0011
So, this game do not require better GPU or Graphic Card, just more of vram?
And cheapest GPU i have found (like HD5450 2gb/64bit) would work better in this game?

Re: What "Atlas Texture Size" really do?

Posted: Sun Jun 11, 2017 6:05 pm
by orzelek
If you want high res something with more then 2GB VRAM is needed.
For normal resolution 2GB should be plenty unless you get a lot of mods.

Re: What "Atlas Texture Size" really do?

Posted: Mon Jun 12, 2017 10:29 am
by mexmer
mp0011 wrote:So, this game do not require better GPU or Graphic Card, just more of vram?
And cheapest GPU i have found (like HD5450 2gb/64bit) would work better in this game?
i would not opt for 2GB card now, 4GB seems to be optimal choice from current and also feature requirements.

1050ti is around $150-170 or so, imo best value/price card atm.

even for factorio, which seems to be not that demanding on graphic, if you have lot of mods that have own texture (for example bobs, angels, 5dim, and other bigger mod sets), you will soon hit 2GB vram limit and your performance will drop.

i replaced my 260X (2GB GDDR5) with 1050Ti (4GB) and it helped with performance in large base. Mainly because game didn't need shuffle textures between RAM and GPU VRAM.

Re: What "Atlas Texture Size" really do?

Posted: Mon Jun 12, 2017 11:14 am
by Koub
mexmer wrote: i would not opt for 2GB card now, 4GB seems to be optimal choice from current and also feature requirements.
TBH if I was to buy a graphic card today, I'd try to get at least 6 GB VRAM. Game requirements are getting higher every day, and I have already seen high res requirements for games at 6 GB. I'm not expecting this to go down in any foreseeable future.

Re: What "Atlas Texture Size" really do?

Posted: Mon Jun 12, 2017 11:04 pm
by mp0011
So, after next few releases, no one will be able to play this game, without big pixels, on laptops and low-end/mid-range computers.
In a FLAT 2D game. In a game with graphic rendered in very similar way to games like Diablo 2 or Sacred. Something is not optimised here...

Maybe some objects should be simple, textured 3D models, instead of series of flat images, like train, tank, car, wagons, enemies and player...?
Any GPU (now already barely used by the game) can handle this, but You use 1 set of textures, instead of 128 tank images + 128 tank shadows + masks + more turret images... This could be converted into almost exactly identical, flat texture on the fly, if You really need this before display...

Also, do (for example) boiler animations really need to contain 32 IDENTICAL images, with only minor differences?
Can You just add overlayed, animated layer, containing only pixels that are really changing? I see it is done that way in steel furnace...

Or, maybe, just let players to select which textures can be in HR? Like, I want HR factory stuff (inserters, belts, buildings), but not necessary vehicles, because I drive with wide zoom anyway? Also, game could take a lot of less vram if I could disable every 2nd animation frame...

Re: What "Atlas Texture Size" really do?

Posted: Tue Jun 13, 2017 6:11 am
by mexmer
mp0011 wrote:So, after next few releases, no one will be able to play this game, without big pixels, on laptops and low-end/mid-range computers.
In a FLAT 2D game. In a game with graphic rendered in very similar way to games like Diablo 2 or Sacred. Something is not optimised here...

Maybe some objects should be simple, textured 3D models, instead of series of flat images, like train, tank, car, wagons, enemies and player...?
Any GPU (now already barely used by the game) can handle this, but You use 1 set of textures, instead of 128 tank images + 128 tank shadows + masks + more turret images... This could be converted into almost exactly identical, flat texture on the fly, if You really need this before display...

Also, do (for example) boiler animations really need to contain 32 IDENTICAL images, with only minor differences?
Can You just add overlayed, animated layer, containing only pixels that are really changing? I see it is done that way in steel furnace...

Or, maybe, just let players to select which textures can be in HR? Like, I want HR factory stuff (inserters, belts, buildings), but not necessary vehicles, because I drive with wide zoom anyway? Also, game could take a lot of less vram if I could disable every 2nd animation frame...
if you play only vanilla game without mods, you will definetly be ble to play it for long time, before you get slowed down by insufficient vram (unless you have only 256MB, like some discrete graphics on notebooks have)
but keep in mind, that many mod contains lot of graphics. mod set i use has 5 times more graphic than whole factorio game.

so you want to tell modders - please don't add graphic, so people with lowspec computer can play game? it's not how it works. you could see similar issues in other games that use mods, that allows for adding/chaning graphic (skyrim is quite good example, there are even complete lands, armor sets, new npcs and so on).

Re: What "Atlas Texture Size" really do?

Posted: Wed Jun 14, 2017 11:05 pm
by fwyrl
mp0011 wrote:So, after next few releases, no one will be able to play this game, without big pixels, on laptops and low-end/mid-range computers.
In a FLAT 2D game. In a game with graphic rendered in very similar way to games like Diablo 2 or Sacred. Something is not optimised here...
This is not the case. I play factorio on my netbook (integrated with <128 mb Vram, <1 gb RAM) all the time, and while I do have to lower graphics quality, I don't have some massive quality drop. All the atlas does is help the PC determine how much texture data to keep in your video card at any time. If you set it too high, your PC just keeps it all out of your card, and so has to pull it from RAM (several hundred times slower) when it has to use it.

Diablo 2 also has much less graphics data to hold, simply because of the way the game is made.
mp0011 wrote: Maybe some objects should be simple, textured 3D models, instead of series of flat images, like train, tank, car, wagons, enemies and player...?
Any GPU (now already barely used by the game) can handle this, but You use 1 set of textures, instead of 128 tank images + 128 tank shadows + masks + more turret images... This could be converted into almost exactly identical, flat texture on the fly, if You really need this before display...
This would increase the graphical strain of this game at least 10x. 3d models, even simple ones (which factoiro's are decidedly not), are much slower to render than a couple dozen flat images.
mp0011 wrote: Also, do (for example) boiler animations really need to contain 32 IDENTICAL images, with only minor differences?
Can You just add overlayed, animated layer, containing only pixels that are really changing? I see it is done that way in steel furnace...
This might be a useful optimization if the game wasn't already CPU-bound. However, adding together 2-5 different sprites for every entity you draw is going to eat a lot more processing time. You could try to do this with your GPU, but that would involve streaming even more data from RAM then you already do. It's more worth your resources to eat the extra VRAM and save the CPU time for path calculations, entity updates, etc.
mp0011 wrote: Or, maybe, just let players to select which textures can be in HR? Like, I want HR factory stuff (inserters, belts, buildings), but not necessary vehicles, because I drive with wide zoom anyway? Also, game could take a lot of less vram if I could disable every 2nd animation frame...
Not all textures are high rez right now. It might be interesting to be able to select which ones you wanted, though, if that would actually save Vram/render time.

Final thoughts: High Rez textures cause little to no additional lag if you have enough VRAM to hold the HR textures. If you don't have enough VRAM, then you should just play the game on lower quality for now, until you have a better card. There's not much that can be done about this, as to get a card powerful enough to be able to take the extra load of compositing all those images every frame would take way more money than just getting a card with more VRAM. The texture atlas also has little to do with HR textures, and is simply you telling your PC how to do things more efficiently.

Re: What "Atlas Texture Size" really do?

Posted: Wed Jun 14, 2017 11:46 pm
by mp0011
fwyrl wrote:mp0011 wrote:
Maybe some objects should be simple, textured 3D models, instead of series of flat images, like train, tank, car, wagons, enemies and player...?
Any GPU (now already barely used by the game) can handle this, but You use 1 set of textures, instead of 128 tank images + 128 tank shadows + masks + more turret images... This could be converted into almost exactly identical, flat texture on the fly, if You really need this before display...


This would increase the graphical strain of this game at least 10x. 3d models, even simple ones (which factoiro's are decidedly not), are much slower to render than a couple dozen flat images.
Oh, come on...

Imagine game like Quake III Arena. ANY PC younger than 15 years, virtually ANY laptop, probably most micro-computers like raspberry PI can render it in hundreds FPS, without any major GPU load.

Now, imagine Q3 player model rendered in FActorio.
And Q3 models, 20 Years old, already with animations, are far better than we need in Factorio.

Is it not better than drawing 128 different images for player / every armor / guns?
I guess, only here, implementing just few 3d simple animated models we gains 200-300MB+ of vram...?
I don't think such models may be in any way to heavy for any GPU.

And this is difference between "i need to play on medium with 1GB vram" vs "I may play highres on 512 vram", because My GPU does nothing anyway, except shuffling memory around.

BTW - if You have GPU with 2 or 4GB, Your GPU probably does nothing during whole game, so few simple models won't hurt.

There are no need to make everything in 3d, just objects we see from variable angels. Player, vehicles, enemies...
Buildings may be just as it is now, flat images.
fwyrl wrote:There's not much that can be done about this, as to get a card powerful enough to be able to take the extra load of compositing all those images every frame would take way more money than just getting a card with more VRAM.
My GPU is able to handle Witcher 3, Doom and Quake Champions nn Medium settings.
It SHOULD handle Factorio on ultra, if devs only just optimise memory usage. And I know it is possible.

Re: What "Atlas Texture Size" really do?

Posted: Fri Oct 26, 2018 11:35 am
by mbattjes@gmail.com
Actually i know that the game Project Zomboid switched from 2D to 3D because it would lead to performance improvements. But not all games are the same and doing that is a huge undertaking.

Re: What "Atlas Texture Size" really do?

Posted: Sat Oct 27, 2018 9:09 am
by posila
Thanks for the necro, I read this some time ago, but didn't respond because it was already couple of months old. So now is my chance :)
mp0011 wrote: Wed Jun 14, 2017 11:46 pm My GPU is able to handle Witcher 3, Doom and Quake Champions nn Medium settings.
It SHOULD handle Factorio on ultra, if devs only just optimise memory usage. And I know it is possible.
This is mind boggling. Your 2010 GPU can handle other 2017-ish games on medium settings, but the game that has not been fully released yet in 2018 is expected to run on ultra?

I don't claim rendering in Factorio is super optimized, but regardless how optimized it is, we would aim High quality settings for mid-range contemporary cards, not mid-range cards from 2010.
mp0011 wrote: Wed Jun 14, 2017 11:46 pm Maybe some objects should be simple, textured 3D models, instead of series of flat images, like train, tank, car, wagons, enemies and player...?
Any GPU (now already barely used by the game) can handle this, but You use 1 set of textures, instead of 128 tank images + 128 tank shadows + masks + more turret images... This could be converted into almost exactly identical, flat texture on the fly, if You really need this before display...
I thought about doing this for trains at least, but before 0.17 it was very impractical to do any 3D rendering. If we did it though, it would still be under some "Low quality" option as real-time 3D rendered objects would not quite fit to the world composed of prerendered and manually post-processed 2D sprites (unless we would change them to look more like real-time rendered too).
mp0011 wrote: Wed Jun 14, 2017 11:46 pm And this is difference between "i need to play on medium with 1GB vram" vs "I may play highres on 512 vram", because My GPU does nothing anyway, except shuffling memory around.
mp0011 wrote: Sun Jun 11, 2017 4:41 pm So, this game do not require better GPU or Graphic Card, just more of vram?
And cheapest GPU i have found (like HD5450 2gb/64bit) would work better in this game?
Shuffling memory around is what is slow in computing today. HD5450 shuffles memory around much slower at than your HD6850, so HD6850 will win despite having to go through slow PCI-e bus much more often.

I agree it would be better if the game was in 3D, we kind of missed our chance when we introduced high-res. The thought was that artists will just re-render models we have in higher resolution, but they ended up redesigning almost all of them; so that would have been our chance to make low-poly models instead of sprites. Big factor is also that since we released the game on Steam, we are in a mind-set of "let's finish 1.0 and leave Early access", so we don't want to start any huge overhaul. (But it would still be ton of work to optimize rendering in 3D.)

My hope is the most people will be able to play with high-res sprites in 0.17, just don't expect to play on Ultra (whatever that'll be) if don't have recent GPU.

Anyway, the graphics settings are exposed to users because I don't have silver bullet values for those options, that would work well for everybody. I know for a fact "Atlas texture size" set to 2048 will destroy performance for some people, while improve it for others. If you didn't have performance issues with higher options, setting it lower is definitelly worse (you still might not have performance issues after changing it, but CPU will spend more time on issuing commands to GPU).

Re: What "Atlas Texture Size" really do?

Posted: Wed Nov 14, 2018 7:04 pm
by Domin1c
so that would have been our chance to make low-poly models instead of sprites
Thanks the gods for you choosing sprites. They looks awesome and certainly better than any low-poly 3d models suited for ancient potato-PCs.

Re: What "Atlas Texture Size" really do?

Posted: Mon Nov 19, 2018 12:26 am
by mp0011
I have upgraded sience then (gtx 970), but I do not change my mind. My GPU is basically IDLE now while playing Factorio.

I feel that on most non-gaming computers, even on "potato" laptops, it is similar - GPU is idle (or used far below its capabilities), while video memory bandwidth is bottelnecking the performance. With good and detailed 3d models for moving entities (with optional LOD settings) this game would run 60fps on virtually any pc or laptop. Until CPU start bottlenecking...

I do not think You notice any negative changes if tanks, trains, players, enemies etc will be 3d models. What You gain, is ability to make far better, detailed and smooth animations, easier to create and upgrade, and working better on more PCs... Not mentioning ragdolls and random ememies desintegration on eg. mines, flying limbs and heads etc.

Things like inserters, buildings, tracks, lands, trees (and 90% of entire game entities and decors) may still be as sprites, since they are not using that many different and rapidly changing images, and thus do not have have impact on video memory.