Unable to view my cesium asset

Unable to view any of my custom assets in cesium. Can anybody help?
Example: Cesium ion

We’ll need more information to help your specific case. Without knowing the details, here’s a list of things you can check:

  1. Check if the Cesium for Unity Samples work for you
  2. Check if basic assets like Cesium World Terrain and Cesium OSM Buildings show up in your project.
  3. Check if your project’s default token is set properly.
  4. Check if your token has access to reading your custom asset.

All of the points are true for me. The only issue is that my custom assets don’t work for me.

Logging selection stats shows the following for each of my assets:
Visited 1, Culled Visited 1, Rendered 1, Culled 0, Max Depth Visited 0, Loading-Worker 0, Loading-Main 0 Total Tiles Resident 1, Frame 1
Maybe this could help.

We can only guess without knowing the details of your cust assets, but here’s another guess: are you assets perhaps not georeferenced? If they’re not, Cesium will be showing them in the center of the Earth. You can georeference them (meaning: give them a location on the globe) in the Cesium ion UI.

Double-checking your asset in the Unity hierarchy should take you there, even if there is at the center of the Earth. Have you tried that? Precision and lighting problems there might make for a glitchy visualization, but you should see something.

What sort of source data did you start with, anyway? Any what tiling options did you use? Do the assets show up properly in CesiumJS?

If I export and upload the asset here, will you able to provide a solution that is specific to that asset?

Hello, sometimes I notice that double clicking on a tile won’t take you to the mesh. If you know the Latitude Longitude of the dataset, I would recommend changing the Georeference to that location and see if that will trigger loading tiles.

Hope this helps.

We’d appreciate it if you could try the suggestions above first. Downloading and trying out users’ tilesets is a pretty big time sink for us, and takes away time we could be spending making Cesium for Unity better.

Hi All-

Greg here. I’m the CTO at Spinview. Let me provide some more background.

We have an web/SaaS app that makes extensive use of Cesium Ion and 3D tiles. In addition to our web app (cesium js) we also have two other end points: a VR app built in Unity and an advanced viewer built in Unreal.

All our assets are converted to 3D tiles using Ion from standard formats (LAS, GLTF, etc) and they all are georeferenced. We use all these assets successfully in both Unreal and the cesium.js web app.We have dozens and dozens of assets in use.

The only failures we see are happening inside Unity and they occur for all of our assets.

To troubleshoot this we are using the standard Cesium Unity sample application. Other than adding our access token it is unmodified.

Cesium sample assets all work correctly.

For our custom assets:

  1. We have an access token with full/all permissions enabled.

  2. When we validate with that token we are able to see our entire asset list from Ion in the project window.

  3. When we add an asset to the scene, it validates correctly using the “Troubleshoot Token” button.

  4. We can navigate to Ion and see the asset in question: displayed properly and with correct georeferencing.

  5. It fails at this stage:

a) The individual assets assigned to the parent object never appear in the Hierarchy view.

b) The selection stats in the console for our assets show as:

“Visited 1, Culled Visited 1, Rendered 1, Culled 0, Max Depth Visited 0, Loading-Worker 0, Loading-Main 0 Total Tiles Resident 1, Frame 1”

As opposed to "Visited 241, etc…” which we see with the sample assets

This seems to be the point in the pipeline where the failure is occurring.

The attached screenshots show the general sample project with our asset list loaded, and then the status of a specific asset both in Unity and on Ion.

Thanks for your help with this as we’re dead in the water at the moment.
-Greg




Hi Greg, am I understanding you correctly that this particular asset is working in Cesium for Unreal, but not Cesium for Unity? Are you by any chance using a CesiumGeoreference in “True Origin” mode in Cesium for Unreal to make it work? If not, would you mind privately sending me the problematic asset ID, a token I can use to access it, and a note stating that I have your permission to access it for debugging purposes? I’ll take a look and see what’s happening.

Hi Kevin - yes that’s correct. All these assets work in Unreal and CesiumJS. To my knowledge we’re not using “True Origin” mode in Unreal.

I’ll send the required info via PM.

Thanks for your help.

Hi Greg, thanks for sending me the asset ID and token. I tried out your model in Cesium for Unity, and it appears to be working well:

The way I tested this was about opening the Cesium for Unity Samples project, 01_CesiumWorld scene, and then using the Cesium panel to add a Blank 3D Tiles Tileset. I set the asset ID and the token to the ones you provided, then double-clicked the Cesium3DTileset object in the Hierarchy. At this point the model was visible, but was oriented strangely and had some jittering artifacts due to the camera being very far from the Unity world origin. To fix that, I clicked the CesiumGeoreference in the Hierarchy and then the “Place Origin Here” button. And I adjusted the Direction Light rotation property to get better lighting for the screenshot.

Let me know if that also works for you, and what you did differently that isn’t working.

Kevin

Hey Kevin-
Thanks so much for checking this. I’m asking the team to check this against their workflow - to confirm if they can load a single asset. Ultimately we need to access the entire asset list from ION so that we can allow users to dynamically load the asset they wish to view.

Greg

Ok, let me know what you find. Not every Cesium ion asset is supported in Cesium for Unity. For example, instanced meshes (i3dm) are not currently supported. However, the support should be the same between Unreal and Unity.