问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Unity URP中PBR与NPR渲染技术的完美结合:以《少女前线2:追放》为例

创作时间:
作者:
@小白创作中心

Unity URP中PBR与NPR渲染技术的完美结合:以《少女前线2:追放》为例

引用
CSDN
1.
https://blog.csdn.net/ZDEWBYE/article/details/145649383

在游戏开发中,如何将PBR(基于物理的渲染)和NPR(非真实感渲染)技术完美结合,一直是开发者们关注的焦点。本文将以《少女前线2:追放》中的角色渲染为例,深入探讨如何在Unity URP框架下实现这一技术。

一、前言

最近在研究PBR和NPR结合的渲染技术,恰好看到《少女前线2:追放》中Vepley角色的渲染效果,虽然没有玩过这款游戏,但感觉这个渲染效果非常独特。于是决定以此为案例进行学习和实践。

灵感来源于很久以前在GitHub上看到的一个项目:

在这个项目里,作者巧妙地在URP Lit的框架下使用各种SmoothStep来形成色阶,达到了PBR和NPR结合的效果。但在使用过程中发现了一些问题,比如手动Ramp映射难以控制,以及在Lit框架下修改的灵活性受限等。因此,我决定在URP中重写一套Lit,保留关键部分,删除多余部分,并使用Ramp图来控制色阶。

二、PBR与NPR的融合方式

PBR x NPR本质上仍然是NPR,因此它不可避免地具有NPR的一些特点,比如主观性。PBR框架下的NPR好处是提供了一个能量守恒的框架,防止某些技巧失控,同时也提供了更多样的材质表达。在实现过程中,我选择了用Ramp去映射PBR中间步骤的方法。

三、其他常见Feature

这部分都是卡通渲染的常见Feature,这里就简单罗列一下:

1.描边

采用平滑法线外扩模型然后剔除正面的做法,很常见。FOV的获取是用脚本传参的,据说现算会很慢,外扩在View空间,z拍扁。其次就是Face的Zoffset加一个bias,让眼眶没描边,不然变成熊猫了。

2.边缘光

边缘光也是常见做法,屏幕空间深度采样偏移,确定阈值step。阈值还可以作为强度细节给个小小的渐变,视角和光的夹角,菲涅尔等也可以决定RimLight的强度。

3.面部阴影

SDF阴影,光方向和脸朝向夹角计算ctrl去step那张SDF脸图。当然为了看起来柔和一点,可以用smoothstep,然后和其它计算一样去ramp就好了。

4.绒毛

就是一个普通的URP多Pass Feature,没做什么特殊的细节处理。

5.刘海投影和眉眼透过刘海

刘海投影和眉眼透过刘海都是用的模板。刘海投影是画了一遍刘海,又画了一遍脸,取交叉地方作为阴影。眉眼透过刘海也是用的模板。

6.后处理

Bloom用了Unity自带的,因为没什么定制需求,而且也挺好用的个人感觉。Tonemapping做了常见的GT,Simple ACES。

四、模型来源

模之屋【少女前线2:追放】维普蕾

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号