[sig18]《使命召唤:二战》的材质光照技术
siggraph18, activision.sledgehammer带来。
主要谈的是sledgehammer工作室在cod材质系统方面的探索,这里btw一下,cod系列是infinityward,sledgehammer和treyarch三家工作室轮流开发。
开始inifinityward的cod4确实才华横溢,以出色的制作实力(设计,美术和技术非常均衡)开创cod,后来一堆乱事,主创也走了,后面的cod系列,虽然在设计上不复当年的惊艳,但是开始呈现大厂工业生产风的设计风格有连贯性,制作品质和技术稳步前进的风格。进一步也有了research center,可以看出来,这样的成功的系列产品,对于技术的持续探索是多么的重要。
本文是进一步聊了材质光照相关的东西,主要包括:
- normal & gloss mipmapping
- material surface occlusion
- multiscattering diffuse brdf
已经在pbr的大框架下,在实时的前提下,不停的逐步推进物理准确性。
主要看点是: - 目前PBR的进一步发展趋势,就是在更加细节的地方,物理更加正确
- activision做R&D的方式,非常的严谨,和实验室发论文并无二致,非常喜欢,不过所以本篇文章偏理论,读者看着会比较枯燥,但必须疾呼这个其实很酷很牛逼的!!!
- 工程上,每一个方面的提升,都是基于正确的理论,来做高效的近似,而不是“直接hack,看着挺好就挺好”
normal&gloss mipmapping
这个其实在farcry和crytek的之前文章都有涉猎,这里在方向上是一致的:把normalmap看做gloss的一部分,尤其是远处的时候,normal的细节因为normalmap的mipmap的原因丢失,那么应该转入gloss的mipmap中去。
文中进一步给出了更精准的数学推理和做法,上图的表就比较有应用作用了。
blending细节normal的时候,再次提到经典blog:https://blog.selfshadow.com/publications/blending-in-detail/
material surface occlusion
这里也是考虑的颇为细致,赞一个。
就是normalmap可以用来在材质级别上去生成ao&self shadow信息,并且重新思考了ao的shading方式。
normal map->ao做法上这个顺序
- normal map->heightmap
- heightmap->ao
=ao的shading=
这个是我们常用的shading ao的方式,可见的部分是一个亮度,被occluded的地方,就是黑的,但是这个和实际情况不符,occluded的地方也是有反射的。
这里可以考虑到旁边材质的间接反射:
这样就精准了。
=ao的应用=
最后ao也是用在了specular occlusion上面
multiscattering diffuse brdf
这是一个早期开发时候的图,文中发现左边比右边亮,这个不符合我们的常识,右边是向阳的,应该更亮才对呀。
这里进一步就引发了对光照模型的探索,中间是明确区分了specular和diffuse,这个导致了不够能量守恒。
=能量守恒=
正确方式:
所以我们要根据specular的能量反射来调整diffuse lighting的量。
这个specular lighting的反射如何测定(或者游戏中现实的方式去决定),作者使用的是EnvBRDF的table来做specular的能量测定方式。
=multiple scattering diffuse brdf=
另外作者也进一步引进了Heitz的做法。
考虑到了能量在macrofacet之间的反射,要进一步将scatter考虑进来。
这里就是对于光照模型的运用,贴下ref就好了
[Mat03] A Data-Driven Reflectance Model
[Brd12] BRDF Explorer
[sig18]《使命召唤:二战》的材质光照技术相关推荐
- [sig17]《使命召唤:无限战争》的多层材质技术
<使命召唤:无限战争>的多层材质技术,siggraph17,activision.infinity ward带来. PBR的发展趋势 从activision在cod上面做的一些工作上看,可 ...
- [sig16]《使命召唤》中的全局光照技术
Treyarch是<使命召唤:黑色行动>系列的开发商,使命召唤系列的成功不必细说,treyarch也是一个在技术上很有探索的公司,在<使命召唤:黑色行动>1中率先使用基于物理的 ...
- [siggraph17]《使命召唤13:无限战争》光照技术
brief siggraph17, cod13是infinity ward开发的,技术是多方合作出来的,这篇presentation是activition central tech两个哥们带来: 是1 ...
- 思路方向:如何在移动端实现3A级画面 from《使命召唤手游》技术副总监
原始链接:https://mp.weixin.qq.com/s/Zm3rRXQf6yCoiXJ-wVtJsA 为了查找方便 备份一份 如有需求 请移步原文 5月11日-12日,由Unity举办的全球开 ...
- PS4二战在线游戏连接不上服务器,使命召唤14:二战打不开怎么办 游戏无法运行解决办法汇总...
使命召唤14:二战是<使命召唤>系列的全新续作,一些玩家在下载未加密版的游戏后会遇到使命召唤14打不开.使命召唤14无法运行.使命召唤14未响应等等问题,其实这些问题并不是游戏本身的问题, ...
- 自动曝光在移动平台上的实现方案——以《使命召唤手游》为例
一. Intro 在PBR渲染中,除了已被大家深入分析了很多遍的PBR材质属性(Surface Appearance)外,合理的光源强度和后处理也是不可或缺的部分.这里结合工作中的一些实践经验,讨论一 ...
- 使命召唤ios_使命召唤竞争性多人游戏未来引发争议
使命召唤ios The Call of Duty esports community is currently reeling, thanks to the recent announcement t ...
- 使命召唤ol服务器位置,服务器架构升级 使命召唤OL跨区作战时代来临!
近日,酝酿已久的<使命召唤Online>服务器架构升级即将付诸实施,全体<使命召唤Online>玩家未来都将在同一个服务器架构下进行匹配对战--争论已久的四大战区玩家孰强孰弱的 ...
- Godot 4.0中的基于有向距离场SDF(Signed Distance Field)的实时全局光照技术
原文地址 Godot官网 <Godot 4.0 gets SDF based real-time global illumination> 作者 Juan Linietsky 6月28日 ...
最新文章
- 零基础学python看什么视频-零基础自学Python是看书还是看视频?
- 设计的核心任务之二:信息隐藏
- #ps –ef_常用Linux中ps命令学习及ps aux与ps -ef的区别
- vim永久取消空格颜色
- poj_3977 折半枚举
- 使用tmpfs存放MySQL的临时文件的问题一则
- mysql 多行唯一_mysql – 具有唯一约束的原子多行更新
- Java 小程序 之将输入的数字转换为金额输出
- shell 除法保留n位小数
- 生鲜APP软件功能开发
- 太宰治《人间失格》经典语录20句,句句引人深思
- 代理的原理及类型总结
- 舒舍提醒你需要注意这些
- 【附源码】计算机毕业设计java学生网上请假系统设计与实现
- 震撼【超高细节地球】GIS相关引擎,速看。。。
- Adobe全家桶功能介绍
- Centos之目录处理命令
- 后端程序员学习前端篇(一)
- 图片处理 | 分享几个图片处理相关工具
- python机票_某哪儿机票JS解密(3)--python调用node产生正确的航线和pre