Commit Graph

237 Commits

Author SHA1 Message Date
maxime mercier
50843beca6 Support lazy gathering on child of octree nodes
[at]yoan.stamant [at]stephen.holmes
#rnx

#ROBOMERGE-SOURCE: CL 12486785 via CL 12486790 via CL 12486791 via CL 12486793
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v673-12478461)

[CL 12487596 by maxime mercier in Main branch]
2020-03-30 12:13:52 -04:00
aris theophanidis
d7b96024c4 Fix mesh loading dependency for static mesh using a ComplexCollisionMesh
Fix phys meshes to be created before creating the navcollision
Rotate the navcollision DDC guid
Those are to fix missing collisions when creating navcoll for meshes using ComplexCollisionMesh
[REVIEW] max.whitehead
#rb max.whitehead

#ROBOMERGE-SOURCE: CL 12486579 via CL 12486668 via CL 12486691 via CL 12486714
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v673-12478461)

[CL 12487589 by aris theophanidis in Main branch]
2020-03-30 12:13:33 -04:00
bart hawthorne
545d0db5ec Build fix
#rb none
[FYI] maxime.mercier

#ROBOMERGE-SOURCE: CL 12474920 via CL 12474939 via CL 12474944 via CL 12474952
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v672-12450963)

[CL 12474966 by bart hawthorne in Main branch]
2020-03-27 17:05:27 -04:00
maxime mercier
b41adb0f6f Remove duplicated code and implemented the timesliced version of the geometry gathering
[at]yoan.stamant [at]stephen.holmes
#rnx

#ROBOMERGE-SOURCE: CL 12473663 via CL 12473676 via CL 12473690 via CL 12473707
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v672-12450963)

[CL 12473730 by maxime mercier in Main branch]
2020-03-27 15:16:33 -04:00
mikko mononen
7ae32ffba5 Fixed holes in NavMesh caused by single voxel areas near area boundary.
- implemented median filter which is applied after areas are marked for tile cache
- implemented debug draw functionality for tile cache build steps
- fixed DetourDebugDraw.h API export

#jira UE-90332
#rb Aris.Theophanidis Yoan.StAmant Mieszko.Zielinski


#ROBOMERGE-SOURCE: CL 12401446 via CL 12401447
#ROBOMERGE-BOT: (v671-12333473)

