Doing it every time a block is placed would be 100% correct and 100% dumb. Using a background job reading from a task list makes it unnoticable and in a single player game still 99% correct (since the model would usually be regenerated before you get to a distance where you could notice it). There should also be a threshold of block changes, regenerating doesn't happen below that threshold. So a door you break in doesn't regenerate the distant view but destroying the building does.That looks complicated performance wise. You would have to update the distant model every time a block is placed, destroyed or painted. Even if it is every ten blocks that's a lot of updating. Plus you would have to keep a distant model for each building in the world. Whereas now there is only one model per kind of POI. Might as well not use distant model at all... But imagine the lag if the game had to completely load every building in our line of sight.
Unchanged pois could still share the same distant model, only a poi that is regenerated would need a new poi-id in the map.
Last edited by a moderator: