Since I have changed my canvas to camera mode, it displays text like this:
I have traced it back to the additional channels and when disabling normal it displays correctly. However as soon as I start in play mode the normal channel is reenabled by TextMeshPro…
These additional shader channels are needed for the text to render correctly. Although Normal and Tangents are not needed with plain text, having the Normal and Tangents still passed to the shader has no measurable impact even on the slowest mobile devices.
When you modify those Additional Shader Channels, were you disabling TexCoord1?
If so, TexCoord1 contains the SDF scale which would impact text rendering. Like I said those additional shader channels are used by the TMP shaders and have to be enabled.
I haven’t disabled any shader, I have noticed that disabling them would fix the blurry display issue but it turned out that TMP switched them back on. Actually it is an issue with the normal channel, but since it does not occur in play mode it’s not such a big deal as I first thought it would be.
Ok, I’m sorry but the problem was not solved: I forgot to remove the code in Update() that sets the masks to None. However I noticed some strange flickering and realized that. After looking around a bit longer I have figured out that setting the UI camera to Orthographic helps a lot:
In scene view:
Game view orthographic:
Game view with camera perspective:
I think it’s still lesser quality than the scene view display but it’s maybe caused by scaling.
The chess piece is from one of the merida chess font files. I have checked the ratio and it was 98/5 so i changed the padding to 10 and it became 85/10.
Perspective:
Orthographic:
Scene:
Thanks, that helped some more.
ETA: Finally solved it by reverting the canvas to Overlay, it was my mistake here but I don’t regret it because I’ve learned a few interesting things on the way
I still have this issue as my canvas is set in world space. The font is blurry at certain distance which makes it unsuable due to the fact that the scaling is pretty small (ex 1920x1080) @ .001f or maybe .002f. I can play with different settings but at the end of the day it looks like OPs perspective view when using VR. I disable it in the editor but it reenables it and the problems start again. Is there a fix for this yet? Hard to get crisp TMP text… I am using 2021.2.14f
Or maybe Unity could Create a custom bool … “BlockShaderChannelEnable”.
Is it possible for yall to create something for people using VR/XR? When using world canvases to disable the extra channels and prevent them from enabling with the Unity Subsystems? It literally fixes all the problems and makes unity worldspace canvases useable in high quality for XR/VR per my testing. The problem is that Unity somewhere kees reenabling it randomly.