We’ve detected a quite serious issue with the 2018 releases of Unity (since 2018.2) with Hololens and hologram stability.
Basically, the holograms are never stable. The best way to see the effect is to look at an hologram and physically jump a bit. The holograms also appear to jump instead of staying in place. Debugging the stabilization plane shows that the plane appears in the correct place but it seems to have no effect.
Searching the internet, this issue seems to come up from time to time, but is mostly dismissed as not being unity’s fault as most people use Mixed Reality Toolkit’s implementation of stabilization plane.
We’ve been “stuck” in Unity 2017.4 LTS because of this, since the issue doesn’t happen in this version (currently 2017.4.23f1)
We want to move on to Unity 2018.3, mostly because of the “nested prefabs” feature, latest Vuforia version, etc. But this issue keeps happening and it seems nothing is being done to fix it (not that I’m aware of). I hope this report changes this (I’m also writing a bug report).
We created 2 empty unity projects (Unity 2017.4.23f1 and Unity 2018.3.9f1). In both projects we created a cube and a sphere that appear in front of the Hololens (fixed position). Both projects have the “Enable Depth Buffer Sharing” checked and some other basic settings to run in Hololens. No other mechanism is used (no world anchors, no MRT, no Vuforia tracking, no manual setting of stabilization plane, literally nothing else).
After build/deploy, the final result of both projects can be compared and there’s the obvious issue with the 2018.3 build.
Unity 2017.4.23f1 (LTS): (holograms are stable)
Unity 2018.3.9f1: (holograms are unstable)
Actual framerate in both apps is constant 60fps.
TLDR: Unity 2018.3 holograms are not stable. This doesn’t happen in Unity 2017.4 LTS with the same settings. We’re unable to update unity because of this and we really want/need to. It is most likely a Unity issue since no code or any other packages are being used.
Hey @EdgarSantos I’d be happy to take a look at your bug. You’re right most of our reports about unstable holograms are people using the MRTK. If you’re reproducing this without MRTK at all then I am highly interested to hear about this. What is the bug number you submitted so I can pull it up on my end? I might have some follow up questions but I’ll take a look at your repro projects first.
Interesting… I’m trying to sync up to what you’re seeing but my holograms are appearing very solid on 18.3.9f1. I’ve recorded a video to compare with you, would you say this is better, worse, or the same than what you are seeing?
It actually looks like it’s not so stable compared to what we get with 17.4LTS.
Also, small up-down shifts while looking at the holograms is the best way to reproduce the issue we’re having.
(that’s what I’m doing in the videos attached to the bug report, which are the sources for the gifs posted here).
Do you got any news regarding this? We are facing the exact same issue.
We first noticed holograms instability so we experimented different settings (2017.4, 2018.4, with and without MRTK, with and without WorldAnchor). Without using the MRTK, the holograms are way more stable in Unity 2017.4 whereas on 2018.4 they are jumping a lot.
As a result, we are currently stuck with 2017.4.
FYI, our HoloLens has been wiped yesterday and is updated to the lastest OS version (17763.615 - 09 July 2019).
Do you need any thing to help you identify the issue?
Repro projects always help us compare 1:1 with what you’re using. If you have one to supply I’d always love to see it as you might be hitting a niche we aren’t looking for. I definitely see some jitter in your videos, especially the 2018 video.
In the mean time, perhaps try using Shared Depth Buffer in your XR Settings.
@JasonCostanza We are already using Shared Depth Buffer.
Please find attached a repro project. Inside the archive, you will find both the Unity project and the HoloLens built packages for Unity 2017.4 and Unity 2018.4
I noticed in 2019.1.9 patch notes the following line: XR: Fixed Render Viewport Scale Jitter when render viewport scale changes continuously. (1153261, 1159974)
Do you know if it could be related to the bug we are currently facing, and if it is do you got any ETA for 2018.4 fix?
Edit: Well, I just tested with Unity 2019.1.12f1 and the issue is not solved. As such, only Unity 2017.4 seems to be a safe environment to develop at the moment.
I would also like to know this, we have been battling hololens jitter since early this year and its quite noticeable, none of the recommended steps alieviate it.
Noted @jonathan_dana , thanks for all the info! I’ll make an effort to reproduce what you’re seeing. As I mentioned these are notoriously hard to reproduce on our side but we will give it the olde honest effort and keep you posted best I can. @MadeFromPolygons_1 are you seeing the exact same behaviors as Jonathan is in his videos? If not, please provide any info you can about what you’re seeing, where you’re seeing it, etc.
I appreciate all your patience with tracking these down, I know how frustrating and uncomfortable wobbly, shaky, jumpy, holograms can be. I want this issue dead as much as you guys
It does. I will look into this. if there’s any specific repro steps you guys missed, please provide them. e.g. running on the device with a built/deployed app or running in simulation or remoting. All of that info helps us narrow down what’s happening. If the projects included were 2 freshly built projects or if you built the 17.4 and upgraded it to 18.4. We ask because those two versions are roughly a year or so apart of development time so an upgrade path MAY have taken a different code route and introduced side-effects. We’re not sure, just speculating at potential suspects. As the police say, any detail you can think of even if you think it’s unimportant, could be the detail that matters.
Running on device, using latest SDK, latest HoloLens updates, Unity 2018.4.4f1. (Same on all 2018.4 versions that I have checked). Using in built pipeline, using mixed reality toolkit shaders (but is same regardless of shader as far as I can tell). This happens whether object is anchored or not, anchoring it does actually seem to make it a bit worse (hopefully again this may be helpful, my thoughts initially was that it is something incorrect under the hood with how world anchors locate themselves).
I dont develop without unity, but I have a friend who has used the same models in a non-unity hololens app (direct x I think) and it did not produce any jitter at all.
Jitter gets worse up close, and there was no (custom) code running in scene.
I think thats about everything?
Hopefully this will be of use, I wouldnt be able to provide any repro project from this PC as we are forbidden due to security to send out any project files even fresh projects not to do with work.
I noticed the issue when running on the device, I’m never relying on simulation nor remoting.
The project I uploaded is an upgraded version from 2017.4, but we initially spotted the issue when starting a fresh 2018.4 project so it’s not relevant unfortunately
As you can see, there is no third party tools in the project (no mrtk, no custom packages, no special assets)
I confirm it’s still occuring on 2019
Please let me know when you’ll have tested my build so we can compare the results.
I’m also seeing this behaviour in 2018.x. We’d previously been targeting 2017.3f1 and have since rebuilt in 2018.4.3f1. I’d also second that it appears to get worse when close (~1m) to an object.
The other change on our end was to use depth buffer sharing rather than manually setting the focus plane as we did in 2017.x, but given that others are experiencing this I don’t imagine that’s the issue.