nDisplay Assertion Failed Error

We are having trouble launching our Unreal Cesium application using a 5 projector system. We’re using UE 4.26 with the Cesium 1.17.0 plugin. Additionally, we’re using nDisplay configured with warp/blend from Scalable Display Manager v4.50.001.

We created a 5km x 5km test area using the Cesium World Terrain + Bing Imagery. The project packages fine and the application can be launched on the individual computers (no warp/blend applied).

We encounter the error when launching the Cesium World app from the nDisplay launcher. The listeners attempt to open the application and each computer (including the master) displays a blank white screen followed by an application window displaying:

Assertion Failed: (Index >=0) & (Index < ArrayNum) [File:Runtime\Core\Public\Containers\Array.h][Line:674] Array index out of bounds: 1 from an array of size 1

Additional notes:

  1. We can tell the warp and blend works since the projection space is appropriately cropped to fit the screen (although only the solid white).

  2. In the past we have successfully packaged and launched the sample nDisplay file and it works appropriately. The Cesium plugin was not enabled for this file.

Are there compatibility issues between Cesium and nDisplay that is causing this issue?

Hi @ZGTech,

I’m not quite sure what is happening there, but I suggest attaching the debugger (it should be an option on the Assertion Failed window), and then take a look at the call stack to see where exactly the crash is happening. Hopefully that will provide some clues. Use a build that includes debug symbols (Debug or Development) if at all possible.

We’ve heard of some problems with nDisplay in the past, caused by its use of certain third-party libraries (tinyxml2 and/or RapidJSON, if memory serves) that Cesium for Unreal also uses. And unfortunately it has its own private versions of these libraries, so Cesium for Unreal cannot easily use the same ones. When there are two copies and their versions are mismatched, it’s possible to run into some very strange problems at runtime. So it could be that’s what you’re seeing. There’s no easy solution, but hopefully with more information about what exactly is going wrong we can work toward a solution of some sort.

Kevin

Hello @ZGTech,

These are a few suggestions to try.

Getting a complete log file to see if the problem is from nDisplay or the Cesium plugin.

Starting from the nDisplay sample and then adding Cesium terrain to it.

Next, if possible you could try upgrading to Unreal version 4.27 and see if that fixes it.

Kevin & Joseph, thank you for the feedback. We started troubleshooting, so an update on the status:

  1. The sample nDisplay file loads and runs with warp/blend.
  2. Adding Cesium to the sample nDisplay file has an interesting outcome. The nDisplay sample loads, but the sky is white. Immediately after loading it crashes with the same Assertion Failed error.

We’re working on the following currently:

  1. Looking thru nDisplay logs for errors.
  2. Updating our files to see if we get the same error in UE 4.27.

I have no problem with Cesium ndisplay,but you need to change the Cesium code,and the use of UE 4.26 and 4.27 Ndisplay is completely different,you should pay attention to when using,I have been able to three-channel or multi-channel splice.

@Kevin_Ring & @joseph.kaile

We were able to upgrade to Unreal 4.27 and resolve the issue with Cesium. We’re now having a similar issue as @Dresp1 with the culling, so we’ll follow the recommended solution in Dan’s post.(nDisplay and Cesium on UE5))

Thanks for the help!