beyzend wrote:
Also, moving the regions inside a single Volume is not possible, I was thinking of paging earlier and this is not possible with unmodified Volume class because they are basically array structures, i.e. moving would mean copying memory. So I guess my translation will just have to create new volumes as pages come in. I can also get rid of the skirts entirely because I can give my custom extractor access to neighboring volumes. I simply have to treat edges separately from interiors.
You could wrap around, so that if one chunk is up against the side of the volume, then the next chunk could just be placed in the other side of the volume. Afterall, your basically just using the volume as a scratchpad for the process of surface extraction. I'm not saying this is a good idea (or even that it works!) it's just something to consider.
paycheck wrote:
I guess I need to go back and read, but is compression done on a volume level?
Compression is done but not much. The volumes is stored as a collection of blocks, and those blocks which are all one material are shared. This seems to compress the volume down to something like 25% of it's original size (of course, this depends a lot on the volume).
But I have been thinking about this, I think it would be desirable to actually compress the contents of the blocks, at least for those blocks which haven't been touched for a while. I believe blocks will easily compress down by a factor of 100 or so - but there is a trade off between good compression while also allowing the data to be modified quickly.
I'll probably make a change like this, but I'm not sure how soon.