[sig20]对马岛之魂的渲染技术(3/3)

这里覆盖的是skin shading和detail map相关
在这里插入图片描述

skin shading

pre integrated skin shading

在infamous阶段,sucker punch使用了pre integrated skin shading, 这个细节可以看
[gpu pro2]pre integrated skin shading
一张图看就是这个:
在这里插入图片描述
dot(n, l)就是normal和light的dot
1/r就是曲率
这个做法不依赖deferred shading,也很适合手游;

directional curvature

在这里插入图片描述
这里sucker punch在对马岛里做的一个改进就是把曲率计算从一个表面的平均曲率计算变成圆柱体状的曲率(directional curvature)计算;
这样也更加的物理正确;

directinal curvature algorithm

给定皮肤表面上一个点,我们计算directional curvation过程如下:

  • 首先计算curvature tensor
    在这里插入图片描述
    这个II就是curvature tensor,是一个2x2的矩阵;
    -使用light dir来和curvature tensor来计算出来directinal curvature
    在这里插入图片描述

计算过程

这个计算过程如下:

  • 预计算tangent space curvature tensor(基于:Estimating Curvature and Their Derivatives on Triangle Meshes (Rusinkiewicz, 2004)),这个tensor
  • 把directional curvature tensor和mean curvature信息存在vertex中(4 byte)
  • 把一些数值太偏的情况做一些blur
  • directional lighting:把lightdir在tangent space里和curvature tensor结合来计算出directional
    在这里插入图片描述

sum

这里也要补充下,对于directional lighting的case,是需要directional curvature,更加物理正确;
对于ambient lighting类的,还是需要使用mean curvature才对;
在这里插入图片描述
贴个大爷脸看看;

在这里插入图片描述

detail maps

这里sucker punch也是用了detail map来增强高频贴图;
主要亮点两个:

  • 把传统的overlay blend做了改进(对于albedo贴图),改进了在贴图压缩情况下的精度保留(损失更少)情况
  • 对于混合过程的分析很不错
    先看结果:
    给定贴图混合定义:
    在这里插入图片描述
    在这里插入图片描述
    传统做法是:
    在这里插入图片描述
    suckerpunch的改进做法是:
    在这里插入图片描述
    这个后面会有分析,简言之就是在贴图使用bc1压缩的情况下,希望达成target在接近detail的case下,精度损失更少,混合效果更好;

然后是分析过程:
对于传统的blend方式,处理效果这样的:
在这里插入图片描述
这里使用曲线来把精度损失情况给列出来,挺不错的:
在这里插入图片描述
然后改进版:
在这里插入图片描述
可以很好地看到s,d,对于t的影响趋势(虽然对于简单的运算来讲,直接看共识更直接点)
然后使用RSME(root mean squared error,均方误差)来评估精度损失:
在这里插入图片描述
在这里插入图片描述

sum

在这里插入图片描述
最后看下效果效率,都不错的

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值