包含此页的版本:
不含此页的版本:
了解如何控制未受绳的分辨率XR一个总称,包括虚拟现实 (VR)、增强现实 (AR) 和混合现实 (MR) 应用。支持这些形式的交互式应用程序的设备可以称为 XR 设备。更多信息
请参阅术语表项目。
您可以实现分辨率缩放以减少 GPU 工作负载并优化 XR 项目的性能。XR 设备上的一些分辨率控制方法实现了动态分辨率。动态分辨率会自动调整分辨率以保持稳定的帧速率。
在 XR 项目中控制分辨率的方式取决于渲染管线 获取场景内容并将其显示在屏幕上的一系列作。Unity 允许您从预构建的渲染管道中进行选择,或编写自己的渲染管道。更多信息
请参阅术语表您的项目使用。
下表列出了可用于缩放 XR 项目中分辨率的方法,以及每种方法与哪些呈现管道兼容:
| 方法 | 渲染管线兼容性 |
|---|---|
| 使用 XRSettings.renderViewportScale 控制分辨率 | URP |
| 更改URP资产中的渲染比例 | URP |
| 动态分辨率系统 | HDRP |
| 更改 XRSettings.eyeTextureResolutionScale | HDRP |
如果您的项目使用通用渲染管线 (URP),Unity 建议您使用 XRSettings.renderViewportScale 控制分辨率。如果您的项目使用后处理,您可以使用XRSettings.renderViewportScale使用启用后处理的 XRSettings.renderViewPortScale 中所述的其他设置。
你还可以在URP资源中更改渲染比例,但这是一种昂贵的方法。
URP 在未启用时直接渲染到眼睛纹理后处理在图像出现在屏幕上之前通过应用滤镜和效果来改善产品视觉效果的过程。你可以使用后期处理效果来模拟物理摄像机和胶片属性,例如泛光和景深。更多信息 后处理, 后处理, 后处理
在术语表中查看方法,或者当您启用HDR高动态范围
请参阅术语表.当URP直接渲染到眼睛纹理时,你可以直接使用XRSettings.renderViewportScale。XRSettings.renderViewportScale控制 URP 用于渲染的分配眼睛纹理的量。你可以在运行时更改此值,以动态调整眼睛渲染分辨率。
调整renderViewPortScale可能是利用动态分辨率的最佳方式。您可以更改视口用户在屏幕上应用的可见区域。
请参阅术语表缩放每一帧,而不会因重新分配眼睛纹理而影响性能。
若要启用动态分辨率,可以使用 XRSettings.renderViewportScale 来控制渲染管线渲染到的已分配眼睛纹理部分。例如,如果将值设置为 0.5,则 URP 将渲染到纹理的四分之一(高度的一半和宽度的一半)。然后,XR 设备缩放此区域以填充最终显示。您可以更改renderViewportScale值来动态调整眼睛渲染分辨率。
XRSettings.renderViewportScale与固定注视点渲染兼容。
注意:XRSettings.renderViewportScale是针对所需视口比例的 XR 运行时的开发人员提示。但是,运行时可能会根据其内部逻辑和性能注意事项选择使用此值或忽略它。可以查询 XRSettings.appliedRenderViewportScale 来监视设备正在使用的缩放,并就如何调整做出明智的决策XRSettings.renderViewportScale用于后续帧。
如果在URP XR项目中启用后期处理方法,则URP会渲染到中间纹理,而不是直接渲染到眼睛纹理。
要启用中间纹理的动态分辨率:
注意:不能将此方法用于固定注视点渲染,或者已启用时间抗锯齿(Temporal Anti Aliasing)。
直接在URP资源中更改URP渲染比例,以直接缩放眼睛纹理。减小URP渲染比例的值会降低分辨率。此方法是 XRSettings.eyeTextureResolutionScale 的替代方法,XRSettings.eyeTextureResolutionScale 在 URP 中不受支持,但在 HDRP 中受支持。
重要提示: 更改渲染比例会重新分配眼睛纹理,这是一项昂贵的作。您不应每隔一帧都执行此作。
要更改URP资产的渲染比例,请执行以下作:
您还可以使用 UniversalRenderPipeline.asset.renderScale API 更改此值。
如果您的项目使用 HDRP,则可以使用动态分辨率系统或将XRSettings.eyeTextureResolutionScale如为虚拟现实配置 HDRP 中所述。
注意:XRSettings.renderViewportScale在 HDRP 上不支持。