-
Notifications
You must be signed in to change notification settings - Fork 312
Generate navigation mesh on Cesium3DTileset #1044
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Generate navigation mesh on Cesium3DTileset #1044
Conversation
Thank you so much for the pull request @Project-PLATEAU! I noticed this is your first pull request and I wanted to say welcome to the Cesium community! The Pull Request Guidelines is a handy reference for making sure your PR gets accepted quickly, so make sure to skim that.
Reviewers, don't forget to make sure that:
|
Thanks for the pull reuest @Project-PLATEAU! Have you looked at the performance impact of this change at all? Is it nearly zero as long as the user isn't using navigation? And if users are using navigation, are the rather large - and also dynamically added/removed! - 3D Tiles meshes very usable with navigation? Does it cause Unreal to do extra work when the tiles are added? If so, does it do that work in the game thread? |
If users do not use navigation there was no performance impact. |
This seems like a fairly unlikely use-case to me. It's rare for a 3D Tiles tileset to be loaded completely and then never changed. A large reason to use 3D Tiles at all is to do hierarchical level-of-detail at runtime. Otherwise, you could just import the entire model into the Editor and be done with it, right? I think we at least need an option to skip generation of nav meshes for 3D Tiles. My worry is that this a) isn't that useful in typical 3D Tiles use-cases, because it's too slow, and b) will break people that are using hand-crafted nav meshes (or nav meshes derived from non-Cesium models, anyway) in levels that incorporate 3D Tiles. Such levels will suddenly start trying to generate nav meshes for large 3D Tiles, thereby breaking a level that used to work fine. |
Your concerns make sense. However, it does useful when a 3DTileset of a small area is used for simulation, as in our case. Our case could be found on the following page: |
Thanks @Project-PLATEAU. Your latest changes are ok with me, and I'm happy to merge that. Quick question though: would it be better to have a per-tileset option to control whether the tileset supports nav meshes, rather than the experimental feature flag? This would be similar to the existing "CreatePhysicsMeshes` option, and allow users to, for example, enable navigation for a smaller local model while disabling it for the background Cesium World Terrain tileset. |
Just a reminder about my question above, @Project-PLATEAU. What do you think? |
As you commented, we think it would be better to have this setting in each of the 3DTileset actors. |
Thanks @Project-PLATEAU! |
This PR accommodates #327. The latest version(v1.22.0) of Cesium for Unreal can not generate a NavMesh for a Cesium3DTileset
actor. However, this PR make it possible to generate a NavMesh on a Cesium3DTileset actor.
We have confirmed that NavMesh is generated after our modification using the "New York City 3D Buildings" asset provided by
Cesium Ion. The first image is before our modification and the second image is after our modification.
BeforeNavCollision

AfterNavCollision
