Stereo not persistent across Unity levels

0 votes
asked Apr 15, 2016 by shegmann (12 points)
edited Apr 15, 2016 by shegmann
We are developers for zSpace (we are currently building for and testing on a z300), using Unity. Our Unity setup is that we have a main scene that has no zSpace stereo interaction. This scene accesses 4 levels, all with the zSpace prefabs, stereo camera, etc. Each level (including the main scene) is an independent Unity scene. Head tracking is disabled. Stylus is disabled. Main scene interacts via touchscreen, no interaction in sub-levels. We are building from Unity 5.2.3 from the z300 box right now, though we have tried building from both Mac and Windows computers previously. Fully updated zSpace prefabs.

The issue we are having at the moment is that the stereoscopic effect works when we play our scenes the first time (which have the zscore prefab configured). Everything works as it should.

When our application goes back to the main scene (which is what we use to select different levels), the stereo stops working for any of the loaded scenes after that. Scenes that worked in the first play through do not work in the second. While debugging we found everything to be as it is in the first play through, so there are no obvious errors.

zSpace Experience appears to be working as it should. No obviously error with the z300 unit.


The first play through of our own build runs as expected. It’s when the project goes back to the main scene (no stereo prefabs) and then we launch another level that the stereo breaks. If the stereo prefabs are included in the main scene, the stereo doesn’t work in the subsequent levels. There seems to be an issue with switching levels with the stereo prefabs.
commented Apr 15, 2016 by shegmann (12 points)
After further inspection, we figured out why the stereo would break and fixed that. There was a function OnDestroy that was killing the stereo in the application (zsupShutdown() ). However, this revealed another issue. It was initially called because the main scene does not have stereo and the subsequent levels do. If the stereo is not shut down, the touch screen dies after a single play through of a level, though the levels continue to work after that. This happens even though stereo is not called in the main scene.

On the z300, it appears that the Unity functions don't interact with the touch screen, though the stereo shuts the touch screen down.

We had to call zsupShutdown() within Unity to get touch input via the zspace screen working again after running a scene with stereoscopic enabled. Is there a way to initialize zSpace touch components? We tried calling zsupInitialize() but that does not seem to activate the touch screen once zsupShutdown() has been called within the lifetime of an application.
commented Apr 20, 2016 by shegmann (12 points)
Our resolution to this was to not use the touchscreen functionality. This is obviously not the ideal solution. I am not calling this issue answered, as a true answer would allow us to use the touch screen at least in the single camera scenes, though ideally it would be used during all scenes, stereo or not.
commented May 5, 2016 by swhitacre (209 points)
The z300 uses IR cameras to handle the touch. This is common among large touch screen displays. Unfortunately the IR cameras for the touch use the same wave length as the cameras for tracking. This means this effectively stops touch from working when a zSpace application is running. For this reason we disable the touch screen with our tracking service whenever an app is using the tracking.