[sig19]寒霜引擎中strand-based(基于线)的头发渲染
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(基于线)的头发渲染相关推荐
- 寒霜引擎中strand-based(基于线)的头发渲染
头发在游戏中渲染的简要历史 89,kajiya-kay的头发光照模型 相当长时间中在用,也应属于刚好适合当前(2019)手游的光照模型,现在逐渐退出历史舞台. siggraph03,年marschne ...
- 寒霜引擎(镜之边缘:催化剂)中的屏幕空间反射
http://tieba.baidu.com/p/3986803871 寒霜的SSR方法用到一个比较巧妙的优化方法,储存射线检测时被击中的点给临近像素复用,这样可以快速地在重要性采样时获得采样数据,从 ...
- 批量 材质 调整_寒霜引擎的PBR实践3.0(一)材质篇
随着对游戏美术品质要求的提高,对整个开发从流程pipeline到从业人员的素质要求都开始增加.传统的美术工作流因为依赖个人的经验和感觉,所以在制作大体量项目的过程中很难达到理想效果.而这时,由项目组内 ...
- 寒霜2引擎的光照系统确实不是盖的
曾经以为孤岛危机的画面最牛逼的.结果当我看到战地3时,就彻底震精了!这还是游戏嘛?简直就是电影!它强大的光影系统马上照亮了你的十二氪金狗眼.叛逆连队2的寒霜引擎已经给了我不少的惊喜,寒霜2直接秒掉了我 ...
- [转]《战地3》寒霜2引擎渲染流程图文详解
一直一来受制于技术.预言和环境,中国国内玩家.开发者对于国外先进游戏引擎的渲染流程知之甚少,虽然没有技术封锁缺更似自我封锁,在GDC上很少看到中国开发者的身影,无法学习到先进的开发经验. 首先来回味一 ...
- 战地3寒霜2引擎详解:地形与后期处理技术特性
之前看过了zXr0带来的两篇寒霜2引擎技术解析么? <战地3>寒霜2引擎渲染流程图文详解 http://pc.07073.com/bf3/frostbite/14097.html ...
- [转]战地3寒霜2引擎详解:地形与后期处理技术特性
之前看过了zXr0带来的两篇寒霜2引擎技术解析么? <战地3>寒霜2引擎渲染流程图文详解 http://pc.07073.com/bf3/frostbite/14097.html ...
- 笔记47-徐 数据库引擎中基于行版本控制的隔离级别
笔记47-徐 数据库引擎中基于行版本控制的隔离级别 MSSQL隔离级别 READ UNCOMMITTED(未提交读),相当于(NOLOCK) READ COMMITTED(已提交读,默认) REPEA ...
- [转]战地3寒霜2引擎详解:物件光照效果技术特性
在GDC2012上DICE将讲演<战地3>寒霜2引擎的升级版技术效果,不过在此之前请先收下零zXr0带来的迟到的礼物:DICE之野望:战地3寒霜2引擎技术特性效果详解. DICE工作室正计 ...
- V8引擎中的Hidden Class
原作者:江凌 原文链接 Hidden Class 是为了实现对象属性的快速存取. JavaScript是一种动态编程语言:属性可进行动态的添加和删除,这意味着一个对象的属性是可变的,大多数的JavaS ...
最新文章
- SpringBoot:spring-boot-starter-parent
- Android 程序启动界面Demo
- django之jquery完成ajax
- 2021泉州高考学校成绩查询,2021泉州市地区高考成绩排名查询,泉州市高考各高中成绩喜报榜单...
- JeeWx 商业版本最近新增什么功能啦?
- Redis之主从复制(Sentinel)
- kettle-执行结果
- Fiddler使用过程中无法抓取https的解决方法
- 华为笔试题:词频统计
- win10系统如何去掉sd卡写保护
- SD-scard-对应CMD指令集讲解
- 京东11.11:商品搜索系统架构设计解密
- python手机自动点击_通过电脑,模拟点击手机屏幕 /手机自动点击,刷金币?
- 用PC3000和HDD Unlock解笔记本硬盘密码
- 2010年十大免费下载软件
- 1.CSS3 教程-> 多列布局 > image模块 > cssTransition 过渡 > CSS Animations 动画 > Transform二维
- 《数据中台架构:企业数据化最佳实践》:感受数据中台建设五步法
- 道一云OA系统排名?道一云OA办公系统怎么选?什么是用户口碑最好的道一云OA系统?
- onsubmit表单提交简单使用
- 《全程软件测试》读书心得