使用unity开发Pico程序,场景中锯齿问题
1、问题
使用unity【非HDR】开发Pico程序,场景中锯齿问题,设置了unity的抗锯齿和渲染方式,及悬挂抗锯齿的脚本,都不能很好的解决项目中图片、文字的锯齿问题,通过摸索找到了妥善的方法
1、修改项目中图片的 GenerateMIpMaps 为勾选状态,MipMapsPreserveCoverage这个可以未勾选,若是勾选则把其下属属性 改成 1 若不然图片在pico中出现 界面分层的问题
2、在Awake中 添加 XRSettings.eyeTextureResolutionScale=2f 此项渲染会消耗比较大,还需看情况进行修改
这样场景的图片和文字会变得无比的清晰
pico相关知识地址
https://developer-cn.pico-interactive.com/document/unity/modify-eye-texture-resolution/
2、引用
修改 Eye Buffer 分辨率大小
Eye Buffer(即眼部缓冲区)处于 VR 设备端 3D 图像渲染的中间一环。在渲染过程中,系统会将每只眼睛的标准视图渲染到 Eye Buffer 中,然后将 Eye Buffer 作为渲染纹理提供给 ATW 线程进行畸变和采样处理。
Eye Buffer 分辨率(即渲染分辨率)大小会影响画面质量和应用性能。分辨率越低,画面质量越低,但同时也会降低延迟并提升应用性能。反之,分辨率越高,画面质量越高,但同时也会提高延迟并降低应用性能。你可根据实际情况,通过调整渲染分辨率来提高图像质量或改善性能。
注意事项
提高应用的渲染分辨率可提升画面质量,但可能会对设备的电池寿命造成潜在影响,此外,根据所显示内容的渲染压力,可能会导致 CPU/GPU 节流。通过默认使用较低分辨率的方式,能够确保设备在电源消耗和性能之间保持良好的平衡,但会降低画面质量。
使用建议
- 如果你的应用已经具备良好的性能,则可在项目代码库中增加像素密度,提高渲染分辨率,从而提供更加清晰的视觉效果。反之,如果应用无法保持良好的性能,则可以通过降低渲染分辨率来提升性能,但这会降低视觉质量。
- 修改 Eye Buffer 像素大小时,系统总是会重新分配眼部纹理,所以该操作成本较高。如果需要在应用运行时动态修改眼部渲染像素,可以考虑修改渲染视口尺寸。
- 根据 PICO 商店应用审核标准,你需确保应用在满电设备上运行至少 45 分钟而不触发低电量警告。建议你测试应用的热行为和电池行为,以尽可能地避免意外问题,同时最大化设备的性能和电池寿命。
-
修改方法
Eye Buffer 分辨率值默认为 1.0,一般不推荐修改。根据实际需要,你可以通过修改 XRSettings.eyeTextureResolutionScale 的值来修改 Eye Buffer 分辨率大小。分辨率取值范围为 0.8 至 2.0。值越大,分辨率越高。不建议设置高于 1.5 的值。
XRSettings.eyeTextureResolutionScale = 1.0f;
如果使用了通用渲染管线(URP),请使用如下方法:
if (GraphicsSettings.renderPipelineAsset != null) { ((UniversalRenderPipelineAsset)GraphicsSettings.renderPipelineAsset).renderScale = 1;
}