Space Engineers Feedback

43
Votes
Allow individual armor block face color + _reduce_ memory pressure
Right now the color of a block is stored in a Vector4 for each and every block. That is 16 bytes per block. I suggest moving the block colors to a 256-color palette per grid (or per ship, whatever is the most convenient) and storing indices to each separate armor block face as a byte - that means only 6 bytes per block + individual face painting. 256 colors _should_ be by far enough per ship.


malwaredev shared this idea 02/08/17 16:40
Korfio 18/08/17 14:24
Agree, a palette for each grid. Keep palettes separate on merge and connect though.
Korfio 18/08/17 14:31
As an addendum, factions could enforce palettes. So you could have main,secondary1,secondary2,detail1 and detail2 as fixed, labelled colours for the first entries in the palette. Then if you change faction, your ships are magically repainted.
Sakanax 16/09/17 10:57
I don't program GPU's, so if someone knows better jump in here! But I'm pretty sure this would only free up memory in terms storing blocks in RAM and/or the game files themselves. Nowadays GPU's actually convert a 256-color pallet back into full color, so just keep in mind this would still take up the same amount of video memory. I'm not convinced the performance gain would be noticeable.
malwaredev 18/01/18 18:28
@Sakanax I'm sorry I never saw this comment, and you're probably never gonna see my response, but I _am_ a programmer. This is not related to GPU at all, but the memory space the blocks themselves take up, not what's used by the GPU. The palette would contain full colors, and those colors would be what's passed to the shaders. Think about how many blocks ships are composed of, and the few bytes per block quickly add up.