使用unity进行HTC VIVE(SteamVR)开发时,总结了几点:

 

边缘锯齿的浮动(闪烁)、材质表面的闪烁问题

产生原因:

在VIVE头显模式下,Unity对于薄边缘的抗锯齿效果不佳,并存在高光闪烁的缺陷。

如何解决:

方案1:

使用The Lab Renderer。(需要配合Unity 5.4.0版本使用,使用Unity5.4.4会不时出现屏幕闪动问题)

方案优点:

  • 可以较大程度得对高光闪烁问题进行克服。
  • 对于细的具有明显高光的金属杆的显示完爆其他的方案。
  • 抗锯齿有较明显的效果。(注意不能再在摄像头上挂载别的抗锯齿方法)

方案缺点:

  • 视线稍远处(3米开外)就有些模糊(相对于不使用The Lab Renderer的情况)
  • 整体画面的清晰度不如Unity5.5下不使用The Lab Renderer。

 

方案2:

Unity 5.5,在Quality中设置Anti Aliasing 为4倍或者8倍;在CameraRig的Camera(eye)上挂载抗锯齿脚本(下载地址)Image Effects/Anti-Aliasing,开启SMAA(Subpixel Morphological Anti-aliasing)或者FAA,或者挂载Image Effects/Other/Anti Aliasing(该脚本中使用FXAA3 Console效果相对较好)。建议根据实际场景测试选择。

方案优点:

  • 画面相对方案1更清晰。

方案缺点:

  • 高光闪烁相较方案1更严重。(但如果不是非常光滑的金属,此时闪烁仍能接受)
  • 细金属杆呈现比较明显的锯齿闪烁状。

 

 

 

材质表面存在闪烁的问题

问题原因:

unity的抗锯齿方案会导致高光部分闪烁。

如何解决:

使用 The Lab Renderer可以一定程度减小高光闪烁。

补充:UE4不存在此问题在于UE4默认使用TXAA,但TXAA的副作用是让画面变模糊。如果UE4将TXAA改为FXAA,一样闪烁。

 

草和树(即便是Assets自带),在头显中看会出现明显闪烁状。

如何解决:

不仅是默认的草和树,还有AssetStore上下载的SpeedTree也会出现这种情况。问题出在材质上。

解决方案是将材质替换为Standard Specular Material,树叶之类在Render Mode中使用Transparent或Fade,并且,树不能烘焙。(注意,如果使用Cutout,仍然会出现闪烁情况,不过这个闪烁与抗锯齿相关,且暂无法规避)(并且,如果使用透明的材质显示树叶,由于前后交错的树叶及不透明的树干在深度测试中的问题,树干经常会显示在树叶前面,出现错误)

如图是使用Nature材质的效果:

TreeNature.gif

如图是Standard Specular-Transparent的效果:

TreeSpecTrans

如图是Standard Specular-Cutout的效果:

TreeCutout

 

unity HTC VIVE的实践小结

发表评论

电子邮件地址不会被公开。 必填项已用*标注

浙公网安备 33010602005964号