因为UE4的演示资源更丰富一些,我这边把UE4的有代表性的演示都跑了一遍,同时也通过Rift确认效果,和里面的资源制作方式。
首先,UE4是基于物理渲染的引擎,大部分都是偏向图像真实的。使用的材质和贴图细节也更多一些。在PC上的品质要比Unity好,性能应该也要比Unity费一些,所以很适合作VR产品的质量和效率标。
这里先列出自己的总结,然后再结合每个演示做一些具体分析。这些只是针对PC的高品质制作:
1)渲染风格方面,VR也可以作出基于物理渲染的效果,只要你能贴图和光照要遵守物理法则,也可以偏卡通一些的。
2)VR也可以使用PBR的金属度/镜面颜色,法线贴图,粗糙值等,但在Unity5上,你需要在金属度/镜面颜色的工作流中选择一种。UE4为了效率考虑,最好也能选择其中一种,而不是两个同时使用
3)粒子如果是要和视觉交互的,就不能用基于Billboard生成,而是要做成基于Mesh的粒子
4)Normal Map在VR中还是可以看出凹凸感的,并不像文档中介绍的那样没有作用,但是PC上使用POM(视差映射贴图)和Tessellation(表面细分)技术可以作出比Normal Map更高的细节。
5)PBR的Specular Aliasing的问题,会被VR更加放大,需要使用可以支持Specular Anti-Aliasing的技术才可以(比如Temporal AA)。
6)VR的分辨率比较小,为了减少锯齿感,尽量避免一些使用alpha test制作的效果。
7)UI和互动的制作也很重要,这部分Unity和UE4上缺少这方面的实例。
8)调试方面,UE4自带的命令行工具对性能分析很有帮助,这个Unity自己没有那么全面的分析工具,需要自己实现和改造。
9)性能问题的优化问题,最好能保证75FPS
接下来对这些问题逐一阐述。
1)渲染风格 基于物理(PBR)或者卡通风格
PBR我翻译和分享的资料里应该有很多了,这里只做一个简单介绍,PBR大概可以分为材质着色(Material Shading),光照(Lighting),后处理特效(Camera Effect)3部分,UE4和U3D都有PBR材质着色支持,但光照和后处理部分性能和效果对VR实现压力还是过大了。现阶段的PBR,主要还是靠基于微平面的BRDF,以及IBL,通过粗糙度来增加效果。动态光源和物理镜头因为VR性能的缘故尽量少用。
Order 1886的图释,只有材质是PBR的
最近展示的VR项目里,真正采用PBR的并不多,大多是卡通,或者是着色模型简单的,如果在品质要出彩的话,确实是一个突破点。
PBR风格
卡通风格的场景
2)VR的美术制作管线
美术管线方面,VR和普通并没有太多特别的,卡通的沿用卡通的就可以,PBR的,美术制作时有一定的PBR管线意识,除了需要绘制粗糙度的贴图外,还需要对金属和非金属的颜色有一定的了解,而从节省资源和效率考虑,在Metalic或Specular的制作流程中选择一个就可以了
如下图所示,Metal的美术管线和Specular相比,贴图占用更小,对美术师制作起来也更直观和简单,颜色都绘制在base color上,然后只需要用Metallic的贴图标识出那些是金属和非金属,着色模型就会自动的来确定Diffuse和Specular的颜色。
而Specular的流水线,需要美术师需要有意识的把金属的颜色绘制到Specular上。通过Diffuse和Specular的颜色,来区分金属和非金属。
3)凹凸细节的制作
UE4的官网提到,因为要左右眼分别渲染的缘故,对视觉依赖的贴图效果,如Normal Map在VR上会被“平坦化”,但实际从UE4的一些演示上看,Normal Map的效果还是有的,只是没有普通PC那么明显,同时,Directx11的POM(Parallax Occlusion Mapping)和 Tessellation,可以起到比Normal Map更好的效果。这些在Crytek的一些游戏和演示中都很常见。
下图是UE4的VR演示,ShowDown中的机器人Boss,从下面的材质看,也使用到了Normal
下面是Crytek的POM和TS的效果对比,在几何体细节的增加上很明显。
POM一般可以用来做墙面和地板等平面的凹凸,而Tessellation是则是可以利用Directx11的TS制作各种模型的表面细分。POM制作起来相对简单,类似Bitmap2Material的工具也能作出不错的凹凸效果。
4)粒子特效
传统的Billboard粒子都是一个或大量的板型多边形朝向玩家视点的方向来模拟出效果,而VR的话,一个是双眼导致Billboard出现偏差,另外就是当玩家处在粒子附近晃动头盔浏览时,Billboard就会被看出破绽
Showdown中的导弹火焰的轨迹和爆破碎片,因为轨迹和破片是穿插在玩家视点的前进路线上,玩家可以在正面或者低头和回头观看,所以都是用网格来制作的。
5)Specular Aliasing的问题
Specualar Aliasing是PBR的Specular的高频部分在较远处因为采样问题导致,表现就是物体边缘的高光会跟根据视角移动“晃动”现象。
左图是关闭了Specular AA的效果,右边是打开的,Specular Aliasing在左图运动时会更加明显。所以需要SMAA或Temproal AA这类对支持( subpixel reconstruction AA)的后处理。不过这样就增加了对GPU的消耗。
6)Alpha Test AA
BlackSmtih这Demo里抖动相当厉害。其中原因,一个是Unity默认的FXAA只有对几何体的锯齿有效果,对应像素的走样问题并不能很好的对应。下图中远处的场景抖动就非常厉害。
一般渲染植物都是使用贴图,然后用alpha test来作出植物的边缘,由于分辨率比较小,这种锯齿感在VR里也会被放大。
7)UI和互动的制作
UI方面,U3D和UE4自带的3DUI在表现力上和Scaleform比还是有很大差距的。如果要制作出科技感强的界面,还是要手动定制一些功能。
8)调试和性能分析
unity的分析主要是靠Profile,调试时需要拿下头戴设备,在Editor调整后,再用设备来确认。
UE4除了有分析工具外,还可以直接在游戏中使用命令行工具显示各种性能参数,以及各种显示特性的参数设置,更方便判断瓶颈。Unity还是需要自己在编辑器里设置,或者修改和扩展自己的设置插件。
8)性能问题
为了不产生眩晕感和流畅,UE4建议在Rift DK2可以维持在75FPS,那么最低硬件配置也是GTX960。在我的GTX660上,UE4的VR专用演示大概是45FPS左右,其他的大概30FPS左右。这个一个和UE4本身的优化不足有关,另外也是UE4演示里还是使用了高品质材质和特效的缘故。UE4的性能和制作规格对Unity开发还是可以起到参考作用。
附录:
最后是UE4自带的两个VR专用的演示,Showdown和CouchKnights的一些特性
场景的平均Draw Call为600
静态物体对象的多边形数50w~70w,骨骼动画的多边形数全屏为30w~50w左右
如果是VR的话,UE4的Draw Call都要翻倍,绘制的多边形数量自然也翻倍了。实现方式上,这点和Unity是不一样的。
静态场景
大部分的静态场景,近处的房屋和地面等等都是标准PBR材质,有Roughness和Normal Map,远景的房屋没有使用Normal Map,地面使用了bump offset来模拟POM的效果。
配合Local Cubemap(UE4里叫ReflectionCapture)做出来地面上水洼的反射效果。
动态物体
除了玩家外,场景里只有士兵和敌方Boss两种角色。面数为6w和10w面。一个角色都有7,8种材质。
光影
场景没有使用任何动态光源,都是预先烘培的光照贴图(Lightmap)和Light Probe(UE4里叫Lightmass)
角色动态阴影只是一个脚底下的贴片来Fake的。
粒子特效
车的爆炸特效,是在一个做了高细分( tesselated )的球体上加入了世界空间的噪声来实现
导弹的轨迹也细分几何体。沿着一个样条曲线来运动
- 中国VR公司的详尽名单
中国VR公司的详尽名单 <VR圈深度投资报告一:2014年以来所有VR/AR融资事件> 特征一.投资机构观望居多 尽管VR在媒体和二级市场炒得很热,但大多风险投资机构却慎于出手,以观望 ...
- 国内经典BI系统架构分析
谈起商业智能BI,也许大家并不陌生,但你是否了解国内的各类BI系统架构? 自国内商业智能发展以来,就系统结构方面已经历了多次优化性的变革.目前国内商业智能BI系统的经典架构的模式包括数据层.业务层和应 ...
- 五大科技巨头VR/AR专利报告,Magic Leap以22.6%领跑
在十月份发布的<VR/AR专利技术深度分析报告>指出,VR.AR行业的专利多被佳能.索尼.微软.谷歌等科技巨头"包养",但是并没有对这部分进行详细分析.近日,风投公司C ...
- Gartner:当商业智能成熟度低时,如何加快分析采用率
文 | 水手哥 本文出自:知乎专栏<帆软数据应用研究院>--数据干货&资讯集中地 根据Gartner近7年的调查结果,71%的受访企业处于低成熟度阶段,也就是Gartner五级BI ...
- DICOM:DICOM三大开源库对比分析之“数据加载”
背景: 上一篇博文DICOM:DICOM万能编辑工具之Sante DICOM Editor介绍了DICOM万能编辑工具,在日常使用过程中发现,“只要Sante DICOM Editor打不开的数据,基 ...
- 如何使用百度EasyDL进行情感分析
使用百度EasyDL定制化训练和服务平台有一段时间了,越来越能体会到EasyDL的易用性.在此之前我也接触过不少的深度学习平台,如类脑平台.Google的GCP深度学习平台.AWS深度学习平台,但我觉 ...
- CMMI-4中19个PA的大致描述
组织过程资产库下面有组织级标准过程库, 这个库里一共有19各PA(就是标准过程啦) PA的英文是Process Area CM(配置管理过程,英文是Configuration Manage ...
- 机械学习笔记1 -> Solidworks三维产品设计与建模1 | 建模基础入门
学习之余,课余了解一点点,作为爱好,妄想以后能够设计机甲出来. 学习来源是Solidworks三维产品设计与建模 00 工作界面介绍 00-1 概览 有时菜单栏和工具栏会重叠在一起,只有点击左侧三角才 ...
- 用FineReport报表系统构建资金监管平台
一.应用背景 计算机的应用已经渗透到日常工作的许多方面,无论是其自身还是所发挥的作用,计算机都标志着一种高科技,使工作高效率和高水平.为了能更方便,更轻松,更好的管理,信息化建设正在日益发展壮大,更加 ...
随机推荐
- Set和Map
Set和Map
- JavaScript字符串&数字间转换
比较操作符的操作数可以是任意类型.然而,只有数字和字符串才能真正执行边角操作,因此那些不是数字和字符串的操作数都讲进行类型转换,类型转换规则如下: 如果操作数为对象,那么对象转换为原始值:如 ...
- 解决Inno Setup制作安装包无法创建桌面快捷方式的问题
转自:http://yedward.net/?id=104 昨天想把个java程序做成exe安装软件,然后就去下载了Inno Setup这个软件安装包制作软件,Inno Setup这个软件确实非常好用 ...
- Rational Software Architect V8.5.1安装
转自:http://blog.sina.com.cn/s/blog_4a0238270101bupg.html IBM Rational Software Architect (RSA) 是 IBM ...
- 测试服务API的_苏飞开发助手_使用说明
1 工具说明_json对象字符串拼接 2 工具说明_纯字符串拼接
- C++的那些事:类的拷贝控制
1,什么是类的拷贝控制 当我们定义一个类的时候,为了让我们定义的类类型像内置类型(char,int,double等)一样好用,我们通常需要考下面几件事: Q1:用这个类的对象去初始化另一个同类型的对象 ...
- 动态设置form表单的元素值
因为经常用到的功能,所以我想到封装一个函数,用起来更方便快捷.. 先来看效果图如下: var data = {a:'aaaa', b:'2', 'c':[1,2,4]} 这就相当于 ajax 返回的j ...
- android 完美退出所有Activity的demo
项目地址:https://github.com/libill/myapplication 利用android的wheel和参考android完美退出程序做出来的demo,结束掉所有打开的Activit ...
- AsyncTask的基础讲解
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); s ...
- POJ1325 Machine Schedule(二分图最小点覆盖集)
最小点覆盖集就是在一个有向图中选出最少的点集,使其覆盖所有的边. 二分图最小点覆盖集=二分图最大匹配(二分图最大边独立集) 这题A机器的n种模式作为X部的点,B机器的m种模式作为Y部的点: 每个任务就 ...