Cesium Tileset only visible in one eye

Hi, I’m developing a VR application for Quest 2 in Unity and have been running into an issue where the cesium tileset is only visible in the left eye and not both eyes. I have been comparing my settings to the ones in the cesium for unity samples but have not found anything that seems to work. Has anyone encountered this issue?

Hello, I think I’ve run into this issue. Have you tried changing from Multiview to Multi Pass? The setting is located in Project Settings → XR Plugin-in Management → Oculus → Stereo Rendering Mode.

If that doesn’t work, are you using URP shaders or Built-in?

Best Regards

Hi, Thanks for the reply. Unfortunately, changing to Multi Pass did not work for me. I believe I am using Built-in shaders. Would upgrading to URP work?

I’d recommend using built-in shaders because its faster. Are you seeing it rendering in one eye only in standalone?

I’ve seen it render in one eye when using the Oculus PC Link when playing in the Editor.

If this is the case, it can be fixed by installing Oculus support for PC i.e. going to

Project Settings → XR Plug-in Management → (Windows, Mac, Linux settings),

and checking Oculus.

If not, does the Cesium Sample scenes have the same problem?

I had already installed Oculus support for PC and the issue is still persistent. However, the Cesium Sample scene seems to be working.

OK, perhaps its the default tileset material? I would see if other materials on the Tileset have the same problem, for instance, setting the opaque material as CesiumUnlitTilesetMaterial…

Theres also a CesiumSamplesDiffuseColor in the samples project.

Hmm. I am looking in the inspector for the world terrain, Render → Opaque Material is set to None (Material). I’ll look into how I can get the materials from the sample scene

Update, I believe I was able to copy over the materials, however, it is not having an effect on the issue. A discrepancy, however, is that the copied shader only has properties _BaseColor _BUILTIN_QueueOffset, and _BUILTIN_QueueControl where original has a number of others. I’m not familiar with shaders so I don’t know if that is noteworthy.

OK, is the entire right eye not showing, or is it just that the tileset doesn’t show? If you could supply a sample project, or a way to reproduce the issue, it would be helpful.

It is just the tileset that is not showing. Other unity objects do show in the right eye.

Not sure what the best way to share a sample project, but here is a Github Link: GitHub - mjgomsa-lippincott/Lippincott-Flight-Tracker: A realtime flight tracking application if that is helpful.

I assume that this issue is happening in GlobeScene.

Alright, so at first I built the GlobeScene in Unity and it couldn’t get past the Made In Unity spash screen and it had some errors…

I disabled the LoadingMan GameObject, it seemed to have some null reference exception.

I also, replaced the CWT + OSM buildings with a fresh copy from the Quick add menu.

I also replaced the XR Origin with a new one as well.

Then I was able to load the scene, and I was able to see with both eyes.

Im sure you know but I also made sure that ARM64 was checkmarked, and I also switched from Mono to ILCPP backend.

So, if you just create a blank scene, CWT + XR Origin + Cesium Origin Shift attached, does that work?

Thanks for the response. That’s right it is happening in the globe scene. I’ve followed the steps of switching to ILCPP, making sure ARM64 checked as well and replacing the CWT, OSM buildings and XR Origin. Unfortunately it doesn’t seem to be showing still even with creating a blank scene, XR Origin, and Origin Shift.

I did push a number commits to the github later yesterday so I am wondering if you might have been working with an earlier version and I have changed settings since then?

If you aren’t seeing anything, it may be that the DLLs aren’t loading. However, I’d look at the Device Logs to verify if that’s the case or see if it is something else. I recommend the Meta Quest Developer Hub which makes the Device Log easy to access.

Hi. I’m looking through the device logs and I’m not getting any DLL errors. Also, just in case there was a misunderstanding, everything is visible but the Tileset and Buildings in the right eye. Would it help if I attached screenshots of player and build settings?

As long as your player/build settings are the same as the one in the Repo I don’t think its necessary.

I cloned a fresh copy and I tested New Scene, and it works as expected.

There were two main cameras in the scene so I deleted the default one.

Also, I changed the Far Plane of the other camera to 10,000, and it works perfectly.

Are the settings in your project identical to the ones in the repo?

Hi Joseph,

I realized looking at the logs after pressing play in the editor and not after building the apk to the quest :sweat_smile:. I’m getting the following error: DllNotFoundException: CesiumForUnityNative-Runtime assembly: member: (null)

Make sure you’re targetting ARM64, not ARMv7. ARM 7 is a 32-bit platform, and Cesium does not support any 32-bit platforms. Switching to ARM64 will probably also require you to switch to il2cpp.

I faced the same problem with other objects like water. This is a custom shader problem. I created the following tutorial for anyone who wants to see the solution:

Hi Kevin,
I’m getting a similar DllNotFoundException. This is on desktop Win11 64bit machine. It happens to multiple machines, but does not happen to some other machines.
DllNotFoundException: CesiumForUnityNative-Runtime assembly: type: member:(null)

@mz2008 you’ll have to give us more information. I suggest starting a new thread. Please include: Cesium for Unity version, Unity version, and when exactly the error occurs. Can you reproduce the problem with the Cesium for Unity Samples project, or only your own?