Jump to content

Changing resolution scale on Focus


Recommended Posts

Hi everyone,

is it possible to change the rendering resolution scale on the HTC Focus? I tried using Unity's XR Settings:


UnityEngine.XR.XRSettings.eyeTextureResolutionScale = scale;


But it doesn't do anything. Didn't find a corresponding option in WaveVR classes.

Link to comment
Share on other sites

Hi ,


Currently it doesn't work if you revise the vaule of UnityEngine.XR.XRSettings.eyeTextureResolutionScale,  since no corresponding implementation on our Unity plugin.

Could you describe more how the use case to change resolution so we can add the proper API in our planning?





Link to comment
Share on other sites

Hi Tony, thanks for Your reply.


If you want to know the use case in my current project, I want to change the resolution to reduce aliasing by changing the rendering scale to a higher value. Although, making the scale lower to reduce resolution would also be helpful when performance is more important.


For example, I want to set the rendering scale to 1.5, which would render the scene in 4320 x 2400 (since regular resolution on Vive Focus is 2880 x 1600 and we multiply each by 1.5) and then downsample to the display resolution, effectively reducing aliasing. Other anti-aliasing methods didn't work for me as well as I would like, but this might help in my case.


In general, it would be best if we could set this rendering scale to any value, any time, even at runtime, but in my case it'd be enough if I could at least set it once for the entire project and not modify it during gameplay.

Link to comment
Share on other sites

  • 4 years later...
On 12/10/2018 at 3:26 AM, Tony PH Lin said:

nd Interop.WVR_GetRenderTargetSize(ref w, ref h) from WaveVR_Render.cs

The definition is w for width, and h for height.

You might try to multiply scale factor to see the result after calling this function.

Is  WaveVR_Render.cs changed the name? I can't find the script.

Link to comment
Share on other sites

@1099I'm guessing there is some confusion - i think he meant to mention 

Interop.GetRenderTargetSize(ref uint width, ref uint height)


under the hood Tony was mentioning this api which is not in that script

In regards to:


UnityEngine.XR.XRSettings.eyeTextureResolutionScale = scale;

The answer to this depends on your render pipeline, and i believe a few other things.

Looking quickly, i believe the URP doesn't support changing it through this api, only the built-in api. 
I believe the URP has a way of changing this from a slider on the camera "Render Scale" property described here https://docs.unity3d.com/Packages/com.unity.render-pipelines.universal@10.4/manual/universalrp-asset.html
and they mention in this thread https://forum.unity.com/threads/windows-mixed-reality-eyetextureresolutionscale-not-working.1097992/

There are also versions of the pipelines that have issues - looks like there is an issue with 10.0.x URP and earlier https://docs.unity3d.com/Packages/com.unity.render-pipelines.universal@16.0/changelog/CHANGELOG.html 

And perhaps i'm misremembering but i seem to remember there is some more unusual configuration that requires finding a reference to the xr display subsystem and setting the "scaleOfAllViewports" https://docs.unity3d.com/ScriptReference/XR.XRDisplaySubsystem-scaleOfAllViewports.html 

That said, typically aliasing is reduced through MSAA settings and other filtering (including using proper blending and MIP maps)

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Create New...