unity 皮肤材质效果实现分析

相关资料

https://therealmjp.github.io/posts/sss-intro/
里面讲解了次表明散射的概念原理,以及发展过程。到了实时渲染,早期的基于纹理空间的扩散,到现在经常会应用于移动端的预积分的次表明散射(就是有一张图的表,从上面取色,还需要一个曲率的东西去控制),然后就是屏幕空间的次表明散射(为了生成更好的曲率)。
https://www.iryoku.com/stare-into-the-future
讲解了如何渲染真实的皮肤效果
要说皮肤渲染,还是得看ue4,接下来看一下ue的相关
https://docs.unrealengine.com/4.27/en-US/RenderingAndGraphics/Materials/HowTo/Human_Skin/
这个是直接告诉你了怎么在ue里面实现皮肤材质
https://docs.unrealengine.com/4.26/en-US/Resources/Showcases/PhotorealisticCharacter/
https://docs.unrealengine.com/4.26/en-US/Resources/Showcases/DigitalHumans/
https://texturing.xyz/pages/saurabh-jethani-creating-realistic-skin-in-ue4

渲染特性

次表面散射

我们正常渲染pbr物理材质brdf,只是做了表面效果,表面漫反射,表面高光。次表面散射就是光线进入物体内部,在物体内部进行反射后,又反射出来,带有一定内部的颜色的效果。
第一种方法是,基于屏幕空间的次表明散射(sssss),这种效果也是在ue里面使用到。原理就是不模拟物理上的真实的散射,而是根据当前位置和光线入射点的位置去计算出一个差不多的效果。这种效果需要一个Diffusion Profiles(扩散配置文件)来描述次表面散射行为中光线与散射距离的关系。在这里插入图片描述
扩散配置纹理里面会配置滤波器的总宽度(散射范围),每个颜色的衰减,以及进入到皮肤内的光线的多少(越年轻的可以调的越大)。然后在屏幕空间中获取深度,采集周围的像素深度计算出曲率,来设置效果渐变。如果曲率越大,散射效果越弱。

第二种方法就是使用预先积分的次表明散射,和屏幕次表明散射的区别在于,不使用Diffusion Profiles(扩散配置文件)而是修改为使用一张LUT贴图来描述当前的散射效果。图如下,在这里插入图片描述
通过法向和光线的点积确定横向坐标位置,通过曲率确定纵向。曲率可以通过软件烘焙出来,比如Knald,或者直接在shader中计算得出一个曲率。如果达到一个好的效果,推荐直接使用屏幕空间深度计算来获取,虽然耗性能,大家还是根据效果和性能折中即可。
为了达到质感柔和的效果,我们需要通过使用不同模糊的法线贴图,来进一步模拟Diffusion Profiles(扩散配置文件)。
在这里插入图片描述
高光的法向贴图就是默认贴图,红色透性最强,所以,它的贴图的模糊也最高,蓝色的最小,模糊度也最低,(红色的可以通过mip层级获取,蓝色和绿色可以通过红色和默认的lerp操作获取)然后我们把这些法向贴图获取到的高光进行融合,获取到一个更加不错的效果。

高光

双层高光进行混合,增加皮肤质感,第一层主要控制,占85%,第二层次要,占15%。它们也要给予能量守恒。
高光颜色强度 F0 (在ue里面有这个接口,值默认是0.5)默认是通用的0.04,皮肤的需要设置成 0.35,对应高光的起始值就是 0.028 。

细节贴图

细节贴图要实现皮肤的细节,就是有毛孔的效果的皮肤,然后和默认的法向贴图融合,实现一个细节的模拟。
在这里插入图片描述

粗糙度

粗糙度建议从0.4开始调整。贴图建议不用表现太多细节,只用来划定区域,值低的范围的就是光滑度高,值高的地方,就混合细节贴图高一些,也显得皮肤更加真实。

CavityMap

用来表现皮肤微观细节的ao信息,这个主要用来表现高光部分细节,在高量的部分展现更多的细节。所以,可以用来控制高光反射强度。

AO

环境光遮蔽,首先就是烘焙的贴图,然后需要屏幕空间ao,混合得出。

涂层 ClearCoat

用来实现脸部化妆的效果。腮红,唇膏等等。
在这里插入图片描述
涂层是在光进入的时候,首先进行了涂层的反射,一般为镜面反射,然后再进入表面,制作的时候注意能量守恒。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值