Switch to Large FOV reduces visible Rendering Resolution

If I switch from ‘Normal’ to ‘Large’ FOV the rendering resolution is reduced drasticly.


I think that’s actually a PiTool bug.


Follow. I don’t noticed it


This is a problem that can’t really be fixed in Unity. The FOV determinates the amount of pixels being rendered.

If you start any application, upon startup, it recognizes the amount of pixels requested by the HMD to be rendered. Once the image is rendered, and you change the FOV in application, the application on its own cant change the rendered resolution of itself.
This means the same amount of rendered pixels are suddenly stretched over a larger area on the panels.

Thats why, any FOV change (especially if you increase the FOV), requires a application restart to look properly. Without a restart of application, the rendered resolution is not changed, but the FOV is.

So for example:
If you change from Small to Large FOV in PE, it will look bad. Especially if you have Parallel Projection enabled and active.

But once you start a game from PE, the resolution is corrected to the requested FOV.
Same thing if you quit PE and start it again, then it looks good again.

The only way to make this look properly while still being in PE (without starting any game), would be to instantly restart the PE application upon FOV change. The cureently existing “Restart” button only reloads the Unity scene and doesn’t restart the rendering.

Im still looking for a way to restart the PVRSession rendering without leaving the application itself. That would solve the problem. Doesnt look like its possible though…

Another fix would be to simply bind Restart button to a .bat file that quits and starts PVRHome.exe instantly. Not a pretty solution , but should work. Let me give this a try.


Unity - Scripting API: Screen.SetResolution does not work?

1 Like

Thanks, but thats for desktop rendering. Pimax SDK (PVRSession) uses its own rendering method. And it seems I cant access or modify the resolution.

Actually there is a documentation for this, and supposedly also a function to call/pull render resolution from PVRSession, but its not working. Its renderTargetSize: