Aliasing in VR

Hey,

we’re really having problems with aliasing in our Vision Pro VR app. It is way worse than I am used to with other targets. We already have enabled MSAAx8 in addition to FXAA which helped but it is still very obvious. You can see a lot of shimmering/flickering around edges all the time. In the Unity Game Window (resolution set to 3840x2160) it is perfectly crips even when moving the camera.

We have explored other options like reducing specular reflections on objects, trilinear filtering on textures, anisotropic filtering is enabled, mipmapping as well but it seems more to be about the geometry. With really close objects everything is fine but at about 20 to 30m it becomes really strong.

Is there any obvious stuff we are missing, I really would expect no aliasing problems with MSAAx8.

Hi there! Sorry to hear that you’re having trouble.

From what I’ve been told, mixing MSAA with any kind of post-processing AA (FXAA, TAA, etc.) is a bad idea. I think you kind of just have to pick a single solution and make do. I’ve also had a hard time tuning the look of a visionOS app, and a lot of this pain is the same on other VR platforms like Quest. One particular disadvantage we have on visionOS is that we can’t use dynamic foveated rendering. Due to platform restrictions, VR apps are restricted to fixed foveated rendering, which means sacrificing resolution in the periphery. As a result, certain effects like Bloom and specular reflections will “flicker” a lot more than expected and your eyes still pick up on them as you move your head around. Disabling fixed foveated rendering doesn’t help, either, because when it is disabled, we are limited (again, by visionOS) to a smaller frame buffer that is upscaled to the full screen resolution. No matter what we do, we end up with aliasing issues in the corners of the screen.

Just to be sure, is this project using URP? And do you have foveated rendering enabled in visionOS settings (it should be enabled by default)? We did have some issues with MSAA and re-projection when using the built-in pipeline that were fixed in a relatively recent patch of Unity.

Are you able to submit a bug report with a scene that demonstrates these visual issues? It’s possible that this is a bug I haven’t seen, or I may be able to give you more specific advice if I can see what we’re dealing with and play with the settings on my end.

Hey,

I know it been a while. I really appreciate your answer. Sadly, the project we are developing cannot be shared. I just wanted to report back that we are still facing this issue (with VisionOS 2 and Unity 6) and the aliasing really is super obvious and quite extreme (Even with MSAAx8). I have put in multiple days of troubleshooting but nothing has helped. At this point I am quite sure there is something wrong specifically with Unity+Metal+VisionOS. We have multiple client projects where we are facing this issue. I am just a bit suprised how this is not a big issue on this forum.

I know this is not super helpful, just wanted to bring this issue up again in case anybody else has some breakthrough here.

Just in case you missed my question above, are you using URP with foveated rendering? Without foveated rendering, the platform forces you to use a smaller render target which is scaled up to the actual screen resolution, resulting in aliasing. If you are using the built-in render pipeline (without installing the Universal RP package and setting up the render settings) you will not be able to use foveated rendering, and the result is low-resolution, aliased output.

Hey,

sorry but yes we are using foveated rendering with URP. Again we really have tried troubleshooting for multiple days. With detailed models, they have awful aliasing when using Metal (In VR as well as in the new Passthrough). This happens across multiple Unity and Polyspatial versions, across multiple projects. Of course, it is not every model, but we are working with high resolution car models and they are basically unusable because of the aliasing but look perfect in RealityKit.

I have talked with the team and would it be possible to provide a project for you in private? Should I send you a dm?

Yes please share what you can. An official bug report is preferred but if you can’t upload the project via the bug reporter, a secure link over DM is fine.