[CL 12402286 by mikko mononen in Release-Engine-Staging branch]
2020-03-25 08:22:04 -04:00
yoan stamant
bc4bfcf3cd RecastNavMeshGenerator: optim in MarkDirtyTiles by reducing search size in dirty tiles set and num of copies between containers. For cases with large amount of pending elements (>100000) average timing goes from >5 ms to ~0.6ms.
With this change we now preserve the order of the pending elements (if tile sorting isn't used).

[at]maxime.mercier


#ROBOMERGE-SOURCE: CL 12393557 via CL 12399272
#ROBOMERGE-BOT: (v671-12333473)

[CL 12399450 by yoan stamant in Release-Engine-Staging branch]
2020-03-24 20:14:08 -04:00
yoan stamant
40b391d62a [Asynchronous Pathfind Queries]
- Added synchronization between the async pathfind queries task and the game thread. The sync point is implemented in OnWorldPostActorTick. This prevents pathfind requests from running at the same time as Navmesh generation tasks or beyond the engine frame boundary.
- Replaced task to broadcast async pathfinding results by a queue that will be flushed by the NavigationSystem udpate. This prevents tasks from being started during loading or other undesired locations.
- Replaced task to register new active path instance by a lock to make sure all paths are registered for potential invalidation before adding a generated tile on the main thread.

#jira UE-71960
#jira UE-85440
[at]aris.theophanidis [at]maxime.mercier
#rb aris.theophanidis maxime.mercier


#ROBOMERGE-SOURCE: CL 12368557 via CL 12368564
#ROBOMERGE-BOT: (v671-12333473)

[CL 12370954 by yoan stamant in Main branch]
2020-03-23 11:01:36 -04:00
yoan stamant
b918f902d3 [UNavRelevantComponent] Fixed some calls to GetNavigationParent made before the cache initialization since this might result in improper registration in the NavOctree. Also added error reporting to detect those cases in the future.
[at]aris.theophanidis
#rb aris.theophanidis


#ROBOMERGE-SOURCE: CL 12368552 via CL 12368554
#ROBOMERGE-BOT: (v671-12333473)

[CL 12370944 by yoan stamant in Main branch]
2020-03-23 11:01:34 -04:00
maxime mercier
1275d81c2d Fix holes in navmesh when using lazy octree
#rb aris.theophanidis
#rnx


#ROBOMERGE-SOURCE: CL 12308460 via CL 12308477 via CL 12308961 via CL 12310607
#ROBOMERGE-BOT: (v670-12295787)

[CL 12310694 by maxime mercier in Main branch]
2020-03-19 16:25:28 -04:00
maxime mercier
715ffbccad Fix chaos export height field slice version, used when doing lazy octree gather geometry
[at]aris.theophanidis [at]yoan.stamant
#rnx


#ROBOMERGE-SOURCE: CL 12235737 via CL 12235740 via CL 12244074
#ROBOMERGE-BOT: (v667-12241502)

[CL 12244212 by maxime mercier in Main branch]
2020-03-18 09:15:58 -04:00
stephen holmes
647e7b9a39 Fix for XBox compiler only warning in deprecating IsBuildInProgress()
Runtime\NavigationSystem\Public\NavMesh/RecastNavMeshGenerator.h(612): warning C4996: 'FNavDataGenerator::IsBuildInProgress': This function is deprecated. Please use IsBuildInProgressCheckDirty Please update your code to the new API before upgrading to the next release, otherwise your project will no longer compile.
  Runtime\Engine\Public\AI/NavDataGenerator.h(36): note: see declaration of 'FNavDataGenerator::IsBuildInProgress'

[at]Yoan.StAmant


#ROBOMERGE-SOURCE: CL 12193107 via CL 12197076
#ROBOMERGE-BOT: (v662-12191386)

[CL 12197627 by stephen holmes in Main branch]
2020-03-16 09:22:57 -04:00
robert manuszewski
b7568cc694 Fix for UE-90683: You can no longer delete conflicting variables
Refactored FindField into FindUField and FindFProperty to avoid confusion caused by the fact that FindField<UField> will no longer return FProperties.

#jira UE-90683
#rb Steve.Robb
#tests Basic editor functionality test, cooked and ran PC client and server, bot soak tests for two hours

#ROBOMERGE-OWNER: robert.manuszewski
#ROBOMERGE-AUTHOR: robert.manuszewski
#ROBOMERGE-SOURCE: CL 12190998 in //UE4/Release-4.25/... via CL 12190999
#ROBOMERGE-BOT: RELEASE (Release-4.25Plus -> Main) (v661-12148976)

[CL 12191300 by robert manuszewski in Main branch]
2020-03-15 10:33:45 -04:00
bob tellez
5bc7d054c2 #UE4 Disable deprecation temporarily
[FYI] Stephen.Holmes


#ROBOMERGE-SOURCE: CL 12146946 via CL 12149229
#ROBOMERGE-BOT: (v659-12123632)

[CL 12149308 by bob tellez in Main branch]
2020-03-12 13:25:26 -04:00
stephen holmes
d46374bce0 Work to Deprecate IsNavigationBuildInProgress(bool) and IsBuildInProgress(bool). These functions behave inconsistently between different navmesh build types and were causing issues. Not only that but their default params were set opposite ways (true / false).
[at]Yoan.StAmant [at]Mieszko.Zielinski [at]Maxime.Mercier [at]David.Hamm


#ROBOMERGE-SOURCE: CL 12126550 via CL 12132795
#ROBOMERGE-BOT: (v659-12123632)

[CL 12132919 by stephen holmes in Main branch]
2020-03-11 13:01:04 -04:00
max whitehead
19b76ff6e1 Remove PhysX module when using Chaos, Guard PhysX code in PHYSICS_INTERFACE_PHYSX so Chaos compiles without it.
Change WITH_PHYSX to always be defined, even with chaos only.
Make Client/Server targets only disable PhysX when Chaos is enabled.
#rb michael.lentine


#ROBOMERGE-OWNER: max.whitehead
#ROBOMERGE-AUTHOR: max.whitehead
#ROBOMERGE-SOURCE: CL 11877480 via CL 11877967 via CL 11878038
#ROBOMERGE-BOT: (v656-11643781)

[CL 11888569 by max whitehead in Main branch]
2020-03-03 17:06:00 -05:00
stephen holmes
9545c6f32c Minor changes to previous CLfor moving tile regen time slice management logic to navigation system as suggested by Aris https://p4-swarm.epicgames.net/reviews/11589014/
#rb Aris.Theophanidis


#ROBOMERGE-SOURCE: CL 11871398 via CL 11871432
#ROBOMERGE-BOT: (v656-11643781)

[CL 11886277 by stephen holmes in Main branch]
2020-03-03 16:27:08 -05:00
peter knepley
3d4258b7c4 Fix recast not working if WITH_PHYSX is false, but WITH_CHAOS is true
#jira
[FYI] Max.Whitehead


#ROBOMERGE-SOURCE: CL 11754539 via CL 11755384 via CL 11755397
#ROBOMERGE-BOT: (v656-11643781)

[CL 11867361 by peter knepley in Main branch]
2020-03-03 10:30:46 -05:00
aris theophanidis
fff13a7e88 Resubmit 11644253 with missing include for non-unity build
Adding bMaskFillCollisionUnderneathForNavmesh option on NavModifierVolume to go along bFillCollisionUnderneathForNavmesh.
This allows navvolumes to mark a 2D areas to be ignored by the fill under feature.
[at]Mieszko.Zielinski [at]Mikko.Mononen
#jira UE-86726


#ROBOMERGE-SOURCE: CL 11650044 via CL 11650049 via CL 11650055
#ROBOMERGE-BOT: (v656-11643781)

[CL 11861821 by aris theophanidis in Main branch]
2020-03-03 08:48:03 -05:00
brandon grable
c16fec26e8 Back out changelist 11644253
[FYI] Aris.Theophanidis


#ROBOMERGE-SOURCE: CL 11645547 via CL 11645548 via CL 11645552
#ROBOMERGE-BOT: (v656-11643781)

[CL 11837531 by brandon grable in Main branch]
2020-03-02 13:50:21 -05:00
aris theophanidis
66f8eeaf19 Addition bMaskFillCollisionUnderneathForNavmesh option on NavModifierVolume to go along bFillCollisionUnderneathForNavmesh.
This allows navvolumes to mark a 2D areas to be ignored by the fill under feature.
[REVIEW] [at]Mieszko.Zielinski [at]Mikko.Mononen
#jira UE-86726


#ROBOMERGE-SOURCE: CL 11644253 via CL 11644264 via CL 11644271
#ROBOMERGE-BOT: (v656-11643781)

[CL 11836158 by aris theophanidis in Main branch]
2020-03-02 13:42:26 -05:00
stephen holmes
a924f5faa1 Work to properly account for time slicing accross multiple generators. The time slicing is now calculated in the navigation system.
The general idea here is to tick any non time sliced generators once per frame. Time sliced generators we aim to tick one per frame and move to the next, next frame.

In the case where one time sliced generator doesn't use the whole time slice we move to the next time sliced generator. That generator will only be considered to have a full frames processing if either it runs out of work or uses a large % of the time slice. Depending we either tick it again next frame or go to the next time sliced generator (next frame).

[at]Yoan.StAmant Aris [at]Aris.Theophanidis


#ROBOMERGE-SOURCE: CL 11628387 via CL 11628394
#ROBOMERGE-BOT: (v656-11643781)

[CL 11805238 by stephen holmes in Main branch]
2020-03-01 01:40:04 -05:00
Aris Theophanidis
486573c33d Fix issue where AI would generate straight path on Android and Switch (ignoring obstacles)
This was caused by the unwanted and undefined behavior of passing fltmax to some int flags (causing flags to SkipStringPulling)
#rb Yoan.StAmant
#jira UE-88980
#jira UE-88035

Integration from CL 11616045

[CL 11657720 by Aris Theophanidis in Main branch]
2020-02-27 11:05:20 -05:00
yoan stamant
aafdd91a93 NavigationDirtyArea: added error reporting for large area dirtying the navigation data
+ added advanced property "DirtyAreaWarningSizeThreshold" in NavigationSystem to report warning logs when tiles larger than the specified threshold are pushed to the dirty queue.
+ error reporting is disabled as long as navigation lock is effective
+ centralized area validations and error reporting inside method FNavigationDirtyAreasController::AddArea and added new optional parameter to retrieve source object

[at]aris.theophanidis [at]maxime.mercier


#ROBOMERGE-SOURCE: CL 11587708 via CL 11587713 via CL 11588090
#ROBOMERGE-BOT: (v654-11333218)

[CL 11592197 by yoan stamant in Main branch]
2020-02-24 18:43:44 -05:00
aris theophanidis
5ea31ebf07 Marking map as dirty when navmesh tiles are built
[REVIEW] [at]Mieszko.Zielinski [at]Mikko.Mononen
#rb Mieszko.Zielinski Mikko.Mononen


#ROBOMERGE-SOURCE: CL 11568105 via CL 11568106 via CL 11568107 via CL 11568109
#ROBOMERGE-BOT: (v654-11333218)

[CL 11568110 by aris theophanidis in Main branch]
2020-02-20 13:54:10 -05:00
aris theophanidis
cd992be6ec Fix NaN when using FBox by using HALF_WORLD_MAX instead of BIG_NUMBER
[REVIEW] [at]Maxime.Mercier [at]Yoan.StAmant


#ROBOMERGE-SOURCE: CL 11544220 via CL 11544359 via CL 11544387 via CL 11544467
#ROBOMERGE-BOT: (v654-11333218)

[CL 11544570 by aris theophanidis in Main branch]
2020-02-19 12:55:00 -05:00