最新文章
泰课在线 | 微信拼团成功后如何获取课程?
08-09 17:57
Unity教程 | 使用ARKit为iOS开发AR应用
07-31 17:23
Unity Pro专业版7折订阅四选一工具包之VR开发与艺术设计
07-28 11:47
网友使用虚幻UE4实现CAVE 多通道立体渲染的沉浸式环境
07-27 11:57
VR晕动症调查:未来5年内大部分VR晕动症将得到解决
07-27 11:26
AMD CEO:未来3-5年最重要 希望5年达1亿VR用户
07-27 10:44
VR游戏制作的规格分析
由于UE4的演示资源更为丰富,我对UE4中有代表性的演示进行了全面测试,同时借助Rift确认效果以及其中资源的制作方式。
UE4与Unity对比
UE4是基于物理渲染的引擎,其材质和贴图细节更为丰富,更偏向图像真实效果。在PC上,UE4的品质优于Unity,但性能消耗也相对更大,因此非常适合作为VR产品质量和效率的标杆。
以下是我针对PC高品质制作的总结,随后将结合每个演示进行具体分析:
- 渲染风格:VR既可以实现基于物理渲染的效果,前提是贴图和光照遵循物理法则,也可以采用偏卡通的风格。
- PBR使用:VR可使用PBR的金属度/镜面颜色、法线贴图、粗糙值等。在Unity 5中,需在金属度/镜面颜色的工作流中选择其一;为提高效率,UE4也建议选择其中一种,而非同时使用。
- 粒子制作:若粒子需要与视觉交互,应采用基于Mesh的粒子,而非基于Billboard生成的粒子。
- 凹凸细节:在VR中,Normal Map仍能呈现凹凸感,并非像文档中描述的那样无效。在PC上,使用POM(视差映射贴图)和Tessellation(表面细分)技术可实现比Normal Map更高的细节。
- Specular Aliasing问题:VR会放大PBR的Specular Aliasing问题,需采用支持Specular Anti - Aliasing的技术(如Temporal AA)。
- 分辨率与锯齿:由于VR分辨率较低,为减少锯齿感,应尽量避免使用alpha test制作的效果。
- UI和互动制作:UI和互动制作十分重要,但Unity和UE4在这方面的实例较少。
- 调试工具:UE4自带的命令行工具对性能分析很有帮助,而Unity缺乏如此全面的分析工具,需要自行实现和改造。
- 性能优化:为保证体验,最好将帧率维持在75FPS。
接下来,我们将对这些问题逐一展开阐述。
渲染风格:基于物理(PBR)或者卡通风格
在我翻译和分享的资料中,对PBR已有较多介绍,这里仅作简要说明。PBR大致可分为材质着色(Material Shading)、光照(Lighting)、后处理特效(Camera Effect)三部分。UE4和U3D均支持PBR材质着色,但光照和后处理部分在VR实现中对性能和效果的要求较高。现阶段的PBR主要依靠基于微平面的BRDF以及IBL,并通过粗糙度增强效果。考虑到VR性能,应尽量减少动态光源和物理镜头的使用。
在近期展示的VR项目中,真正采用PBR的项目较少,大多为卡通风格或着色模型简单的项目。若要在品质上有所突破,PBR是一个可行的方向。
VR的美术制作管线
在美术管线方面,VR与普通项目并无太大差异。卡通风格可沿用传统卡通管线;对于PBR风格,美术制作时需具备一定的PBR管线意识,除绘制粗糙度贴图外,还需了解金属和非金属的颜色。从节省资源和提高效率的角度考虑,在Metalic或Specular的制作流程中选择其一即可。
与Specular流水线相比,Metal的美术管线贴图占用更小,对美术师而言更直观、简单。颜色可直接绘制在base color上,只需用Metallic的贴图标识出金属和非金属,着色模型就能自动确定Diffuse和Specular的颜色。
凹凸细节的制作
UE4官网提到,由于VR需要左右眼分别渲染,像Normal Map这类依赖视觉的贴图效果在VR中会被“平坦化”。但从UE4的一些演示来看,Normal Map仍能呈现一定的凹凸感,只是效果不如普通PC明显。同时,Directx11的POM(Parallax Occlusion Mapping)和Tessellation技术能实现比Normal Map更好的效果,这在Crytek的一些游戏和演示中较为常见。
POM通常用于制作墙面和地板等平面的凹凸效果,而Tessellation可利用Directx11的TS对各种模型进行表面细分。POM的制作相对简单,使用类似Bitmap2Material的工具也能获得不错的凹凸效果。
粒子特效
传统的Billboard粒子通过一个或大量板型多边形朝向玩家视点方向来模拟效果。但在VR中,双眼会导致Billboard出现偏差,而且当玩家在粒子附近晃动头盔浏览时,Billboard的破绽会更加明显。
例如,在Showdown的演示中,导弹火焰的轨迹和爆破碎片由于会穿插在玩家视点的前进路线上,玩家可从正面、低头或回头观看,因此采用了基于Mesh的粒子制作方式。
Specular Aliasing的问题
Specular Aliasing是PBR的Specular高频部分在较远处因采样问题产生的现象,表现为物体边缘的高光会随视角移动而“晃动”。
对比关闭和打开Specular AA的效果可以发现,关闭时Specular Aliasing在运动时更为明显。因此,需要采用支持(subpixel reconstruction AA)的后处理技术,如SMAA或Temporal AA,但这会增加GPU的消耗。
Alpha Test AA
在BlackSmtih这个Demo中,画面抖动较为严重。原因之一是Unity默认的FXAA仅对几何体的锯齿有效,无法很好地解决像素走样问题。在VR中,由于分辨率较低,使用alpha test制作植物边缘等效果时,锯齿感会被放大。
UI和互动的制作
在UI方面,U3D和UE4自带的3D UI在表现力上与Scaleform存在较大差距。若要制作科技感强的界面,需要手动定制一些功能。
调试和性能分析
Unity的分析主要依赖Profile,调试时需取下头戴设备,在Editor中调整后再用设备确认。
而UE4不仅有分析工具,还可在游戏中直接使用命令行工具显示各种性能参数以及显示特性的参数设置,更便于判断性能瓶颈。Unity则需要在编辑器中自行设置,或修改和扩展自己的设置插件。
性能问题
为避免玩家产生眩晕感并保证游戏流畅度,UE4建议在Rift DK2上维持75FPS的帧率,这要求最低硬件配置为GTX960。在我的GTX660上测试,UE4的VR专用演示帧率约为45FPS,其他演示约为30FPS。这一方面与UE4本身的优化不足有关,另一方面也因为UE4演示中使用了高品质的材质和特效。UE4的性能和制作规格对Unity开发具有一定的参考价值。
附录:UE4自带的两个VR专用演示(Showdown和CouchKnights)特性
场景数据
- Draw Call:场景的平均Draw Call为600。在VR环境下,UE4的Draw Call会翻倍,绘制的多边形数量也会相应增加,这与Unity的实现方式不同。
- 多边形数:静态物体对象的多边形数为50w - 70w,骨骼动画的多边形数全屏约为30w - 50w。
静态场景
大部分静态场景,如近处的房屋和地面,采用标准PBR材质,带有Roughness和Normal Map;远景房屋未使用Normal Map,地面使用bump offset模拟POM效果。同时,配合Local Cubemap(UE4里叫ReflectionCapture)实现地面上水洼的反射效果。
动态物体
场景中除玩家外,只有士兵和敌方Boss两种角色,面数分别为6w和10w,每个角色有7 - 8种材质。
光影
场景未使用任何动态光源,采用预先烘培的光照贴图(Lightmap)和Light Probe(UE4里叫Lightmass)。角色动态阴影通过脚底下的贴片进行模拟。
粒子特效
- 车的爆炸特效:在一个经过高细分(tesselated)的球体上加入世界空间的噪声来实现。
- 导弹的轨迹:对几何体进行细分,使其沿着样条曲线运动。