[sig17]《使命召唤:无限战争》的多层材质技术
《使命召唤:无限战争》的多层材质技术,siggraph17,activision.infinity ward带来。
PBR的发展趋势
从activision在cod上面做的一些工作上看,可以明显的看到PBR的发展趋势,从最开始的把基于物理模型,追求数学正确到现在的引入更多的材质属性,更多的光照模型以及他们之间的更加复杂的组合,从表达能力上更加接近真实世界,业内视角就是更加接近电影的渲染。
unified shader/parameter
activision这里的做法形式上是支持多种材质属性并且支持多层:
多属性
首先是将材质分成了三大类:
- surface: normal/roughness
- macro:density/thickness
- micro:材质的介质属性
实际光照模型对于这些属性进行一个完整支持,并且支持多层:
多层
像上图中下面一列的部分都是多层材质的结果(涂油漆的木头等等)
activision做法是,就是一层层的计算,计算包括: - 光的absorption,scattering
- 积累光照的结果
forward lighting+
这些放在一起,deferred shading就不给力了,forward lighting来处理这些复杂的材质计算。
deferred shading从07年killzone2的paper开始正式流行,到现在的PBR的阶段,预计是要逐渐退出历史舞台了。
material compiler
形式上更加趋近于电影的方式。
具体的技术细节
opacity计算
这里就是考虑到alpha和thickness
直接代码吧:
float PhysicallyBased_GeometricOpacity( float NdotV, float alpha, float t ) // t - thickness
{float x = NdotV;float g = 1.0f - ( x / ( x * ( 1.0 - t ) + t ) ); // Smith-Schlick Greturn lerp( alpha, 1.0f, g ); // base opacity lerp to ‘shadowed’. Counteracts opacity change due to mips
}
thin fim layer
thin film这里讲得是材质表面上盖得另外一层比较薄的一层,但是会影响光的wavelength的这种材质。
这种材质的表达,会很大的影响材质的表达能力
hmm推理过程套路就还是那些,要点是我们要知道有这么个东西,而从早期pbr过来的时候,这些概念还比较缺乏,而直接上movie industry的一套,取舍的研究要做很久,知道那个在实际游戏中用那个不用即可,细节直接看论文吧,贴下代码:
float3 ApplyThinFilm( float3 fresnel, float NdotL, float2 thicknessAndIntensity, float3 specSample ){ float3 lutSample = thinFilmLUT.SampleLevel( linear, float2( thicknessAndIntensity.x, NdotL ), 0 ).rgb - 0.5f;float3 intensity = thicknessAndIntensity.y * 4.0f * ( specSample * ( 1.0f - specSample ) );return saturate( lutSample * intensity + fresnel );}float3 PhysicallyBased_GetPrimaryFresnelWithSpecColor( SurfaceAttributes surfaceAttributes, float dotH ){ float3 primaryFresnel = SchlickPrimaryFresnel( abs( dotH ), surfaceAttributes.specColor );return = ApplyThinFilm( primaryFresnel, abs( dotH ), surfaceAttributes.thinFilmThicknessAndIntensity, surfaceAttributes.specColor ); }
[sig17]《使命召唤:无限战争》的多层材质技术相关推荐
- 使命召唤4战争名言录——战争与和平
"Nearly all men can stand adversity, but if you want to test a man's character, give him power. ...
- [sig16]《使命召唤》中的全局光照技术
Treyarch是<使命召唤:黑色行动>系列的开发商,使命召唤系列的成功不必细说,treyarch也是一个在技术上很有探索的公司,在<使命召唤:黑色行动>1中率先使用基于物理的 ...
- [sig18]《使命召唤:二战》的材质光照技术
siggraph18, activision.sledgehammer带来. 主要谈的是sledgehammer工作室在cod材质系统方面的探索,这里btw一下,cod系列是infinityward, ...
- 思路方向:如何在移动端实现3A级画面 from《使命召唤手游》技术副总监
原始链接:https://mp.weixin.qq.com/s/Zm3rRXQf6yCoiXJ-wVtJsA 为了查找方便 备份一份 如有需求 请移步原文 5月11日-12日,由Unity举办的全球开 ...
- 使命召唤5该服务器没有响应,使命召唤5世界战争 常见问题解决方法
使命召唤5世界战争常见问题解决方法,还不知道怎么解决的朋友可以来看看 COD5打了一周多了,这个游戏从安装开始一直到网战模式与合作模式都有很多的问题,所以前几天一直在网上找各种解决方法,现在游戏的运行 ...
- 使命召唤14一直连接在线服务器,《使命召唤14》最新更新 连接问题得到解决
今日<使命召唤14:二战>发布了新更新,这款更新解决了几个破坏游戏的bug,对某些武器进行了增强和削弱,还解决了一些多人连线问题,包括修复玩家排名错误等问题. <使命召唤14> ...
- 使命召唤ios_使命召唤竞争性多人游戏未来引发争议
使命召唤ios The Call of Duty esports community is currently reeling, thanks to the recent announcement t ...
- 《和平精英》新模式,玩法竟跟《使命召唤》和《王牌战士》类似?
<和平精英>今日迎来了一次版本的大更新,除了新枪械沙漠之鹰.新载具两栖装甲车上线正式服之外,最大的调整就是在创意工坊加入的全新模式-"战术团队竞技"了: 不少玩家玩过该 ...
- 《使命召唤》单机版详尽攻略
Call of Duty?大部分都翻译为使命召唤,当然你也可以理解为"拉屎的叫喊".该游戏自面世以来,众多媒体给予了极高的评价.几乎所有的权威媒体都将<使命召唤>定义为 ...
最新文章
- andriod之log打印
- JZOJ 5699. 【gdoi2018 day1】涛涛接苹果(appletree)
- 修改autor后面邮箱_如何修改LOL手游昵称
- chrome开启touch屏幕点击事件
- 血的案例告诫 | 模拟大批量数据测试边界上限
- localdatetime 获取天_LocalDateTime的一些用法
- ffmpeg,rtmpdump和nginx rtmp实现录屏,直播和录制
- JS【知识点】------(转)
- Linux下头文件.h的使用
- nodejs+express+mongodb+react+layui完整的小说阅读系统--悦读
- java菜鸟教程100_JAVA/JSP学习系列之一
- UKEY开发,vue+websocket实现用户登录UKEY认证
- 中标麒麟桌面操作系统6.0安装步骤
- 编程比赛三大赛制介绍(ACM赛制、OI赛制、IOI赛制)
- 使用ol,添加图书销售排行榜
- Facebook多账号运营如何防关联
- python开发的桌面应用程序
- mysqlOracle导入导出txt格式的数据
- 5G时代不可或缺的关键技术:详解边缘计算参考架构3.0
- 山东大学单片机原理与应用实验 汇编程序实验2