Unity VR 优化

UnityVR优化

1.Stereo Rendering Modes (Player Setting -> XR Setting)

  • Single Pass Instanced 选这个
  • Single Pass 或这个
  • Multi Pass

Single Pass 打包运行时出现分屏现象,要把后处理和Standard Assets重新import。

Motion blur problem on V2 and V1 single pass in VR · Issue #492 · Unity-Technologies/PostProcessing

https://issuetracker.unity3d.com/issues/game-view-is-split-after-turning-on-and-off-antialiasing-with-single-pass-stereo-rendering-method

Single Pass Checkbox splits view inside Oculus (Solved)

高亮插件highlightingsystem升级v5.0

如Single Pass Instanced 报错:undeclared identifier sampler_CameraDepthTexture

修改
uniform sampler2D_float _CameraDepthTexture;
为
UNITY_DECLARE_DEPTH_TEXTURE(_CameraDepthTexture);

某些shader和后处理可能要修改,参考:Single-Pass Stereo rendering

 

三种方式的性能对比

 

2.Batching合批

参考

Draw call batching​docs.unity3d.com

3.GPU Instancing

参考

Unity - Manual: GPU instancing​docs.unity3d.com

4.灯光

不建议是用完全实时照明(fully realtime lighting)和实时全局照明(realtime global illumination),建议使用静态对象的非方向光照贴图(non-directional lightmaps)和动态对象的光探测(light probe)。

可mixed lighting 和 Shadowmask 和 light probes 一起bake,允许动态对象使用实时高光(specular)和阴影。

详解Unity 5 中的全局光照技术详解(建议收藏)

参考

Lighting Strategy - Unity​unity3d.com

5.Cameras

  • Camera的方向和位置应该始终响应用户的运动,不要自己模拟变焦、震动。
  • 不要用 Depth of field 和 Motion Blur 的后处理特效。
  • 避免移动旋转地平线,例如电梯?
  • clip plane的设置。
  • UI要用 World Space。

6.后处理

少用,Full-frame后处理慎用。如需使用,请使用v2 Post-Processing Stack

不要用 Depth of field 和 Motion Blur !

7.抗锯齿

  • 前向渲染(Forward Rendering)提供了MSAA,在Quality 中设成4x。
  • 后向渲染(Deferred Rendering)在Post-Processing Stack提供两种方式:
    • FXAA-用于低端PC
    • TAA-效果好 用于高端PC

8.Shader

用Single-Pass Stereo Rendering时,一些shader需要修改。

9.Render Scale

XRSettings.eyeTextureResolutionScale < 1.0 会以牺牲图像质量为代价减少GPU的使用,而如果将此属性值设置为1.0以上,则会以牺牲GPU计时为代价获得更清晰的图像,并占用更大的内存

XRSettings.renderViewportScale 默认1.0

10.Asynchronous Reprojection(异步二次投影)

大多数VR平台都实现了一种称为异步重投影的图形技术。开发人员不应该依赖这种技术来代替优化,因为这种技术确实会导致位置和动画抖动。

11.Color Space(Edit>Project Settings>Player)

PC上选Linear,更真实。

12.Rendering Path

如果你使用的是很多动态光源,那么就使用Deferred Rendering,吃硬件。

如果游戏中没有很多的光源并且需要兼容老的设备,那么最好选择Forward Rendering,然后采用静态的Lightmap。

Forward Rendering并启用MSAA抗锯齿时不支持HDR??

Deferred Rendering不支持MSAA抗锯齿,也无法处理半透明物体

13.几何体

移除不必要的Hard Edge以及纹理衔接,即避免Smoothing splits和UV splits

14.VSync(垂直同步)

edit->Project settings->Quality 中的 VSync Count 设成 Don't Sync。

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值