• Stars
    star
    229
  • Rank 174,666 (Top 4 %)
  • Language
    C#
  • License
    Apache License 2.0
  • Created over 2 years ago
  • Updated about 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Sample project for Cesium for Unity

Cesium for Unity Logo

Cesium for Unity Samples

The Cesium for Unity Samples is a starter project to learn and explore the Cesium for Unity plugin.

The scenes in this project will walk you through the plugin's features and demonstrate global-scale content, applications, and experiences in Unity 3D.

The source code for Cesium for Unity itself may be found in the cesium-unity repo.

Aerometrex Photogrammetry of San Francisco in Cesium for Unity

Photogrammetry of San Francisco, California visualized in Unity, using Cesium for Unity.
Open the 03_CesiumSanFrancisco scene in Cesium for Unity Samples to experience it yourself!

🚀 Get Started

  1. Download Cesium for Unity Samples.
  2. Extract the .zip file into a suitable location on your computer.
  3. If you have Unity Hub installed, click the "Open" button under the "Projects" tab. Otherwise, open the Unity Editor directly and select "Open Project". Then, point it to the extracted directory. Unity will load the project and also download Cesium for Unity using the Package Manager.
  4. In the Asset Browser, select and load Assets -> Scenes -> 01_CesiumWorld. You can also select other scenes as you browse and explore the samples.

Have questions? Ask them on the community forum.

⛰️ Level Descriptions

1️⃣ Level 1 - Cesium World

The sample levels begin with a scene in San Francisco. You'll see Cesium World Terrain and Cesium OSM Buildings in this scene. This level is designed to familiarize you with the core Cesium game objects and components, like Cesium World Terrain and Cesium Georeference.

Be sure to sign into your Cesium ion account using the Cesium button in the toolbar.

2️⃣ Level 2 - Melbourne Photogrammetry

In this scene, explore high-resolution photogrammetry data of Melbourne. This data is streamed from Cesium ion with the 3D Tiles format, a spatial index for streaming massive 3D content over the web. 3D Tiles makes it possible to stream hundreds of gigabytes of data over the web using hierarchical level of detail, spatial subdivision, and runtime optimizations.

See how this scene was created with the Adding Datasets tutorial.

3️⃣ Level 3 - San Francisco Photogrammetry with a Unity Character Controller

In this scene, explore even more high-resolution photogrammetry data of San Francisco using a third-person character controller. Whereas Melbourne allowed you to freely fly around and explore, in this scene you'll walk right up to the real-world data. When streaming content through Cesium for Unity, physics and gravity will continue to work as expected with your character controllers.

Grab some cool screenshots to share with us as you explore and customize the scenes.

Photogrammetry of the Ferry Building in San Francisco, CA captured by Aerometrex and visualized in Unity 3D using Cesium for Unity.

Photogrammetry of the Ferry Building in San Francisco, CA captured by Aerometrex.
Open 03_CesiumSanFrancisco in the Cesium for Unity Samples to walk around the dataset.

4️⃣ Level 4 - Using Subscenes to Explore the World

With Cesium for Unity, you can build experiences in different locations around the world, without even changing scenes. In this level, we've added a few locations around the world that you can explore. Enter play mode and jump between locations by pressing the 1-4 keys on your keyboard. These levels are loaded in and georeferenced using the CesiumSubScene component.

You can also add your own locations, like your hometown or your favorite vacation spot. Check out the Sub-scenes tutorial to learn how.

5️⃣ Level 5 - Metadata

Cesium for Unity enables you to access metadata encoded in your 3D Tiles datasets. In this scene, explore the buildings in New York City and see what information is included in the tileset about each building.

Metadata of New York City buildings visualized.

Metadata of New York City buildings visualized.
Open 05_CesiumMetadata in the Cesium for Unity Samples to explore the New York City buildings' metadata.

6️⃣ Level 6 - Point Clouds

Cesium for Unity supports rendering point cloud 3D Tilesets in addition to terrain and photogrammetry datasets. In this scene, you can explore several point cloud datasets around the world. Feel free to add your own point clouds as well.

Point Cloud of Melbourne, Australia visualized using Cesium for Unity.

Point Cloud of Melbourne, Australia visualized using Cesium for Unity.
Open 06_CesiumPointClouds in the Cesium for Unity Samples to explore multiple point cloud datasets, including the Melbourne Point Cloud.

7️⃣ Level 7 - Photorealistic 3D Tiles via Google Maps Platform

Explore the world through Photorealistic 3D Tiles streamed via Google Maps Platform. You can learn how to use Photorealistic 3D Tiles in your own projects in the Photorealistic 3D Tiles from Google Maps Platform tutorial.

The Googleplex in Mountain View, California visualized with Photorealistic 3D Tiles in Cesium for Unity.

The Googleplex in Mountain View, California visualized with Photorealistic 3D Tiles in Cesium for Unity.
Open 07_CesiumGoogleMapsTiles in the Cesium for Unity Samples to explore the world as Photorealistic 3D Tiles.

