Giter VIP home page Giter VIP logo

cesium-unreal-vr-tutorial's Introduction

Cesium for Unreal Logo

Cesium VR Tutorial Series

The Cesium for Unreal VR Tutorial Series covers strategies and solutions for several common challenges that come with building global-scale applications in VR using Cesium for Unreal.

This repository holds example levels and code for all the features described in the tutorial series. This series serves as a guide for recommend practices for VR application design and user ergonomics you can use in your projects. Each tutorial will describe the UX challenge, our design thinking, and the Blueprint code for each feature. New tutorials will be added in frequently so check back soon!

Cesium VR Headset

🚀 Get started with the tutorial

You will need to download the Cesium for Unreal plugin from the Unreal Engine Marketplace.

If you are new to the Cesium For Unreal plugin, check out the Quickstart tutorial.

🎮 VR Device Compatibility

We tested the inputs used in this project on Meta Quest 2, and are confident the inputs will work with Meta Quest and Rift devices using the Touch controllers. We have added reasonable corresponding inputs for other VR headsets such as the HTC Vive and Valve Index, but have not tested them. If you use any of these headsets, we'd love to get your feedback and build it into the tutorials.

If you are using a VR headset not mentioned above, please add the corresponding bindings for your controller for each input action / axis. For more information on setting up inputs, see the Unreal Engine docs. For an example of setting up inputs across different VR devices, see the VR Template project.

🗺️ Tutorial Descriptions

The features in this Unreal Engine Project are separated into individual levels with each level corresponding to a single tutorial. Each level builds upon the previous levels. If you would like to see a singular feature in action, open the level within the tutorial's corresponding folder to try it out. Open the level within the "Main" folder if you would like to see all of the features combined into one experience.

1️⃣ Tutorial 1 - Teleportation, Line Traces, and Height Correction

In the first tutorial we cover teleporting the player long distances across the world and fetching higher levels of detail on 3D Tiles from a distance. This tutorial also covers common issues in VR like moving below the surface and provides strategies to render line traces from the players hands.

The teleportation level is located at Content/CesiumVRTutorial/Teleportation/Teleportation.umap

2️⃣ Tutorial 2 - Movement

In the second tutorial we explore motion across the world while minimizing nausea and how to keep the ground below the player loaded at all times. We also cover ways to change your movement speed based on the pawn's altitude, which aids in traversing great distances quickly and easily.

The movement level is located at Content/CesiumVRTutorial/Movement/Movement.umap

3️⃣ Tutorial 3 - Vignette

In the third tutorial we explore applying a vignette over the user's view in order to reduce motion sickness. This vignette is callable from external components to activate from specific actions such as teleportation and snap rotation. The vignette component also automatically calculates an optimal vignette based on the user's movement velocity, ensuring that if the user's pawn is moving at all a vignette will be activated.

The vignette level is located at Content/CesiumVRTutorial/Vignette/Vignette.umap

4️⃣ Tutorial 4 - Build for Quest

In the Meta Quest build tutorial we cover some topics on optimization as well as Android packaging and sdk setup.

The Build For Quest level is located at Content/CesiumVRTutorial/BuildForQuest/BuildForQuest.umap

5️⃣ Tutorial 5 - Dragging the Globe

In the dragging the globe tutorial, the player can scale up to a size larger than the Earth to grab it and rotate it at any angle. While in the "Earth View" mode facilitated by an Earth Viewer component, the player can freely look towards the earth and rotate it with the thumbsticks as they please. This functionality is integrated into the main level by entering Earth View mode automatically when the player flyes above a certain altitude. The player can then leave "Earth View" and return to "Normal View" by teleporting onto the Earth's surface.

The dragging the globe level is located at Content/CesiumVRTutorial/DraggingTheGlobe/DraggingTheGlobe.umap

6️⃣ Tutorial 6 - Metadata and Dynamic UI

The player can query tilesets for metadata and have the results show up in a UI that scales according to player distance and rotates to face the player, ensuring legibility from any distance.

The metadata and dynamic UI level is located at Content/CesiumVRTutorial/DynamicUI/DynamicUI.umap

🏗️ Contribute to the repository

Please consult the ContributionGuide.md

📬 Tell Us What You Think

Have you noticed a bug or fatal error? Open an issue here.

Have any suggestions or questions? Ask them on the community forum, we would love to hear from you.

📗License

Apache 2.0. Cesium for Unreal VR Tutorials are free to use as a starter project for both commercial and non-commercial use.

cesium-unreal-vr-tutorial's People

Contributors

argallegos avatar cesiumben avatar cesiumgs-admin avatar xuelongmu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cesium-unreal-vr-tutorial's Issues

Forward movement does not work on Main level

Forward movement does not operate on the main level, while all other forms of movement do. This is unique to the main level pawn, and not an issue on the movement level.

Possible leads:

  • Collisoin issues
  • forces forward not processed
  • Input axis somehow clamped at 0 and not going above

Tutorial: Teleportation, Input Binding, and Line Tracing

Tutorial 1 is about teleporting to far distances by selecting a point on the terrain with your hands in VR. The three primary components the tutorial covers are:

  • Users pawn controller
  • Teleportation component
  • Line Trace Renderer component

Upgrade to Unreal Engine 5.1

I think the tutorial project should be upgraded to 5.1. Unreal Engine 5.0 has some pretty glaring bugs in VR, and 5.1 has better stability and performance. There are some graphical glitches and stutters as well, that are hopefully improved in the newer version.

This shouldn't be a big technical lift, as the project can theoretically be upgraded in-place. However it would also be an opportunity to do a polish pass on performance and visual quality on the project as a whole.

cc @CesiumBen @LisaBosCesium

cesium unreal vr applicaiton cannot run on piconeo3 vr device

I have a piconeo3 vr device, and develop with Unreal XR SDK,other ue4 applicaiton can run well in pico neo3.
but my cesium unreal vr applicaiton can only preview in UE4 editor,when i package the project to apk and install it in pico neo3,the screen is black and nothing is displayed in pico neo3.
i want some help,thanks!

3D Tileset not showing

On the editor screen, I can see the model, but when I build the application and put it into Meta quest 2, my model is not visible.
I am using Unreal engine 5.1.1 Cesium latest version 2.2.0.
Can someone give me a suggestion?

These are the steps I follow:

  1. Download sample project: https://github.com/CesiumGS/cesium-unreal-vr-tutorial/releases/tag/v1.2
  2. Edit settings according to this example: https://cesium.com/learn/unreal/build-for-quest/
  3. Add blank 3D tiles tileset with
  4. install on quest 2
    the bridge is not visible on the Quest 2.

Tutorial: Build Optimizations

This tutorial covers optimizing a build for Meta Quest (mobile) platforms. While most optimizations will transpire across all mobile platforms, some will be Android specific.

Tutorial Project Version - 5 or 4.27

Pro's to setting up project in UE5

  • Is a newer product so each tutorial compounds as a tutorial for UE5
  • Increased longevity since we'd eventually upgrade to UE5
  • More features to be leveraged

Pros to setting up project in 4.27

  • More predictable environment
  • Upgrading the project from 4.27 to 5 would be a tutorial in and of itself.

I think starting in UE5 would be a better choice and be more valuable for learners. Thoughts?

CC: @shehzan10 @xuelongmu @LisaBosCesium

need ue4.26 support

my vr device and my cesium project is almost under ue4.26,Can this project support ue4.26?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.