Skip to main content

Cesium for Omniverse: Autodesk 3ds Max

This is a guide to combining Autodesk 3ds Max content with Cesium ion datasets within NVIDIA Omniverse, using the Autodesk 3ds Max connector and the Cesium for Omniverse extension.

Cesium for Omniverse: Autodesk 3ds Max Tutorial

You’ll learn how to:

  • Prepare and export 3D content from Autodesk 3ds Max.
  • Accurately position this content on Cesium World Terrain.

Prerequisites

  • Know how to set up a basic Cesium for Omniverse stage in NVIDIA Omniverse USD Composer. Check out our Cesium for Omniverse Quickstart guide for instructions on starting with the Cesium for Omniverse extension.
  • An Autodesk 3ds Max scene representing a real-world location, georeferenced to a UTM or similar projected coordinate system with a valid EPSG code. A sample scene to use for this tutorial can be downloaded here
  • The Autodesk 3ds Max Omniverse connector installed from the Omniverse Launcher.

Georeferencing concepts

3D design software commonly favors local Cartesian coordinate systems over geographic ones to meet the demands of precision, accuracy, and simplified workflows. Local coordinate systems offer a convenient method for defining and manipulating precise measurements without the complications associated with geographic factors like Earth's curvature and latitude-longitude coordinates.

When it comes to Cesium for Omniverse, it typically adopts a geographic, Earth-centered Earth-fixed coordinate system, representing Earth as an accurate 3D globe. Consequently, to position an architectural model represented in local coordinates onto a geographic dataset such as a globe, a coordinate conversion process becomes necessary.

This tutorial demonstrates a workflow for aligning a 3ds Max road design model, created in a projected coordinate system based on the project's original plans. It is important to note that while the workflow in this tutorial can accurately position 3ds Max data on the globe, it does not feature a way to account for the curvature of Earth. This means for particularly large scenes, data at the edges of the model may not be accurately positioned with respect to the surface of the Cesium globe.

Depending on your use case, this may not be an issue. A common workflow is to use a geospatial dataset such as the Cesium globe as “background” content, where its primary function is to provide visual context only and lower levels of accuracy are acceptable. Ultimately, your use case will determine the levels of accuracy required in your design and context data.

1Prepare and export your 3ds Max scene

1Open your scene in 3ds Max. This tutorial assumes that you already have a 3ds Max scene geolocated to a UTM or similar projected coordinate system. If you are using the sample scene provided, it will look like the below image.

Cesium for Omniverse: Autodesk 3ds Max Tutorial
Information

Because of 3ds Max single-precision coordinates, it is likely your scene has been offset closer to origin to maintain data accuracy. You will need to know the EPSG code of the original coordinate system for the source data, plus the value used to offset the data close to origin in order to follow this tutorial if using your own data.

2Select an object in the scene. Note the coordinates of these objects are relatively close to 0,0,0. This is because the design data originally from Autodesk Infraworks has been offset from its original projected coordinate system, many hundreds of thousands of meters away. We do this to ensure data accuracy, as 3ds Max reduces coordinate precision at far distances from the scene origin.

3Click on Omniverse > Export Visible to open the Create Content on Omniverse dialog.

4Choose an export location and file name; then ensure Export Up Axis is set to Y Up. Click Export to publish your 3ds Max content to USD.

2Calculate geospatial position

1Visit the epsg.io coordinate calculator in your browser.

2Under Input coordinate system, click Change.

3Search for the EPSG code that represents the coordinate system for your project and select it. For this tutorial, our project data is projected in EPSG:28356.

4Under Output coordinate system, ensure that EPSG:4979 WGS 84 is selected and that the format under Output coordinates is set to dec.

Cesium for Omniverse: Autodesk 3ds Max Tutorial

5Under Input coordinates, enter the EPSG:28356 location that corresponds to 0,0,0 in your 3ds Max scene. For our project, 0,0,0 corresponds to X: 503000 and Y: 6950000.

Cesium for Omniverse: Autodesk 3ds Max Tutorial

6Click the Transform button to convert the coordinates.

7The resulting latitude and longitude should be displayed under Output coordinates. Write these values down, as they will be used in the next step. You can also click Show position on a map to confirm the provided coordinates align with the correct location on Earth for your project.

Cesium for Omniverse: Autodesk 3ds Max Tutorial

3Import and georeference

1Open Omniverse USD Composer, ensuring the Omniverse Fabric Scene Delegate is enabled as per the quickstart tutorial.

2Click File > New to create a new empty scene. Remove the default ground surface.

3Click File > Add Payload, and select the USD file created during Step 1.

4Your 3ds Max content should now be loaded in the stage. If nothing is visible, press F to zoom extents.

Cesium for Omniverse: Autodesk 3ds Max Tutorial

5You might notice the content is quite small. This is because the 3ds Max source file uses meters, and Omniverse uses centimeters by default. Currently, the 3ds Max Omniverse connector does not automatically rescale your asset, so this needs to be done manually.

6In the Stage window, click on the payload that corresponds to your USD.

Cesium for Omniverse: Autodesk 3ds Max Tutorial

7Under the Property window, click the Add Transforms button.

Cesium for Omniverse: Autodesk 3ds Max Tutorial

8In the Transform, enter a Scale value of 100, 100, 100. This will scale the 3ds Max content correctly in the Omniverse stage. Press F to zoom extents and see your resized content.

Cesium for Omniverse: Autodesk 3ds Max Tutorial

9From the Cesium window, add Cesium World Terrain + Bing Maps Aerial imagery to the stage.

Cesium for Omniverse: Autodesk 3ds Max Tutorial

10From the stage, select the CesiumGeoreference prim to display its properties in the Property window.

Cesium for Omniverse: Autodesk 3ds Max Tutorial

11In the Property window, enter the latitude and longitude obtained from EPSG.io. For now, enter the height value as 0.0. A more accurate height will be calculated in later steps.

Cesium for Omniverse: Autodesk 3ds Max Tutorial

12The design should now match accurately with Cesium World Terrain horizontally; however, it will still be positioned below the surface. This will be resolved in the next few steps.

Cesium for Omniverse: Autodesk 3ds Max Tutorial

13This 3ds Max design has height values defined based on mean sea level. Cesium World Terrain has its height values defined based on the WGS84 ellipsoid. To align the two as accurately as possible, the difference between mean sea level and ellipsoid height needs to be calculated. This difference can be used to offset Cesium World Terrain vertically.

14
Visit the UNAVCO Height Calculator in your browser.

15Under the coordinates box, enter the project’s latitude and longitude, followed by a height of 0.0, separated by commas. Click Submit.

Cesium for Omniverse: Autodesk 3ds Max Tutorial

16Scroll down to find the results, and copy the value from the Geoid Height (m) column.

Cesium for Omniverse: Autodesk 3ds Max Tutorial

17Paste this value into the Height field of the CesiumGeoreference prim in Omniverse.

Cesium for Omniverse: Autodesk 3ds Max Tutorial

18Cesium World Terrain should lower and now accurately align with the terrain exported from 3ds Max.

Cesium for Omniverse: Autodesk 3ds Max Tutorial
Information

Height datums used across projects will vary. Other methods may be required to accurately calculate the difference in height datum from your project data to Cesium World Terrain or other datasets you’re using.

Next steps

Follow our Lighting the Stage and Capturing Images and Video tutorials to prepare your project and capture amazing visuals.

Content and code examples at cesium.com/learn are available under the Apache 2.0 license. You can use the code examples in your commercial or non-commercial applications.