siggraph19上面,frostbite发布的新的头发渲染技术,搬运如下:
https://www.bilibili.com/video/av73692434/

这篇是我个人对siggraph19 两个最喜欢的文章之一,把hair render往前推进了一步,主要亮点:

  • 开始使用线来做头发渲染(strand based),这个也构成了头发品质飞跃的一个好的基础
  • 进一步处理头发中multiple scattering的问题

头发在游戏中渲染的简要历史


89, kajiya-kay的头发光照模型
相当长时间中在用,也应属于刚好适合当前(2019)手游的光照模型,现在逐渐退出历史舞台。

siggraph03,年marschner的头发光照模型,是我们现在认为比较physically based的头发光照模型

这个后来在cg中被disney和weta digital进一步改进。

siggraph16,

unreal基于LUT的方式把marschner的头发模型,做了一些近似逼近,能realtime展现的比较好,但是没有覆盖到头发之间的散射(multiple scattering)以及在single scatter方面还有一些提升空间。

同年naughtydog的volume material render中也覆盖了头发(https://blog.csdn.net/toughbro/article/details/84206686),以volume技术,使用了一些偏artist的方式以及离线预先cook的方式,带上了一些volume的概念(由于naughtydog的模型直接用于console上的游戏中的,而非demo,所以naughtydog最后选择不使用marschner的模型)
截止到现在,头发建模也是基于card的。
sig19
也就是当前,frostbite提出的基于strand的方式以及进一步处理single/multiple scattering,就是一个扎扎实实的推进了。

Strand-based Hair Rendering in Frostbite

stand based

虽然这篇文章号称是strand based,实际上主要集中在渲染,而strand最牛的地方是在simulation。
这里frostbite简单带过,可能还没有做完等等原因。

一图看好整体的制作流程,从点的建模,然后realtime simulation,然后point list生成头发的triangle strip。
所以这里的simulation部分就是一个对于points的simulation,这也是一个常用的方法(比如fluid simulation)。

render


渲染部分就分了3块,是

  • single scattering
  • multiple scattering
  • 发丝的“透明渲染”

single scattering

这里要回到marschner模型,一般我们使用的光照模型,光照的建模包括三个部分:

  • R Reflective paths
  • TT Transmissive paths
  • TRT Transmissive with single internal reflection
    这样三个路径,也就是光线在头发中传播并最终贡献光照效果的主要路径,

    落到具体的视觉上,看起来这样的。
    中间epic在16年siggraph上面就是对这几项做了approximation,frostbite在这里把这个approximation提到更好的水平:


    (图中karis16,就是指unreal 16年的paper的效果)
    frostbite在approximation这里做了更多的工作,来把头发的拟真度进一步提升。
    就大的属性模型这里列下:

    类似PBR的macrofacet模型,这里有两大项比较重要:
  • attenuation
  • distribution
    然后具体的数学选择,frostbite主要是给出了最后结论,中间有推导成分,也有硬做拟合逼近(使用一些scale来修正)的成分。
    反正最后就是达到了一个比unreal更好的拟真效果。

multiple scattering


multiple scattering这里分为

  • local scattering–近距离的头发之间的反射
  • global scattering–远距离的光线散射
    两块,分别使用了现有的技术整合
    按照ppt里的说法似乎是local scattering使用了Dual Scattering Approximation。
    然后global scattering使用了4层deep opacity map来做这个事情。

Rendering – Strand rendering


这里做的事情就是让头发的轻薄的透明感出来。
如果不做,就会像左边,一堆干草的感觉。

这里是msaa+visibility buffer。
效率方面:并且如果是相近的部分,就只shading一遍(有点类似VariableRateShading的概念)这个会带来很好的效率提升。

pipeline。
最终效率对比:

依旧还是蛮费的,不过用在主角一个人身上,应该还可以。

[sig19]寒霜引擎中strand-based(基于线)的头发渲染相关推荐

  1. 寒霜引擎中strand-based(基于线)的头发渲染

    头发在游戏中渲染的简要历史 89,kajiya-kay的头发光照模型 相当长时间中在用,也应属于刚好适合当前(2019)手游的光照模型,现在逐渐退出历史舞台. siggraph03,年marschne ...

  2. 寒霜引擎(镜之边缘:催化剂)中的屏幕空间反射

    http://tieba.baidu.com/p/3986803871 寒霜的SSR方法用到一个比较巧妙的优化方法,储存射线检测时被击中的点给临近像素复用,这样可以快速地在重要性采样时获得采样数据,从 ...

  3. 批量 材质 调整_寒霜引擎的PBR实践3.0(一)材质篇

    随着对游戏美术品质要求的提高,对整个开发从流程pipeline到从业人员的素质要求都开始增加.传统的美术工作流因为依赖个人的经验和感觉,所以在制作大体量项目的过程中很难达到理想效果.而这时,由项目组内 ...

  4. 寒霜2引擎的光照系统确实不是盖的

    曾经以为孤岛危机的画面最牛逼的.结果当我看到战地3时,就彻底震精了!这还是游戏嘛?简直就是电影!它强大的光影系统马上照亮了你的十二氪金狗眼.叛逆连队2的寒霜引擎已经给了我不少的惊喜,寒霜2直接秒掉了我 ...

  5. [转]《战地3》寒霜2引擎渲染流程图文详解

    一直一来受制于技术.预言和环境,中国国内玩家.开发者对于国外先进游戏引擎的渲染流程知之甚少,虽然没有技术封锁缺更似自我封锁,在GDC上很少看到中国开发者的身影,无法学习到先进的开发经验. 首先来回味一 ...

  6. 战地3寒霜2引擎详解:地形与后期处理技术特性

    之前看过了zXr0带来的两篇寒霜2引擎技术解析么? <战地3>寒霜2引擎渲染流程图文详解     http://pc.07073.com/bf3/frostbite/14097.html ...

  7. [转]战地3寒霜2引擎详解:地形与后期处理技术特性

    之前看过了zXr0带来的两篇寒霜2引擎技术解析么? <战地3>寒霜2引擎渲染流程图文详解     http://pc.07073.com/bf3/frostbite/14097.html ...

  8. 笔记47-徐 数据库引擎中基于行版本控制的隔离级别

    笔记47-徐 数据库引擎中基于行版本控制的隔离级别 MSSQL隔离级别 READ UNCOMMITTED(未提交读),相当于(NOLOCK) READ COMMITTED(已提交读,默认) REPEA ...

  9. [转]战地3寒霜2引擎详解:物件光照效果技术特性

    在GDC2012上DICE将讲演<战地3>寒霜2引擎的升级版技术效果,不过在此之前请先收下零zXr0带来的迟到的礼物:DICE之野望:战地3寒霜2引擎技术特性效果详解. DICE工作室正计 ...

  10. V8引擎中的Hidden Class

    原作者:江凌 原文链接 Hidden Class 是为了实现对象属性的快速存取. JavaScript是一种动态编程语言:属性可进行动态的添加和删除,这意味着一个对象的属性是可变的,大多数的JavaS ...

最新文章

  1. SpringBoot:spring-boot-starter-parent
  2. Android 程序启动界面Demo
  3. django之jquery完成ajax
  4. 2021泉州高考学校成绩查询,2021泉州市地区高考成绩排名查询,泉州市高考各高中成绩喜报榜单...
  5. JeeWx 商业版本最近新增什么功能啦?
  6. Redis之主从复制(Sentinel)
  7. kettle-执行结果
  8. Fiddler使用过程中无法抓取https的解决方法
  9. 华为笔试题:词频统计
  10. win10系统如何去掉sd卡写保护
  11. SD-scard-对应CMD指令集讲解
  12. 京东11.11:商品搜索系统架构设计解密
  13. python手机自动点击_通过电脑,模拟点击手机屏幕 /手机自动点击,刷金币?
  14. 用PC3000和HDD Unlock解笔记本硬盘密码
  15. 2010年十大免费下载软件
  16. 1.CSS3 教程-> 多列布局 > image模块 > cssTransition 过渡 > CSS Animations 动画 > Transform二维
  17. 《数据中台架构:企业数据化最佳实践》:感受数据中台建设五步法
  18. 道一云OA系统排名?道一云OA办公系统怎么选?什么是用户口碑最好的道一云OA系统?
  19. onsubmit表单提交简单使用
  20. 《全程软件测试》读书心得

热门文章

  1. 编译内核使tilera支持网桥和netfilter功能
  2. iOS:error: unable to read input file
  3. 深度学习入门基础:图像分类网络整理(最全)
  4. java 口袋算法_【算法笔记】递归(神奇的口袋)
  5. 短篇硬科幻小说《勾股:2.013》
  6. amazon实例 更改密钥_如何更改Amazon Echo的警报声音
  7. win10获得system权限(超级管理员)
  8. ubuntu下CHM阅读器
  9. 纪念日或悼念人网页变灰仅需一行代码
  10. Rhino6.25软件安装教程|兼容WIN10