《使命召唤:无限战争》的多层材质技术,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]《使命召唤:无限战争》的多层材质技术相关推荐

  1. 使命召唤4战争名言录——战争与和平

    "Nearly all men can stand adversity, but if you want to test a man's character, give him power. ...

  2. [sig16]《使命召唤》中的全局光照技术

    Treyarch是<使命召唤:黑色行动>系列的开发商,使命召唤系列的成功不必细说,treyarch也是一个在技术上很有探索的公司,在<使命召唤:黑色行动>1中率先使用基于物理的 ...

  3. [sig18]《使命召唤:二战》的材质光照技术

    siggraph18, activision.sledgehammer带来. 主要谈的是sledgehammer工作室在cod材质系统方面的探索,这里btw一下,cod系列是infinityward, ...

  4. 思路方向:如何在移动端实现3A级画面 from《使命召唤手游》技术副总监

    原始链接:https://mp.weixin.qq.com/s/Zm3rRXQf6yCoiXJ-wVtJsA 为了查找方便 备份一份 如有需求 请移步原文 5月11日-12日,由Unity举办的全球开 ...

  5. 使命召唤5该服务器没有响应,使命召唤5世界战争 常见问题解决方法

    使命召唤5世界战争常见问题解决方法,还不知道怎么解决的朋友可以来看看 COD5打了一周多了,这个游戏从安装开始一直到网战模式与合作模式都有很多的问题,所以前几天一直在网上找各种解决方法,现在游戏的运行 ...

  6. 使命召唤14一直连接在线服务器,《使命召唤14》最新更新 连接问题得到解决

    今日<使命召唤14:二战>发布了新更新,这款更新解决了几个破坏游戏的bug,对某些武器进行了增强和削弱,还解决了一些多人连线问题,包括修复玩家排名错误等问题. <使命召唤14> ...

  7. 使命召唤ios_使命召唤竞争性多人游戏未来引发争议

    使命召唤ios The Call of Duty esports community is currently reeling, thanks to the recent announcement t ...

  8. 《和平精英》新模式,玩法竟跟《使命召唤》和《王牌战士》类似?

    <和平精英>今日迎来了一次版本的大更新,除了新枪械沙漠之鹰.新载具两栖装甲车上线正式服之外,最大的调整就是在创意工坊加入的全新模式-"战术团队竞技"了: 不少玩家玩过该 ...

  9. 《使命召唤》单机版详尽攻略

    Call of Duty?大部分都翻译为使命召唤,当然你也可以理解为"拉屎的叫喊".该游戏自面世以来,众多媒体给予了极高的评价.几乎所有的权威媒体都将<使命召唤>定义为 ...

最新文章

  1. andriod之log打印
  2. JZOJ 5699. 【gdoi2018 day1】涛涛接苹果(appletree)
  3. 修改autor后面邮箱_如何修改LOL手游昵称
  4. chrome开启touch屏幕点击事件
  5. 血的案例告诫 | 模拟大批量数据测试边界上限
  6. localdatetime 获取天_LocalDateTime的一些用法
  7. ffmpeg,rtmpdump和nginx rtmp实现录屏,直播和录制
  8. JS【知识点】------(转)
  9. Linux下头文件.h的使用
  10. nodejs+express+mongodb+react+layui完整的小说阅读系统--悦读
  11. java菜鸟教程100_JAVA/JSP学习系列之一
  12. UKEY开发,vue+websocket实现用户登录UKEY认证
  13. 中标麒麟桌面操作系统6.0安装步骤
  14. 编程比赛三大赛制介绍(ACM赛制、OI赛制、IOI赛制)
  15. 使用ol,添加图书销售排行榜
  16. Facebook多账号运营如何防关联
  17. python开发的桌面应用程序
  18. mysqlOracle导入导出txt格式的数据
  19. 5G时代不可或缺的关键技术:详解边缘计算参考架构3.0
  20. 山东大学单片机原理与应用实验 汇编程序实验2

热门文章

  1. 大家都不可以不看的一些网站
  2. 计算机权限 英语怎么说,revoke
  3. split字符串拆分踩坑记录(字符串拆分后数组下标越界解决方案)
  4. python代码自检工具 flake8简单介绍
  5. 【分布式搜索引擎02】
  6. xftp连接提示无法打开,无法显示远程文件夹
  7. GBA是什么,目前(截至2021年)民间团队对GBA的改造如何
  8. 关于byte超出范围
  9. Docker运行容器端口映射
  10. java 多租户授权权限_多租户权限,组织架构树