Changes between Initial Version and Version 11 of Ticket #1743


Ignore:
Timestamp:
Aug 18, 2013, 11:38:07 AM (11 years ago)
Author:
wraitii
Comment:

Okay so the proper fix is on its way with [13698]. Basically I made incremental changes possible (the game will only update relevant patches).

To further fix this, I need to allow actual partial data information (no need to recompute, for example, the distance to shore, which is really slow, if we're only changing the waviness). This might allow to have foam and waves in Atlas again.

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #1743

    • Property Owner set to wraitii
    • Property Priority Must HaveShould Have
    • Property Status newassigned
    • Property Milestone Alpha 13Backlog
  • Ticket #1743 – Description

    initial v11  
    1 Two related problems:
    2  * Modifying terrain causes a noticeable delay in Atlas when super fancy water effects are enabled, since it recomputes all the water render data.
    3   * I think one thing which would help is waiting until the user has stopped modifying terrain before updating, but it will still cause a delay.
    4   * Not sure if it's feasible to do a partial update of the data, perhaps restricted to a certain area which was modified?
    5   * Another thing to consider, if we allow terrain to change during games, the same case will be used, and as annoying as it is in Atlas, it would be far worse to experience this delay in-game.
    6   * Other options: threading or optimizing the computation, or splitting it into multiple steps?
    7  * Changing water height doesn't force the data to update, should be a simple fix to `CCmpWaterManager`.
     1Atlas cannot have foam or waves because it is currently too slow to compute. This is linked with some water settings (waviness notably) which should force an update whenever they are updated.
     2
     3To help with this issue, we could:
     4
     5 * Wait until the user has stopped modifying terrain/settings to update, which would improve usability drastically if it's really slow. Alternatively, we could only update the patches visible on camera when updating, and update the others when the user is finished (this could also be used for in-game terrain changes if it happens to be too slow).
     6 * Do partial update of the data (currently 4 arrays: 2 for wave direction, one for foam amount, one for "distance to shore"). If we could update only the foam amount, for example, it would be much faster to simply change the waviness and we could likely re-enable foam in Atlas.
     7
     8~~Ultimately, we could also thread the computation, optimize it as much as possible, or do it in multiple steps. Two related problems:~~
     9
     10 * ~~Modifying terrain causes a noticeable delay in Atlas when super fancy water effects are enabled, since it recomputes all the water render data.~~
     11   * ~~I think one thing which would help is waiting until the user has stopped modifying terrain before updating, but it will still cause a delay.~~
     12   * ~~Not sure if it's feasible to do a partial update of the data, perhaps restricted to a certain area which was modified?~~
     13   * ~~Another thing to consider, if we allow terrain to change during games, the same case will be used, and as annoying as it is in Atlas, it would be far worse to experience this delay in-game.~~
     14   * ~~Other options: threading or optimizing the computation, or splitting it into multiple steps?~~
     15 * ~~Changing water height doesn't force the data to update, should be a simple fix to `CCmpWaterManager`.~~