We are planning to create a VR tutorial series aimed at getting developers up and running with Cesium for Unreal in VR applications, and want your feedback!
The goal is to build an application that allows the player to explore the Earth with basic mechanics that you can then develop domain-specific features on top of.
So far, the series will look like as follows:
Binding inputs, incorporating teleportation movement
Flying movement
Dragging the globe (at different user scales)
Vignette to address motion sickness when moving
Metadata picking
Creating and interacting with dynamic world UI screens to show picked metadata
Creating saved locations (lat/long/height) and saving them to disk
Displaying saved locations in a hand menu so you can easily navigate around the globe
Considerations and performance improvements for deploying to untethered devices e.g. Quest 2
By the end of the series, you’ll have a project that allows you to move easily around the globe, show rich metadata on different tilesets, and save locations for later access. The inputs and UI will be headset-agnostic, so it should work on a Quest, Vive, Index, etc.
Got any feedback on this proposed tutorial series? Is there anything missing that you wanted to see? Please post your thoughts as a reply to this thread, and looking forward to hearing your thoughts!
We use a similar teleport mechanic as the Unreal default one, where you essentially “throw” a sphere and then you teleport where it lands. One problem we had to overcome in ours was when you teleport very far away, the sphere hits a lower LOD, but when you teleport there and the new LODs pop in, you may be standing below where the new tile is. In our app you can shrink and grow. So if you were to get huge, then teleport very far away, then shrink down, you’d go beneath the ground. We eventually solved this, but we had to turn off frustum culling, so that as you shrink, we can do line traces against the most recently loaded LOD ground tiles and you won’t go through the ground (unless if you were looking down). I’m interested to see how you do teleporting with long distances and if you are able to do something like this where they’re always standing on the ground without turning off frustum culling.
One problem we had to overcome in ours was when you teleport very far away, the sphere hits a lower LOD, but when you teleport there and the new LODs pop in, you may be standing below where the new tile is
@nbaja That definitely sounds like a hurdle. I think that this new API may help: Blueprint API for Registering Custom Cameras by nithinp7 · Pull Request #734 · CesiumGS/cesium-unreal · GitHub
For example, once the sphere lands, you could spawn a camera looking down at the teleport destination to load a high detail tile, then perform a line trace to get an accurate ground location. It would introduce some delay so that the user wouldn’t teleport immediately anymore, but it could be a worthwhile tradeoff.