spring: develop 9fdfe7c3 | [ Diff ] [ Back to Repository ] | |||
Author | Committer | Branch | Timestamp | Parent |
---|---|---|---|---|
Beherith | GitHub | develop | 2020-04-05 21:12:33 | develop 0f3a85f7 |
Changeset | LOAM (Lazy ROAM) for develop branch (0000508) * LOAM (Lazy ROAM) for develop branch ROAM frees up the entire triangle pool that stores the triangles of each tesselated patch (129*129 hmap pixels) and retesselates all patches whenever any in the visibility of patches occures, or if the unsynced heightmap changes (e.g.) explosion LOAM does nothing when patches only go out of view, or when patches go into view, and a not-too-stale tesselation is aviable when a 'stale' patch comes into view, only it is retesselated, and retesselation can affect neighbours, which is tracked and updated accordingly when a heightmap change occurs, only that patch is retesselated, and if the neighbours are affected, that is updated accordingly The cost: the mildly increased memory cost of keeping a larger triangle pool updated the advantage is lag-free scrolling on a map If the LOAM triangle pool runs out for any reason, then all the stored patches are all reset, and the whole view retesselated (exactly like it happens with ROAM on every visibility change) * Update LOAM Added detail increase on zoom in, fixed some midpos errors, shadow meshes are rendered from playercam perspective (much nicer, lower tri load) Fixed a bug that caused VBO updates for every patch every time * LOAM less lazy, but distribute load evenly over frames, behave well on zooming :) * use _STPF_ * type pedancy |
|||
mod - rts/Map/Ground.cpp | [ Diff ] [ File ] | |||
mod - rts/Map/SMF/ROAM/Patch.cpp | [ Diff ] [ File ] | |||
mod - rts/Map/SMF/ROAM/Patch.h | [ Diff ] [ File ] | |||
mod - rts/Map/SMF/ROAM/RoamMeshDrawer.cpp | [ Diff ] [ File ] | |||
mod - rts/Map/SMF/ROAM/RoamMeshDrawer.h | [ Diff ] [ File ] |