Commit Graph

19 Commits

Author SHA1 Message Date
elsid 215b46503c
Support rendering for navmesh update frequency as a heatmap
Useful when need to find tiles with high number of updates.

Add debug Lua package with new functions to toggle render mode and set navmesh
render mode.
2022-05-17 01:54:20 +02:00
elsid 5b9dd10cbe
Limit max navmeshdb file size
Use "pragma max_page_count" to define max allowed file size in combination with
"pragma page_size" based on a new setting "max navmeshdb file size".

* Stop navmeshtool on the first db error.
* Disable writes to db in the engine on first "database or disk is full"
  SQLite3 error. There is no special error code for this error.
* Change default "write to navmeshdb" to true.
* Use time intervals for transaction duration instead of number of changes.
2022-03-18 19:08:46 +01:00
elsid 96eb8d7be9
Write generated navmesh to navmeshdb
Perform all request to db in a single thread to avoid blocking navmesh
generator threads due to slow write operations.

Write to db navmesh for all changes except update as it done for memory cache.

Batch multiple db operations into a single transaction to speed up writing by
not executing fsync after each insert/update query. All reads are performed in
the same transaction so they see uncommited data.
2021-12-11 00:22:04 +01:00
elsid c9b8ba7b46
Read navmesh tile data from database
When tile is not found in memory cache try to find it in the database.
2021-12-11 00:22:04 +01:00
elsid 953a4c5550
Add a binary to generate navmesh from content files
Load content files based on the engine config files. Generate navmesh per cell
for all cells and store into SQLite database.
2021-12-11 00:21:56 +01:00
elsid 01c712d5f1
Split navigator settings into subtypes
Mostly to distinguish settings that affect properties of the generated navmesh.
2021-12-10 23:55:03 +01:00
Petr Mikheev ae84a0c9d5 Fix most of reStructuredText warnings 2021-11-04 23:21:58 +01:00
elsid 7a51d0db18
Wait until navmesh is generated within given distance around player
Add a setting to change this distance.

To prevent situations when there is not enough navmesh generated and actors
can't find path correctly.
2021-05-05 19:44:16 +02:00
elsid ec87b3f8f7
Remove redundant ChunkyTriMesh
This AABB tree required when need to filter out input mesh that has not
influence navmesh tile output. This filtering is already done before. Each
recast mesh corresponds to a single navmesh tile and has appropriate bounds.
2021-05-04 13:00:06 +02:00
elsid 313355cb3d
Fix default max tile size in navigator doc 2021-03-23 21:40:32 +01:00
elsid b150d681a9
Update same navmesh tile with limited frequency 2020-05-01 18:05:58 +02:00
elsid 7ae7cb181d
Support recast mesh rendering 2020-03-14 09:38:24 +01:00
elsid 6be103bc54
Increase recast scale factor and tile size
Increased recast scale fixes navmesh around (-28585, -29951, 483).
Increased tile size compensates decrease of total navmesh area.
2019-11-30 13:19:27 +01:00
elsid bfe6005ed4
Increase default recast scale factor
To make 4 voxels fit into sStepSizeUp = 34:
"recast scale factor" = 4 * "cell size" / sStepSizeUp
2019-10-07 21:29:46 +02:00
Andrei Kortunov 14b756a692 Use a generic logging system for RecastNavigation 2019-04-08 20:31:21 +04:00
elsid f2e47d640d
Add option to limit max number of navmesh tiles 2019-03-08 17:39:04 +03:00
elsid 298af7f6a6
Fix links 2019-03-01 21:18:34 +03:00
elsid 909d25320e
Remove duplicated option 2019-03-01 21:18:34 +03:00
elsid f3c9b34a1a
Add Navigator settings documentation 2019-03-01 01:50:17 +03:00