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
The navigation mesh parsing process for source geometry adds geometry from all parsed nodes.
The properties for this parsing are on the used NavigationMesh / NavigationPolygon resource.
Both resources have properties to limit what is baked by adding baking rect / aabb. This is very much used to bake chunks in larger game worlds. The problem is even if the baking respects these bounds the source geometry parsing does not at the moment.
As such it adds a large amount of more or less useless geometry for the baking process. All the geometry outside the baking bounds gets discarded at the very first steps of the baking. Not only is this a waste of memory but it also takes a lot of time to process all this pointless geometry. There is really not much point of having it in the first place, it is just dead data.
The only exception would be when users parse with different properties than they do the later baking. E.g. parse with a small AABB and increase the AABB larger for the baking. That is only possible when they do things manually in script. Any bake problems in that case are on them.
The navigation mesh parsing process should discard outlines and triangles of objects that are completely outside the baking bounds. This should be added both inside the geometry parser but also on the NavigationMeshSourceGeometryData objects. Users often do not check their own geometry upfront if it makes sense for the bounds so better to also have it internally for the geometry add functions.
Steps to reproduce
Have a large level with a lot of geometry objects that get parsed.
Set a small sized baking AABB on the NavigationMesh.
Watch how long the parsing takes because all those objects outside those bounds are still fully added to the bake geometry.
Minimal reproduction project (MRP)
N/A
The text was updated successfully, but these errors were encountered:
Tested versions
4.3dev
System information
Windows 10
Issue description
The navigation mesh parsing process for source geometry adds geometry from all parsed nodes.
The properties for this parsing are on the used NavigationMesh / NavigationPolygon resource.
Both resources have properties to limit what is baked by adding baking rect / aabb. This is very much used to bake chunks in larger game worlds. The problem is even if the baking respects these bounds the source geometry parsing does not at the moment.
As such it adds a large amount of more or less useless geometry for the baking process. All the geometry outside the baking bounds gets discarded at the very first steps of the baking. Not only is this a waste of memory but it also takes a lot of time to process all this pointless geometry. There is really not much point of having it in the first place, it is just dead data.
The only exception would be when users parse with different properties than they do the later baking. E.g. parse with a small AABB and increase the AABB larger for the baking. That is only possible when they do things manually in script. Any bake problems in that case are on them.
The navigation mesh parsing process should discard outlines and triangles of objects that are completely outside the baking bounds. This should be added both inside the geometry parser but also on the NavigationMeshSourceGeometryData objects. Users often do not check their own geometry upfront if it makes sense for the bounds so better to also have it internally for the geometry add functions.
Steps to reproduce
Have a large level with a lot of geometry objects that get parsed.
Set a small sized baking AABB on the NavigationMesh.
Watch how long the parsing takes because all those objects outside those bounds are still fully added to the bake geometry.
Minimal reproduction project (MRP)
N/A
The text was updated successfully, but these errors were encountered: