[gpu pro2]PracticalAndRealisticFacialWrinklesAnimation

作者jorge jimenez,猛到飞起的一个R&D,现在在blizzard&activition, 这哥们blog:http://www.iryoku.com/

这篇文章介绍的是脸部皱纹渲染,上面的这个图是show的皱纹,不是表情,也不是皮肤渲染(不过提一下的是这个皮肤是screen space subsurface scattering,效果还是很赞的,而且效率很高很稳定)

基本的思路是使用另外的一个皱纹的normalmap混合到基础的normalmap上面,文章中花较多文字介绍的是如何高效低消耗的做到这一点:

  • mask:
    • [gpu pro2]PracticalAndRealisticFacialWrinklesAnimation_第1张图片
    • 使用一个额外的wrinkle map,然后使用一个mask map来在不同情况下取不同的部分
  • encoding0:
    • 这里normalmap使用的是partial derivative normal map,非常酷
    • normalmap的xy存的是一个encoding的xy,算法是:

      • 然后在混合的时候就base的xy和wrinkle的xy直接加,z直接取1,然后normalize就好:
      • [gpu pro2]PracticalAndRealisticFacialWrinklesAnimation_第2张图片
      • 碉堡了
      • 但是这个做法有一些劣势就是需要对pipeline做调整
    • encoding2:
      • 使用difference normalmap这个就比较直接了:

        • 但是相对来说这个alu计算消耗多一些,但是这个消耗也就在8600gt这种显卡上面才能注意到,一些强一点的显卡,这点差距也无所谓了
        • 所以虽然partial derivative很酷,但是后面这个更是用一点
    • [gpu pro2]PracticalAndRealisticFacialWrinklesAnimation_第3张图片


你可能感兴趣的:([gpu pro2]PracticalAndRealisticFacialWrinklesAnimation)