🥽 1️⃣ VR Level 1 - Denver Photogrammetry

Cesium for Unity supports virtual reality platforms. This level is set up for users with VR headsets to get started quickly. In this scene, explore high-resolution photogrammetry data of Denver, Colorado with VR controller support. To build this for the Oculus Quest 2, open VR01_CesiumDenver in the Unity Editor and follow the instructions to build an APK file for the headset. These instructions also appear in the UI of the scene itself.

  1. Ensure that your Unity Editor has Android build support. If not, follow the instructions here to set it up.
  2. Go to File -> Build Settings and change the platform to Android.
  3. Remove the original sample scene from the scenes list, then click the "Add Open Scenes" button.
  4. Go to Edit -> Project Settings. Scroll down to find and click on "XR Plug-in Management".
  5. Go to the "Android" section and check the box next to "OpenXR".
  6. Finally, in the Build Settings window, click "Build and Run" to build an APK.

📗License

Apache 2.0. Cesium for Unity Samples is free to use as starter project for both commercial and non-commercial use.

More Repositories

1

cesium

An open-source JavaScript library for world-class 3D globes and maps 🌎
JavaScript
12,828
star
2

3d-tiles

Specification for streaming massive heterogeneous 3D geospatial datasets 🌎
Batchfile
2,110
star
3

gltf-pipeline

Content pipeline tools for optimizing glTF assets. 🌐
JavaScript
1,915
star
4

obj2gltf

Convert OBJ assets to glTF
JavaScript
1,706
star
5

cesium-unreal

Bringing the 3D geospatial ecosystem to Unreal Engine
C++
924
star
6

cesium-native

C++
423
star
7

3d-tiles-validator

Validator for 3D Tiles 🚦
TypeScript
420
star
8

webglreport

A web page that reports a browser's WebGL capabilities, including supported extensions and implementation specific capabilities, such as the maximum number of texture units.
JavaScript
401
star
9

cesium-unity

Bringing the 3D geospatial ecosystem to Unity
C#
349
star
10

3d-tiles-tools

TypeScript
295
star
11

3d-tiles-samples

Sample tilesets for learning how to use 3D Tiles 📚
JavaScript
274
star
12

cesium-webpack-example

The minimal recommended setup for an application using Cesium with Webpack.
JavaScript
246
star
13

quantized-mesh

Specification for streaming massive terrain datasets for 3D visualization.
238
star
14

cesium-threejs-experiment

A small example for using Three JS on Cesium to emulate a combined scene.
JavaScript
187
star
15

cesium-unreal-samples

Getting Started Sample Project for Cesium for Unreal
183
star
16

cesium-workshop

An example application that visualizes and annotates a 3D city using the Cesium platform.
JavaScript
164
star
17

wetzel

Generate Markdown documentation from JSON Schema
JavaScript
133
star
18

cesium-google-earth-examples

Google Earth plugin API samples ported to Cesium
JavaScript
94
star
19

cesium-materials-pack

A Cesium plugin with procedurally-shaded materials such as bricks, wood, and noise patterns
JavaScript
85
star
20

cdb-to-3dtiles

Convert CDB to 3D Tiles
C++
76
star
21

cesium-o3de

Cesium for O3DE
C++
74
star
22

cesium-omniverse

Bringing the 3D geospatial ecosystem to Omniverse
C++
56
star
23

cesium-ion-rest-api-examples

Code examples for using the Cesium ion REST API 🌎
JavaScript
35
star
24

cesium-vite-example

The minimal recommended setup for an application using Cesium with Vite.
JavaScript
34
star
25

cesium-unreal-vr-tutorial

Unreal Engine project, assets, and code used in the Cesium for Unreal VR Tutorial Series
33
star
26

cesium-ion-blender-addon

Blender add-on for uploading and tiling models with Cesium ion. https://cesium.com
Python
22
star
27

collada2gltf-web-service

Simple Node.js web service to convert 3D models from COLLADA to glTF
JavaScript
20
star
28

cesium-ion-3ds-max-plugin

Autodesk 3DS Max plugin for uploading and tiling models with Cesium ion.
MAXScript
15
star
29

cesium-omniverse-samples

Sample projects for Cesium for Omniverse
14
star
30

3d-tiles-samples-generator

TypeScript
12
star
31

webstorm-plugin

Kotlin
8
star
32

cesium-ion-sketchup-extension

SketchUp extension for uploading and tiling models with Cesium ion.
Ruby
8
star
33

OpenPhillyGlobe

"Google Earth for Philadelphia" with open source and open data.
JavaScript
7
star
34

cesium-o3de-samples

Samples project for Cesium for O3DE
CMake
6
star
35

cesium-concierge

I automate common GitHub tasks
JavaScript
6
star
36

strip-pragma-loader

JavaScript
4
star
37

eslint-config-cesium

ESLint Configuration for Cesium
JavaScript
1
star
38

cesium-ion-plugin-template

1
star