type
status
date
slug
summary
tags
category
icon
password
fullWidth
fullWidth
用虚幻引擎5为《幻塔》定制高品质动画流程风格化渲染管线
效果展示


角色渲染流程
1. 渲染流程拆解
- 2D原画分析->风格制定与效果拆解
- 基础二分->实现初步立体感,确定画面调性
- 场景投影->反映角色与环境的交互
- 多光源->展现丰富的环境光源信息
- 高光->表现材质属性,提升画面高亮阈值
- 全局照明->让角色融入环境
- 边缘光->凸显立体感,增加画面层次
- 眉眼细节->透眉和透瞳让角色表情更灵动
- 描边->增加角色细节层次与结构性
2. Ramp二分色:基于半兰伯特的Ramp二分色系统
- 通过修改Ramp贴图和Shadow Offset(阴影偏移参数,决定阴影面积大小)锚定整体亮暗结构
- Ramp Curve Atlas写入后处理体积供场景镜头切换


3. 整体阴影方案
阴影类型 | 实现方式 |
暗面阴影 | 半兰伯特N*L(不考虑视线)区分亮暗面 |
细节自阴影 | 阴影贴图、深度偏移阴影、半程向量(考虑视线)自阴影 |
场景物件投影 | 角色对场景的投影和场景对角色的投影 |
- 阴影贴图:在贴图中绘制常暗部分,如发缝、衣服褶皱


- 深度偏移自阴影:偏移屏幕空间深度图,比较偏移后的深度和当前深度(本质上是平面处理)
- 半程向量自阴影:用半程向量作为光照方向替代原来的平行光方向,避免在某些光照情况下阴影面积过大
半程向量(h)是光线方向向量(l)和视线方向向量(v)的归一化和,即:
在 Blinn-Phong 光照模型中用于计算镜面反射的强度


4. 面部阴影方案
阴影类型 | 实现方式 |
暗面阴影 | SDF贴图阴影,并屏蔽原生面部阴影 |
细节自阴影 | 头发阴影 |
场景物件投影 | 模糊化后的场景物件投影 |
- SDF贴图阴影:通过比较光线方向与SDF贴图中的距离值来决定某个像素是否在阴影中
- 头发阴影:偏移头发的遮罩,根据光照方向投射到脸部;并根据深度图屏蔽脸后头发的阴影


- 场景物件投影:场景物件的阴影经过模糊化处理,让投射到脸部的阴影更柔和
5. 整体高光方案
- 一套PBR和一套NPR高光,在不同情况下分别使用或混合使用

- 头发高光方案
- 尝试了三套高光方案

- 眉眼细节
- 透眉和透瞳,通过逐材质的叠加Pass通道,让眉眼在头发上方出现
注:除了逐材质Pass叠加,还有深度偏移法;在渲染时对眉毛和眼睛的深度值进行微小偏移,使其在头发之前显示。

场景渲染流程
1. 场景效果拆分
效果 | 作用 |
基础漫反射和阴影 | 确定场景的色调结构基底 |
场景高光 | 场景光感提升与结构强调 |
环境反射 | 暗示环境材质表面属性 |
场景勾线描边 | 突出场景细节与结构 |
2. 场景高光
- 结构高光:计算模型的曲度,生成Mask,用以提亮边缘、暗示形体

- 边缘光
- 基于Shadow Mask(屏幕空间深度图)的边缘光
- 基于球法线的N*L遮罩,噪声图影响边缘光,增强手绘感
- 菲涅尔边缘光提亮,增加层次感,模拟反弹GI
3. 场景描边
- 根据深度(远近)将描边分为3级;并对中近景的描边做抗闪烁处理和风格化处理
- 远景:屏幕空间深度描边
- 中景:屏幕空间深度描边+Id描边
- 近景:屏幕空间深度描边+Id描边+法线外扩描边
4. 多光源处理
- 利用给每个光源设置Id来决定光源的表现效果
- Id == 0:晕染灯光,纯亮度晕染而不产生阴影
- Id == 1:二分灯光,会产生阴影
- Id == 2:仅产生边缘光
- 全局光照
- 对原生lumen的全局光照进行法线抹平,减少立体感过强破坏动漫感
注:法线抹平是一种用于使模型表面看起来更加平滑和自然的技术,通过计算每个顶点的相邻面的法线的平均值来平滑法线。

5. 环境反射
- PBR会的高光反射环境信息,风格化渲染中反射会被降频,色块感强

- 添加仅基于反射的Kuwahara滤镜,对反射做色块化处理

6. 额外HDR高光
- 由于降频降低了反射的能量,添加额外HDR高光弥补损失的亮度信息,以确保材质质感正确
后处理


1. 后处理效果拆分
效果 | 作用 |
Diffusion柔光 | 提升画面的暗部亮度,提高画面质感 |
背景透光 | 氛围晕染,让角色融入环境 |
暗部晕染 | 提升暗部的通透感 |
2. Diffusion柔光
- 柔光滤镜通过扩散入射光,使得图像的亮部变得模糊,让图像更柔和

- 对SceneColor做模糊之后用“变亮”的方式叠加,只会提升暗部的亮度

3. 背景透光
- 背景光远远超过角色本身的亮度时,使用这个效果可以营造角色被光包裹的氛围

- 用角色Mask将场景中的角色剔除,再进行模糊,把模糊后的图像叠回Mask,再用柔光叠回角色

3. 暗部晕染
- 让亮部的颜色过渡到暗部,解决暗部过于“沉闷”的问题

- 模糊阴影遮罩,将模糊结果叠入原阴影,再混合到Scene Color中

- Author:Yuki
- URL:http://shirakoko.xyz/article/share-04
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!
Relate Posts