虚幻5渲染编程(材质篇)[第三卷: Microfacet Sheen BRDF in UnrealEngine]

虚幻5渲染编程(材质篇)[第三卷: Microfacet Sheen BRDF in UnrealEngine]

以前也写过一些天鹅绒材质的文章,但是感觉没有总结到位,所以这次打算重新再总结一下这部分的内容。

【1】UnrealEngine Origin Cloth Shading Model

虚幻自身的布料Shading模型非常适合做紧致的棉布

Unreal官方的布料光照模型也十分简单

大致分为两部分,第一部分是正常的GGX的BRDF光照模型,第二部分就是虚幻官方拟合的,最后通过一个lerp查值即可。虚幻官方主要对Visibility项进行了修改,如下图所示函数,也没人知道这东西怎么来的。反正就是这样了。


【2】Microfacet Sheen BRDF

下面我参考下图所示这篇论文改造了下UE自己的布料光照模型。

MircrofacetSheenBRDF很适合做天鹅绒类型的布料

一开始我们的BRDF公式还是标准的

论文中把D项改造为了如下图所示

代码如下:

float invAlpha = 1.0f / GBuffer.Roughness;
float cos2h = Context.NoH * Context.NoH;
float sin2h = max(1 - cos2h, 0.0078125f);
float3 D = (2.0f + invAlpha) * pow(sin2h, invAlpha * 0.5f) / (2.0f * PI);

我们只要把D项改了以后还是按照原来的BRDF的F和V项计算在一起就好了

最终布料高光散开的部分变化起来的效果比UE自带的自由度要好一点

移动端也可以有比较好的表现(灯光和上面的那张图片的灯光环境不同所以暗一些)

在标准的PBR光照模型的基础上还要很多材质类型的变化。

enjoy it.

  1. aconty.com/pdf/s2017_pb
  2. A microfacet-based BRDF generator
2021/8/3
编辑于 2021-08-11 15:33