Re: low quality graphics ..
Posted: Mon Jun 14, 2021 7:08 am
yes but the current graphics are all ready at scale 1. so without re rendering them all the normals would be blown up in size to match the current entity sizes
yes but the current graphics are all ready at scale 1. so without re rendering them all the normals would be blown up in size to match the current entity sizes
Ah. So they're already low-res graphics, and it's the hi-res graphics that don't exist?kingarthur wrote: ↑Mon Jun 14, 2021 7:08 amyes but the current graphics are all ready at scale 1. so without re rendering them all the normals would be blown up in size to match the current entity sizes
Also perhaps not exactly what was asked for, I just remembered the No Animations mod which claims to reduce VRAM usage significantly.
I talked with kingarthur and he's going to implement frame_sequence as a means to maintain animations but with reduced frame count. Apparently py animations have an absurd number of frames.eradicator wrote: ↑Thu Jun 17, 2021 9:48 pmAlso perhaps not exactly what was asked for, I just remembered the No Animations mod which claims to reduce VRAM usage significantly.
Sounds like a nice compromise if it works (what with frame_sequence being itself limited to 255 frames = 4.25 seconds at 60fps). Does that imply he's also going to add some kind of mod option to allow user control over how strong frame count is reduced? Hm...looking at the wiki page it sounds like it should even be possible to make "No Animations" style generic mod that uses frame_sequence to procedurally reduce animations.kirazy wrote: ↑Thu Jun 17, 2021 10:20 pmI talked with kingarthur and he's going to implement frame_sequence as a means to maintain animations but with reduced frame count. Apparently py animations have an absurd number of frames.eradicator wrote: ↑Thu Jun 17, 2021 9:48 pmAlso perhaps not exactly what was asked for, I just remembered the No Animations mod which claims to reduce VRAM usage significantly.
you mean something like this? plan is that by default itll cut the number in half and if you max it out at 255 itll just cut the animations completely. itll only work on normal mode though as hr version will stay the same as now.eradicator wrote: ↑Thu Jun 17, 2021 11:50 pmDoes that imply he's also going to add some kind of mod option to allow user control over how strong frame count is reduced?
Heh, that's exactly how my setting works in the demo mod I posted above (lulz, 400+ downloads over night o_O). After some thought I think a simple 0-100% setting would be more intuitive to use though.kingarthur wrote: ↑Fri Jun 18, 2021 2:24 amyou mean something like this? plan is that by default itll cut the number in half and if you max it out at 255 itll just cut the animations completely.
I had the impression that the whole point is that there *is* only one version? Or are you making a copy for "normal" just to adjust the frames?kingarthur wrote: ↑Fri Jun 18, 2021 2:24 amitll only work on normal mode though as hr version will stay the same as now.
there is currently only a normal version in the files. the code i was working on makes a copy and adds it as the high res version and then edits the normal res version to remove frames as i assume anyone using the hr version probably doesn't care about vram issues and cant break anything by messing with it.eradicator wrote: ↑Fri Jun 18, 2021 1:28 pm
I had the impression that the whole point is that there *is* only one version? Or are you making a copy for "normal" just to adjust the frames?
I see. My procedural approach has two reduction settings, one for "normal" and one for "hr_version" (let the user decide what they need), and is completely agnostic to where the animations really come from. It just applies the sequence downsampling to anything it "finds". Mostly because it's much much simplier than writing a proper parser for recursive animation layers and having to care where those even are in each kind of prototype. Ofc your situation is different if you only need to deal with definitions that you wrote yourself :D.kingarthur wrote: ↑Sat Jun 19, 2021 1:01 amthere is currently only a normal version in the files. the code i was working on makes a copy and adds it as the high res version and then edits the normal res version to remove frameseradicator wrote: ↑Fri Jun 18, 2021 1:28 pm
I had the impression that the whole point is that there *is* only one version? Or are you making a copy for "normal" just to adjust the frames?
I don't know if I'm alone, but I do like the crispyness of HR tiles, belts, icons, character animations etc. So I'm using HR even though I only have 2gigs of VRAM. I think I might prefer reduced HR animations over full-animation-but-everything-lq. (Would need some actual playtesting.)kingarthur wrote: ↑Sat Jun 19, 2021 1:01 amas i assume anyone using the hr version probably doesn't care about vram issues and cant break anything by messing with it.
Yeah, also watch out for symptoms like these spikes in "GPU load" : This helped making zooming much more smoother for me in 0.16 AB (despite only "10% GPU load"), might or might not apply here : Also, what Zanthra said.
Right, oh, wait, Factorio actually has THREE levels of graphics, with IIRC "low-res" being 1 pixel for 4 of normal too..?kirazy wrote: ↑Mon Jun 14, 2021 4:14 pmAh. So they're already low-res graphics, and it's the hi-res graphics that don't exist?kingarthur wrote: ↑Mon Jun 14, 2021 7:08 amyes but the current graphics are all ready at scale 1. so without re rendering them all the normals would be blown up in size to match the current entity sizes
Oh, is this going to help with the slowdown around biosamples "ore" ?kirazy wrote: ↑Thu Jun 17, 2021 10:20 pmI talked with kingarthur and he's going to implement frame_sequence as a means to maintain animations but with reduced frame count. Apparently py animations have an absurd number of frames.eradicator wrote: ↑Thu Jun 17, 2021 9:48 pmAlso perhaps not exactly what was asked for, I just remembered the No Animations mod which claims to reduce VRAM usage significantly.
Thank youuuu !eradicator wrote: ↑Sat Jun 19, 2021 12:56 amSo, after wasting way too much time on polishing the thing up and reducing the frame stutter I decided to officially publish it anyway so that other modpacks can benefit too.
I present you: Eradicator's VRAM Saver (let's see how long it takes this time to break 400 downloads...).
Mipmaps are for icons, and per https://wiki.factorio.com/Prototype/Animation, doesn't look like low_res is a thing.BlueTemplar wrote: ↑Sat Jun 26, 2021 11:30 amRight, oh, wait, Factorio actually has THREE levels of graphics, with IIRC "low-res" being 1 pixel for 4 of normal too..?
... or was "low-res" actually deprecated with 0.17 ?
Also I remember mipmaps being added after 0.17.0, or was it just for icons & belt icons ?
Np. Feel free to run around the internet and advertise ;).
Mipmaps are supported on lots of stuff, including Animation which you just linked. But mipmaps are a memory-for-speed trade. They consume *more* memory, not less.kirazy wrote: ↑Sun Jun 27, 2021 12:38 amMipmaps are for icons, and per https://wiki.factorio.com/Prototype/Animation, doesn't look like low_res is a thing.BlueTemplar wrote: ↑Sat Jun 26, 2021 11:30 amAlso I remember mipmaps being added after 0.17.0, or was it just for icons & belt icons ?
eradicator wrote: ↑Sun Jun 27, 2021 11:14 pmMipmaps are supported on lots of stuff, including Animation which you just linked. But mipmaps are a memory-for-speed trade. They consume *more* memory, not less.
Code: Select all
mipmap_count
Type: uint8
Default: 0
Only loaded if this is an icon (has flag "group=icon" or "group=gui").
kirazy wrote: ↑Tue Jun 29, 2021 4:06 ameradicator wrote: ↑Sun Jun 27, 2021 11:14 pmMipmaps are supported on lots of stuff, including Animation which you just linked. But mipmaps are a memory-for-speed trade. They consume *more* memory, not less.Code: Select all
mipmap_count Type: uint8 Default: 0 Only loaded if this is an icon (has flag "group=icon" or "group=gui").
Yea, but is there a mechanism that prevents setting that flag on an entity (etc.) animations? After scrolling through the whole prototype overview I haven't seen a single instance where a Prototype/Animation is used as an icon. Only Prototype/Sprite and IconSpecification seem to be used as icons, and the latter has icon_mipmaps not mipmap_count. So I'm a bit puzzled what the intention is there.kirazy wrote: ↑Tue Jun 29, 2021 4:06 ameradicator wrote: ↑Sun Jun 27, 2021 11:14 pmMipmaps are supported on lots of stuff, including Animation which you just linked. But mipmaps are a memory-for-speed trade. They consume *more* memory, not less.Code: Select all
mipmap_count Type: uint8 Default: 0 Only loaded if this is an icon (has flag "group=icon" or "group=gui").
Oh, I agree mipmaps don't save memory. I was just contesting the idea they can be used for more than just icons. I don't quite buy Zanthra's response, unless we're talking about different things. When discussing mipmaps I don't really mean the auto-generated mipmaps the game creates, I mean the manually created mipmaps that are added in the files at specific scaling steps. I don't think there's a way to do that for anything but icons.eradicator wrote: ↑Tue Jun 29, 2021 2:21 pmYea, but is there a mechanism that prevents setting that flag on an entity (etc.) animations? After scrolling through the whole prototype overview I haven't seen a single instance where a Prototype/Animation is used as an icon. Only Prototype/Sprite and IconSpecification seem to be used as icons, and the latter has icon_mipmaps not mipmap_count. So I'm a bit puzzled what the intention is there.
Anyway, the main thing I wanted to say: mipmaps are not meant to reduce VRAM usage.
And I'm not contesting that mipmaps are *intended* to be used for icons. Just saying that the docs suggests that it's a simple flag check and thus I'd assume they can be used on non-intended things too.
Neither do I. Unless icon_mipmaps and sprite/animation mipmap_count are completely different implementations.