You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Related to: #96483
Navigation links also suffer from having no form of BVH available during sync. All faces of all polygons have to be scanned not once but twice, because for some reason it first scans all polygons for the start position, and then for the end position. Merging these two loops into one already saves half the time spent here without any additional effort.
This also causes issues in editor when moving navigation links around making it way more painful than it needs to be. Especially because the NavigationLink3D will recompute its connections each physics tick while moving around. Again there is an easy optimization to just defer updating the position in the NavigationServer3D until the drag operation has completed.
Steps to reproduce
Create a big navmesh with a lot of navigation links.
Minimal reproduction project (MRP)
The text was updated successfully, but these errors were encountered:
0x0ACB
changed the title
Adding navigation links needs to be optimized
Adding/Moving navigation links needs to be optimized
Sep 13, 2024
PR #100497 pushes the sync that causes the stutter to a background thread.
It also adds a region bounds check first for links before they go into the more detailed polygon search. Although how much this affects performance will be very much depend on how balanced the region layout is.
While there are other optimizations to be made in the future this should solve the immediate issues with the editor responsiveness.
Tested versions
4.3-stable
System information
Windows 11
Issue description
Related to: #96483
Navigation links also suffer from having no form of BVH available during
sync
. All faces of all polygons have to be scanned not once but twice, because for some reason it first scans all polygons for the start position, and then for the end position. Merging these two loops into one already saves half the time spent here without any additional effort.This also causes issues in editor when moving navigation links around making it way more painful than it needs to be. Especially because the
NavigationLink3D
will recompute its connections each physics tick while moving around. Again there is an easy optimization to just defer updating the position in theNavigationServer3D
until the drag operation has completed.Steps to reproduce
Create a big navmesh with a lot of navigation links.
Minimal reproduction project (MRP)
The text was updated successfully, but these errors were encountered: