贺甲:大家好,首先自我介绍一下,我叫贺甲,在米哈游担任技术总和美术指导工作,目前主要关注的方向是非写实渲染以及可交互物理方面的研究。很高兴在这里给大家带来一场有关于次世代卡通渲染的演讲。
我们在考虑如何运用次世代渲染技术,对当前卡通渲染技术时代进行升级。如何将新的技术和卡通渲染有机结合,也是一个比较大的挑战,我们想还原不仅仅是之前传统上色的质感,还想进一步把插画级细致方面的表现,以 60 帧每秒帧率表现出来,这种工作量仅靠手绘无法完成,我们选择了极乐净土作为 MV 来展现新的卡通渲染效果。整个制作过程大概有 3 到 4 个月,发布之后只用了 2 天直接登上 B 站榜的第一,目前累计有 230 万点击量。
下面我们来介绍一下这次演讲的主要内容,首先是次世代卡通渲染角色的主要实现方法以及特殊材质的处理,然后是场景方面的渲染,包括全局光照、体积光、面积光源的实现,之后我们介绍一下卡通渲染所涉及的后处理效果。
首先我们来看一下角色卡通渲染的主要特性,第一是我们自己实现的卡通多材质多通道 Ramp 上色技术,以及一些特殊材质的实现,比如各向异性的头发,Glitter 和眼睛折射的效果。然后是光照的构成,我们选择了主要光源和 IBL 环境光,之后还有高精度的勾线,以及高精度的角色软阴影。这段动态视频展示了上述效果,随着视角的变化,头发高光以及眼睛的折射效果有不同变化。这段是固定相机视角旋转光源之后的动态表现,大家可以看到光影和高光。
首先我们来介绍一下多通道控制上色方法,我们使用了多通道 2D Ramp,使用多通道控制上色层,对于卡通风格画面来说,如果上色只是纯粹的明暗变化,阴影处就会显得比较缺乏表现度,通过调整垂直采样坐标,我们可以实现动态软硬风格的切换。从另一个角度来说,这种方法还间接表现了皮肤的次表面散射效果。
这四幅图展示了多通道上色的叠加效果,大家可以看到通过一层层上色叠加,皮肤细节的阴影变化也变得更加丰富。
这上下幅图展示了采样位置不同的渲染效果。由于我们使用了 2D 的纹理,他们之前的变化也可以动态调整,这就方便了我们在想要的结果上做一些精细的调整。
卡通风格对于面部表现一般不会有太多阴影层次的变化,如果我们直接套用这个方法在面部的话,效果就会像右图看起来不自然,为了改善这种情况,我们使用了顶点色通道 mask 控制明暗强度,通过压低阴影表现达到想要的卡通效果。
下面我介绍一下卡通渲染的常见勾线方法,第一种是 Backface 方法,是比较高效的方法,而且通过顶点色可以实现各种风格化的控制。比如通常头发丝对勾线逐渐变细,美术就可再在 mask 来线表达想要效果,暗处的色彩饱和度也会提高,这点我们在实现中也有所体现。
第二种方法是基于图像检测的勾线方法,通过图像检测提取出不良象素标出边界,这样可以标出物体表面的棱角。基于图像处理方法,还可以表现出较多的有勾线细节,随着相机的拉近拉远,勾线就不太能体现具体的细节。 基于图像检测的方法,比较适合用于场景的勾线。这种方法还有一个好处,不会随着细节的复杂度增加,而降低运行效率。
第三种方法是基于笔的勾线方法。首先是轮廓线的提取,然后是连接轮廓线,根据模型的关系,将相邻的轮廓边连接成尽可能长的轮廓线,但有可能会出现轮廓线交叉的问题,这点也是需要处理的。然后是轮廓线的分段,在步骤二的基础上,将轮廓线在曲律上分开。然后是笔触,这种方法可以达到更为风格化的表现,笔触会更加明显。
接下来我们讲一下高品质角色阴影的实现,视频中有不少特写镜头,我们想要局部特写也能表现非常细腻的高品质角色软阴影效果。所以我们就单独为角色渲染了一张分辨率为 2k 的 Shadowmap。为了保证相机拉很近的时候仍有较高的阴影品质,需要视角相关的 Shadowmap。第二是使用 PCSS 提高阴影效果,第三使用半透明阴影的处理。大家可以看到,裙子上的阴影是有半透明的效果。
我们再来看一下角色边缘光的处理,由于场景中大部分为面积光源,我们想要做出根据光照环境变化的边缘光一我们就使用 IBL 环境贴图作为主要输入,使用菲涅尔强度 Mask 控制光照在边缘出现,最终用贴图 AO Mask 模拟自遮挡效果。可以看到左边这个对比图。
对于眼睛的处理也使用了基于物理光的折射效果,我们使用了真实的折射算法,眼球本身还是按照球面来做,根据视线角度算出折线系数。这两个对比图显示了有无折射的效果,基于物理的方法,在 VR 模式下会看起来更有质感,看起来比较类似于像玻璃珠的感觉。
除了眼睛折射效果之外,我们还加入了光线折射后的焦散效果,使得眼睛的材质得到进一步增强。考虑到卡通渲染的特殊情况,我们希望的效果是将散出现在入射光另一侧。实现方法通过入射光和眼球前的夹角,算出入射光的强度,辅助菲涅尔公式,最后得到最终效果。通过对比图我们可以看到,没有焦散的眼睛就显得缺乏质感。
我们看一下头发的渲染,头发渲染是卡通渲染表现的重点之一,这也是和照片写实风格主要区别点之一。常见头发阴影层次一般实现都是贴图上,这样在动态光影变化就不会发生变化。我们的目标之一是将阴影和动态光照随着光源的变化而变化,没有任何内容是直接在贴图上画死的,都是由计算而得到,我们使用了各项异性高光做卡通渲染的头发。通过不同的调整颜色,可以想得到立即的想要的图案。
相比普通的光照我们使用 tangent 计算光照,可以通过高频和低频双层高光叠加,达到细致的效果。
这张图展示了两层异性高光的效果,左上没有高光效果,左上一层只有低频高光效果,左下一层只有高频光照的效果,右下是最终的渲染结果。我们对两层高光设有不同亮度和摄像,这样使得高光层次更为丰富。
除此之外,我们还使用 Jitter map 抖动贴图,增强质感,来达到模拟发丝细节的效果,我们还可以做到调节发丝的高光粗细。
除了头发使用特殊光照材质处理之外,我们的角色材质中,还有一些类似于玻璃水晶等半透明材质,为了使更真实细腻表现这些材质效果,如果我们直接使用半透明混合就不能满足需求,这样的话就需要我们来实现有真实效果的折射。这两个实现,都使用 Unity 的 CommandBuffer 实现,RGB 通道可以设置为不同折射系数,分别采样三次来模拟色散效果,如果用模糊效果,就生成四张尺寸依次减半的模糊贴图,根据相机距离和材质固有的模糊度,选择对应的来模糊效果。
我们还可以看到,还有类似于闪光片的闪烁效果,这个是我们作为第二层材质来处理。首先用 specular map 表示区域,然后用 normal map 增加反射不规则性,反射的光源主要是主光源和环境 IBL 贴图,此外我们使用光图查找表做五彩的闪烁效果。主要方法也是根据入射角度决定色彩偏移来查找光谱图,使用不同光谱图也会有不同的色彩表现。
角色衣服上的动态条带,随着音乐的节奏变化而变化,我们把跳动的音符调在分为两组,分别对应音频文件中的中频和低频信号,然后对音频做频谱分析,每帧得到的中频和低频强度根据强度去伸缩对应层的音符 UV,得到动态的效果。
接下来我们介绍一下场景方面的渲染技术规格,整个场景在 HDR 线性空间下渲染,我们使用修改过的 PBR,开启了烘焙 enlighten GI。根据需求,实现了平面反射材质,此外还应用了各种后处理效果,比如 Bloom、屏幕空间反射等。
这是我们几张舞台的截图特写,大家可以看到,综合应用了之前提到的技术之后,整体感觉可以比较接近离线渲染的效果。舞台中有大量动态视频作为光照来源,并且把强度系数设大于 1,作为面积光源。如果想要光照环境实时更新,就需要在脚本里面每帧调用 Cache。场景中也设置一些动态更新的 Lightprobes,作为角色的光照来源。
我们再来看一积光的实现,各种灯光效果和激光效果,也是舞台渲染不可缺少的一部分。使用体积光可以比较好满足上述需求,我们使用常见类型作为体积光的光源定义来源。
我们先来看一下聚光灯的效果,由于想表现空气中散射导致光柱逐渐模糊扩散的效果,光锥体积用过程化参数来控制。为了进一步模拟烟雾效果,我们还使用了 3DNoisemap 技术,此外配合 Cookie map 可以定义投射型状,引入了高频的变化,需要对应增加采样数。我们使用两种抖动方式,可以在较低采样实现比较好的平滑体积效果。
我们还用体积光来表现激光效果,只需使用一个定义激光扫描路径就可以实现,贴图越细,高频程度也越多。
我们的舞台中还有一种常见的大范围镜头平面激光效果,直接使用体积光我们即使把采样数设的很高,也会有一些瑕疵。并且性能下降非常严重,考虑到实现效果和精度,我们又做了新类型 prefab 来完成这个功能。将单独的激光数作为可以绕中心轴旋转面向摄像机,这样就避免了本身朝向摄像机会变细的情况。此外,激光扫描平面的烟雾效果,也用一个 2Dnoisemap 可以实现。
接下来介绍一下灯光组的控制,现实中舞台都有软件和硬件控制灯光变化,我们根据需求写了一个脚本完成类似的功能。首先定义一组灯光,定义一个组的运动和曲线,设置每一个灯光独自变化参数组合不同效果。灯光色彩变化强度也是由曲线控制,我们设了几组灯光配置,这样在播放的时候直接调用需要的配置即可。
下面我们介绍一下地面反射实现,由于我们的舞台一部分是接近于镜面反射材质,如果直接使用 SSR 从精度就无法满足需求,这就需要我们需要用平面反射实现。平面反射实现大家都不陌生,这种方法也有它的局限性,只能高度统一平面才能使用。为了解决这个问题,在不同落差上就重新渲染,这样效率比较低。我们做了一个平面反射管理器,定义一到多个反射平面,根据当前平面高度查找影射最接近的象素,我们定义了三个主要反射平面,其他的和平面高度接近的平面,查找主要平面的象素来产生。其他一些垂直于地表或者一些细碎的地方,我们则统一使用 envmap 加 SSR。
我们想把材质表现的更为细腻,这样对非光滑的地面,我们模拟了基于高度和相机入射角度变化的模糊,基本思路反射纹理生成模糊,根据被反射物体远近选择不同模糊度进行模糊。离反射面越远的物体反射越大,影响模糊度主要因素修改物体到反射点的距离,离距离越大模糊度越高,并受到材质本身 Roughness 参数和菲涅尔效果的影响。上图是应用模糊后的材质表现,大家可以看到越接近水平角度,反射面越接近镜面。
接下来我们说一下过程化生成观众席,大家可以看到挥动的荧光棒完全是由过程化生成。为了表现大量随机群体动作,过程化生成是最高效的方式。这段视频也展示了有 500 个观众挥舞荧光棒的场面,效率有比较大的提升。实际测试,我们数量从 100 到 400 到 800,对于帧率并没有明显的变化。
下面我们主要介绍一下实现方式,我们写了一个 crowdmanager 过程化生成每个实例,观众席每个独立个体表现,由振幅、频率、颜色、位置偏移等随机参数来控制。
接下来我们介绍一下后处理相关的内容,Bloom 我们使用高光提取,色相饱和度偏移,这样对卡通渲染来说,色彩看起来就会更加丰富,而且从一定程度上,避免了应用 Bloom 后,画面会降低饱和度的现象。
Bokeh 效果进化,模拟自然的镜头色差现象,使用不同的 pencilmap 可以模拟不同的镜片色散效果。左图为对比效果图,我们可以看到应用了之后,Bokeh 边缘有蓝色色散现象,比右边更加真实和自然。
我们还加入了加于图像的 Glare 效果,做法和 Bloom 一样,通过多次叠加,应用色彩偏移调制以后,得到最终的效果。
AO 方面我们使用了饱和度增强的 HBAO,和普通的 HBAO 相比,它不仅仅在 AO 地方变暗,而且把色彩饱和度、色相进行变化,这样对于卡通渲染来讲,画面不会变得在暗处比较脏,保持了原有风格,我们可以看到应用 AO 之后,右图比左图层次更加丰富。
我们在制作的时候,我们使用插件来做分镜编辑,Slate 更方便,而且可以自定义需求。我们加入了自定义控制的参数,还有 3D 渲染相关的汇聚和深度控制参数。除此之外还有灯光控制,大屏幕视频内容切换,这些都由 Slate 驱动。整体来说,Slate 较为应用广泛,也有小漏洞。
最终渲染录制我们使用了 AVCapture 来做,我们采用异步模式。视频渲染规格为 1080p60 帧,内部渲染效果使用 4k 获得更好的效果。视频录制和开始以及结束也是通过 Slate 触发来控制。
下面我们说一下 3D 渲染,3D 渲染我们使用双向机左右格式分别渲染,有基于分镜的汇聚和深入调整。由于使用两个相机渲染,类似于反射、折射等效果都能做到比较好的支持,没有兼容性的问题。因为我们主要是追求最好的渲染品质,效率并不作为主要权衡点之一。
下一步我们准备支持 VR 模式,需要做的是优化运行效率,目前来讲,在没有优化的情况下,GTX 980TI 1080p 可以接近 60 帧,优化之后 970 可以达到 120 帧的效率,提升空间比较大。另外一方面,由于用到比较多自定义渲染,在 VR 会出现渲染兼容性问题,这点也是需要解决的。除了 VR 之外,我们也会继续优化和升级卡通渲染的效果以及运行效率,争取把次世代卡通渲染推向移动平台。随着移动平台性能的持续提升,估计 2 到 3 年之后性能接近于 PS4。
今天我要做的分享就到这里结束,谢谢大家!
- 两学一做如何实现常态化制度化会议记录
- 如何让电脑恢复出厂设置
- 苹果平板如何截图
- 如何桥接两个无线路由器
- excel表格如何筛选出重复数据
- 如何换电脑桌面壁纸
- 打印机如何扫描
- excel工具栏如何取消隐藏的
- 网购手机如何验货
- 如何设置网络打印机共享
- 苹果电脑如何截屏
- word中如何生成目录
- 微信如何改微信号
- 美团商家如何入驻
- 电脑如何开启vt
- 如何给汽车电瓶充电
- 滚筒洗衣机如何清洗
- 如何查看电脑内存
- 烤箱如何烤鸡翅
- 百分比如何计算
- 实现中华民族伟大复兴
- 如何和新员工谈话记录
- 如何鉴别野鸡大学
- 如何查询野鸡大学
- 野鸡大学是如何招生的
- 如何区分野鸡大学
- 计算机技术强985 大学名单
- 如何写谈话记录
- 巡查如何谈话记录
- 巡视中的谈话如何记录
- 如何恢复微信过期文件
- 苹果手机如何杀毒
- 如何不让别人蹭家里的wifi
- 在家如何洗呢子大衣
- iphone如何清理缓存
- 微信号如何更改
- 电脑跳出广告如何解决
- 如何设置防火墙
- 照片如何压缩变小
- 笔记本如何连接打印机
- 小米如何恢复出厂设置
- 如何辨别野鸡大学
- 普洱生茶如何泡
- 如何训练拉布拉多幼犬
- 如何解绑微信手机号
- 如何将苹果手机照片导入电脑
- 手机如何修改wifi密码
- 如何清空微信朋友圈
- 如何投屏到电脑
- 如何设置系统还原点
- 如何修改wifi密码
- 微信如何清理已经将自己删除的人
- 如何隐藏任务栏图标
- ipad如何连接电脑
- qq空间如何关闭
- 手机如何查看已连接的wifi密码
- 冷冻肉如何快速解冻
- 如何查看手机wifi密码
- 如何添加字体到电脑
- 如何查看qq共同好友
- 如何复制网页上不能复制的文字
- 触漫如何自己做衣服
- 如何安装ps软件到电脑
- 如何进入bios界面
- 如何清理c盘没用的文件
- oppo手机如何录屏
- 如何设置电脑锁屏时间
- 苹果x如何截屏
- 如何将硬盘分区合并
- 如何进入路由器设置界面
- 杨凌职业技术学院
- 台式机如何无线上网
- ps渐变工具如何使用
- 如何将ppt转换成word
- 柳州运输职业技术学院
- 日期格式如何转换
- 手机如何隐藏应用
- 苹果如何把日期显示在屏幕上
- 如何查高考分数
- 如何分辨野鸡大学
- 如何查询是否野鸡大学
- 电脑硬盘如何分区
- 如何做好党委会议记录
- 会议记录对有争议如何记
- 四加二工作法会议记录如何写
- 关于汽车维修技术会议记录
- 如何做好日语会议记录
- 保洁会议记录如何写
- 如何领导会议记录
- 2015年度村委普法会议记录如何写
- 如何书写会议记录
- 如何整理会议记录
- 如何参加科研会议记录
- 如何做一名合格党员会议记录
- 如何写一篇会议记录
- 会议记录如何存档
- 安全技术交底会议记录
- 集体讨论会议记录如何
- 如何做好英文会议记录
- 如何写好会议记录
- 如何提高会议记录员业务水平
- 如何安排一个会议记录
- 技术交底会议记录
- 与香港人结婚后如何办理移民手续
- 去香港如何办理手续
- 新郑机场如何办理赴香港手续
- 会议记录如何记录
- 会议记录如何写
- 如何写会议记录
- 如何快速会议记录
- 如何做好会议记录
- 如何写会议记录课程学习到了什么?
- 如何记会议记录
- 如何做会议记录
- 如何做好会议记录的资料
- 如何快速做好会议记录
- 如何提高会议记录
- 如何写党小组会议记录
- 如何记好会议记录
- 如何做好党政会议记录
- 预备党员转正会议记录结尾如何写
- 如何识别野鸡大学
- WPS如何做会议记录
- 如何写会议记录范文
- 如何更好快捷的做会议记录
- 如何处理邪教问题会议记录
- qcc圈会议记录如何纪录
- 如何召开安全会议记录
- 干部如何记好会议记录
- 如何写美丽乡村村委会会议记录
- 如何戒恶心笑话
- 如何锻炼做好会议记录
- 美国管理技术大学 野鸡大学
- 如何避免野鸡大学
- 江西现代职业技术学院是野鸡大学
- 如何避免申请英国野鸡大学
- 如何区别野鸡大学
- 如何举报野鸡大学
- 野鸡大学如何处理
- 如何速记会议记录
- 如何写会议建议会议记录
- 如何学会议记录
- 如何制作会议记录本
- 如何进行会议记录
- 如何做辩论会议记录
- 如何快速做会议记录
- 基层中医药适宜技术会议记录
- 驾驶员会议记录如何写
- 测量技术交底会议记录
- 院感会议记录如何写
- 会议记录漏写如何处理
- 会议记录表如何写
- 会议记录如何签字
- 如何做好会议记录工作
- 如何做好学习会议记录
- 如何监督党员承诺会议记录
- 关于如何做好会议记录的资料
- 如何写英文会议记录
- 技术例会会议记录
- 电脑如何设置锁屏时间
- 伦敦金如何开户
- win10如何隐藏任务栏
- 三星手机如何分屏
- 家里如何发绿豆芽
- 手机如何连接电脑上网
- 如何把iphone照片导入电脑
- 苹果4如何越狱
- 如何拆分单元格
- 手机开关键坏如何开机
- 如何隐藏手机软件
- oppo如何隐藏应用
- 如何拉黑微信好友
- 如何设置u盘为第一启动项
- 如何找回苹果id密码
- 我的世界如何附魔
- 新铁锅使用前如何处理
- 电脑照片如何导入苹果手机
- 王者荣耀如何修改荣耀战区
- 如何设置wifi密码
- 苹果手机如何隐藏app图标
- 苹果电脑如何截图
- 快手如何一键取消关注
- 如何自制蛋糕上的奶油
- 老婆微信如何与我手机同步
- 如何删除热点资讯
- 如何关掉微信免密支付
- u盘打不开如何修复
- 如何创建microsoft账户
- 如何登陆路由器管理界面
- 如何把苹果手机照片导入电脑
- 电脑如何连接蓝牙音箱
- oppo手机如何刷机
- 项目技术负责人职责
- 华为如何强制恢复出厂
- 如何注销手机号
- 如何设置一键还原
- 网上订票如何退票
- 华为手机如何设置返回键
- 电脑如何更换桌面壁纸
- 如何调节风扇转速
- 张大千擅长:下列哪一位著名画家擅长画虎A、张
- 中通400客服电话
- 怎么换身份证上的照片
- 专硕和学硕代码
- 中国法律还有死刑吗
- 在六点半用英语怎么说
- 主任医师是什么级别
- 知困下一句:人心齐泰山移人心散请问下一句是什么
- 怎么缩小电脑桌面图标
- 专业技术岗位:事业单位管理岗位如何转专业技术岗位
- 天龙八部中逍遥派
- 苹果平板忘记id及密码怎么办
- 可可以加什么偏旁
- 什么夺目成语四字词语
- 蛋挞底皮酥脆的诀窍
- 中国联通电话号码客服电话是
- 星星还是那颗星星歌曲
- 顺丰有单号查不到物流
- iphone设置短信中心号码失败
- oppo自动开关机在哪里设置
- 灭楚之战有多惨
- 迂回什么折成语
- 案件到法院多久能开庭
- 武汉人流俱佳都巿
- 春雨绵绵的意思
- b的大写字母怎么写
- 物什么什么什么成语
- 现任国家副主席都有谁
- 打印表格怎么铺满a4纸
- 一什么玻璃填量词