Skip to main content
Up and Coming
July 29, 2016
Solved

Unity 5 Virtual Reality Supported: Text shimmering / aliasing when running on GearVR

  • July 29, 2016
  • 3 replies
  • 4623 views

I've spent the last 2 days trying to figure this out but have not come up with a conclusion. I'd appreciate if anyone has experienced the same and any thoughts.

Basically, I'm noticing that if I have a scene with text in it (world canvas and UI text component), when I build for GearVR with Unity's VR support, the text aliases like crazy. To be honest I'm not even sure 100% if it is plain old aliasing. The text just constantly shimmers. 

  1. I tried moving things around in case, for some reason, I was getting z fighting on the canvas but it seems it is not.

  2. I tried enabling anti aliasing from the quality settings and neither does it seem to make a difference. Also seems like I need to create a new quality preset and set it as the default for Android for the antialiasing to even take effect when running on the GearVR.

  3. I tried tweaking the Canvas Scaler Dynamic and Reference pixels/unit settings (which are not entirely clear to me from the docs btw). But at most, I was able to make the text slightly blurry as mentioned in the Unity VR guide and it barely helps.

  4. I tried making the canvas and text huge and then scaling the canvas down to 0.05.

  5. finally I tried making my text bold and bigger. And that seemed to mitigate the shimmering to a certain extent but not 100%.

But I've seen Unity apps for GearVR that don't exhibit this shimmering issue. So I am wondering what else might I be missing. I'm on 5.3.3.p3 if it makes any difference.

This topic has been closed for replies.
Best answer by vrdaveb
Most likely the issue is with texture filtering, not antialiasing. Make sure you have mipmaps for your text. Counter-intuitively, a large font texture is not going to help shimmering - consider using a lower-resolution for the text glyphs to reduce minification of the textures. TextMesh Pro makes this easier, but it should also be possible with Unity's built-in text rendering. I haven't tried this, but you may be able to set Text.mainTexture.filterMode = FilterMode.Trilinear. Also try changing the rendering mode of the fonts you're using.

3 replies

Inspiring
July 29, 2016
John Carmack just published a blog on Facebook about aliasing - may be worth a read in case the problems you're seeing are related:

https://www.facebook.com/permalink.php?story_fbid=1818885715012604&id=100006735798590

vrdavebAnswer
Inspiring
July 29, 2016
Most likely the issue is with texture filtering, not antialiasing. Make sure you have mipmaps for your text. Counter-intuitively, a large font texture is not going to help shimmering - consider using a lower-resolution for the text glyphs to reduce minification of the textures. TextMesh Pro makes this easier, but it should also be possible with Unity's built-in text rendering. I haven't tried this, but you may be able to set Text.mainTexture.filterMode = FilterMode.Trilinear. Also try changing the rendering mode of the fonts you're using.