-
Notifications
You must be signed in to change notification settings - Fork 3.5k
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
Clamp to a 3D Tileset #6080
Comments
Might not be bad to render top down along the geodetic surface normal with the highest resolution tiles along the ray...or maybe ray cast the tree, and then do a ray / triangle mesh intersection on the GPU since we will not have the geometry on the CPU...could also take the same approach for terrain...and for collision detection. |
@lilleyse what are your latest thoughts here? In particular, how could we make this really efficient for the case, for example, if an agent is moving along a path in real-time and for its current longitude/latitude, we want to clamp it to the current LOD of the tileset? |
|
Yeah a lot of stuff to think about here... I think the tree traversal will be relatively quick. At least it seems like the easy part. This is how I envision it, which includes your ideas:
Edge cases:
@likangning93 had an idea to render a larger heightmap expanse. If the entity moves outside of that region or the LOD changes then a new heightmap is rendered. This works well if the entity is following a path but isn't great for random access. For the path use case, we could also just render once every N frames and interpolate in-between. Long term I kind of hope we can move all this to the CPU / web workers to build a more general purpose collision detection system, with the downsides that it takes up more memory and may require a per-tile octree or some other optimization data structure. |
All good ideas.
I suggest just starting with b3dm/i3dm.
To start, just the max height for the tileset at that longitude/latitude. So viewing it as 2.5D for now.
Can probably ignore it to start. Later, if the "ray cast misses" and hits the ellipsoid, you might render a larger region and blur to fill the crack.
Very good idea - basically cache all the heights for a tile - will work well for our initial use case.
ha, I wanted the opposite - to move it all to the GPU to avoid the potential CPU memory usage. Let's see how things play out...and will also have to consider the role of web workers in real-time use cases. |
Hi, Will this feature be publishing at next release 1.49? We are very looking forward to it. Thank you! |
@dminor112 thanks for your interest! That is the plan. |
Hi, I have got the version of 1.49. I want to confirm if this feature has be published at this release? |
Unfortunately it slipped past 1.49 but we're actively working on it in #6934. |
Will this feature be released in version 1.50? Our project depends on it. |
Our problem is that, we have a latlng position and need to get the altitude of the position at the 3D tileset. What should I do, is there any solution? |
@dminor112 this will almost certainty ship in 1.50 and it is the exact query you are looking for. You could try it out now by testing the branch in #6934. |
Congratulations on closing the issue! I found these Cesium forum links in the comments above: https://groups.google.com/forum/#!topic/cesium-dev/hMALmIsVn4U If this issue affects any of these threads, please post a comment like the following:
I am a bot who helps you make Cesium awesome! Contributions to my configuration are welcome. 🌍 🌎 🌏 |
It would be nice to support clamping objects to a 3D Tileset, which would require getting the height of a tileset at an arbitrary location.
This has a been a common request on the forum lately, so I figured it deserves an issue. https://groups.google.com/forum/#!topic/cesium-dev/hMALmIsVn4U
The text was updated successfully, but these errors were encountered: