» 您尚未登录:请 登录 | 注册 | 标签 | 帮助 | 小黑屋 |


发新话题
打印

[新闻] 【转自MGCN】【720p中字】GDC 13 小岛组Fox引擎演讲 1小时25分完整翻译版

二阶 sh 还是蛮好玩的 …… 一般大家用的都是 3 阶的吧 ~ 为 SPE 优化么 …… 上一代 MGS4 也使用了这个做环境光照

其实有一些我还是觉得挺震撼的。在这个连 COD:BO2 都开始用 Cook-Torrance 之类复杂的物理光照的大环境下,MGS 依然使用 Blinn-Phong 模型,只是加入了能量守恒标准化。甚至为了模拟距离远近的光照变化还引入了一个物理上不精确的光滑度随距离变化(似乎这个特性本应是用 Cook-Torrance 中的 Schlick 分量实现的)。此模型执行效率会非常高,本世代平台应该是没有压力的。

另外一个是在灯光的能量衰减上下了不少功夫 —— 聚光灯使用固定光通量,越集中越高亮这种设计 —— 这些设计可以说是更加符合灯光布置人员习惯的 …… 大多数游戏都没有设计出这样的聚光灯,譬如 Farcry3 。

另外在 Albedo 的采集上那种精益求精的态度,不得不说让人有些赞叹了。

隐约有一种感觉,05年那会儿,Normalmap 的制作引起了一轮美术技术热。而如今基于物理能量守恒特性的光照模型,也会产生新一轮的美术技术热 —— 如何高质量的制作“表面粗糙度”贴图呢,小岛组也没有给出一个好的归一化方案,Tri-ace 也没有ppt中提到,很是期待。

至于在本世代上运行的问题,我觉得有两个地方很有趣

1. Fox 是延期渲染的架构,采用的是 4MRT(末尾有人提问)。看 4MRT 的配置,其实基本上和 Killzone 是一样的 ……
2. Fox 用的物理光照模型结构并不复杂,是一个 Normalized 的 Blinn-Phong, 大致只需要额外的几条指令,并不大幅度的增加GPU负担

真正大幅度改善画质的部分,Fox 有两个

1. 完全新标准的内容制作工艺
2. 完善的摄影机后期特效

而这俩似乎都不是什么让 Fox 引擎无法运行在本世代的关键因素 ……

[ 本帖最后由 FXCarl 于 2013-4-6 02:55 编辑 ]


本帖最近评分记录
  • 正版万岁 激骚 +3 精品文章 2013-4-6 22:42
  • 倍舒爽 激骚 +1 最骚 Rated by wap 2013-4-6 11:54

TOP

引用:
原帖由 正版万岁 于 2013-4-6 22:49 发表

第一点你意思是说Photoscan美术资源创建方式么?
完善的摄影机后期特效这种要自己写专门的shader么?
一系列变化的根基都来自于 能量守恒的高光模型 …… 针对于 Blinn-Phong 来说就是最直接的,在 Specular 公式前面加一个系数。

(H dot L)^Power => (Power+8)/(8*Pi) * (H dot L)^Power

这个系数叫做 Blinn-Phong normalization factor 上面的系数只是一个逼近 ~ 至于这个参数的推导,有个更严谨和复杂的版本 http://www.farbrausch.de/~fg/articles/phong.pdf

这导致了整个渲染的工艺基准点从 大致看起来可以 进化到了 服从基本物理原理 的阶段。这种感觉就像是一个物体从高处掉落的动画,从 手Key 或者 位置插值 变化到了 由物理引擎驱动的 不同。于是乎 ……

个人粗浅的以为 Linear WorkFlow 的 Albedo 重要性甚至更甚于用 Photoscan 做模型扫描 …… 与其说那是一张贴图,不如说是一个反照率参数表了 …… 如何训练美术团队不信任自己的眼睛而信任数据,这是一个颠覆传统美术价值观的变化。

然后就是对灯光的无比重视,“好的演出就是好的灯光” 也算是影视行业的一个观点了,看游戏的实际操作,每个人都会觉得 MGS V 的视觉就没有过场那么出彩了。灯光使用流明,色温作为参数,这是颠覆现有游戏关卡工艺流程的。

至于后期,小人的说,摄影机后期特效其实谈不上什么特别高深的技术,尤其针对全延迟渲染管线的 Fox 主要就是效率问题(GPU 做还是 SPE 做之类的事情)。MGS 这次效果很棒,做色彩校正的 3D LUT 功不可没,但这个东西的难度是找到好的校色专家。技术角度其实无非就是一个 tex3D 纹理查询 ……

后期上 …… SE 不是直接采用了 Yebis2 的套件么。可以侧面说明,后期也算是成熟的可以独立运作的模块了吧。

[ 本帖最后由 FXCarl 于 2013-4-7 02:45 编辑 ]



TOP

引用:
原帖由 shinkamui 于 2013-4-7 12:04 发表

用pc的原因,我猜是小岛组还没做好ps360的架构。这里讲的都是比较基础的材质,渲染方法,但实现起来,pc和ps360差异太大。相对于现在更流行的light prepass(cryengine3,unigine等等),fox用的还是老式的大gbuff ...
关于材质没有多样性的问题,Stalker 的 X-Ray Engine 已经给出方案了:对 GBuffer 进行 Multipass 渲染,根据 Material ID 进行剔除。其实这个架构就已经很类似 Light Pre-pass 了,而且依然有几何复杂度无关的特点

1. 渲染一套 GBuffer
2. 计算光照缓冲
3. 按材质 ID 用多个全屏渲染(FullScreenPass)来渲染不同材质(在 Light pre-pass 渲染中是再次渲染整个场景)
4. 传统管线
5. 后期处理

仔细看一下 Fox 的 GBuffer,其中的内容 Albedo、Normal、Velocity、Dpeth ,Specular、Glossiness、Translucency、MatID
可以套用 Crysis3 的打包方式 Depth 先去掉,
RT0: RG:Normals,B:Glossiness,A:Translucency
RT1: R:AlbedoY,G:Albedo CbCr(4:2:2),B:Specular,A:MatID
只需要将 RT1 格式从 RGB111110 变成 RGBA8888 即可将目前 Fox 中除了 Velocity 之外的参数全部塞到两个 RT 里去。如果说重新编组一下,加入速度亦可以是这样
RT0: RG:Normals,B:Glossiness,A:Translucency
RT1: RGB:Albedo,A:Specular
RT2: RG:Velocity,B:MatID
—— 某种程度上来说也就是会议上说的 4MRTs 吧。只要牺牲掉 Per-Pixel 的动态模糊(Camera Based 没问题),XBOX360 上跑几乎不需要什么修改,不是么?

[ 本帖最后由 FXCarl 于 2013-4-7 16:54 编辑 ]


TOP

引用:
原帖由 shinkamui 于 2013-4-7 17:41 发表

我没仔细分析gbuffer组织方式,记得原ppt里面貌似没有说这四个rt具体怎么安排的,兄台很认真啊,赞一个。
这样安排也算可以吧,不过压的有点太狠了啊。精度低了,有些还塞不进去,画面上还是要缩的,这就没light  ...
light pre-pass 的问题在于一定要光栅化场景两遍,对于场景复杂度高的场合其实也尴尬。所以 Crysis3 又滚回了 OnePass 延迟渲染的策略,然后把复杂材质都改成传统管线渲染的了。可以参考这个 http://www.crytek.com/download/S ... ies_of_Crysis3.pptx 历史总是轮回的向前发展哇 ~

X-Ray 的历史来自于这里 http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter09.html

关于 Material ID 的用法,使用了一个比我想的更为优雅的做法 —— 将几种不同的材质都做成查找表,然后做一个纹理查询 …… 连 Multipass 都不用了 …… 这法子相当简洁有力

后来 ClearSky 做了一些修改 http://developer.amd.com/wordpre ... rClearSky210309.ppt 变得反而没有那么特立独行了

我是一个标准的 Full Deferred 党 ~ 因为更简单一些 ~ 只是显得不那么针对这代主机的特性

其实看起来的画面不行只和两件事情有关,第一个是光照/材质模型不行,第二个是素材制作太随意 …… 这些都不是渲染架构的错,架构只关乎效率和伸缩性

[ 本帖最后由 FXCarl 于 2013-4-7 23:28 编辑 ]
本帖最近评分记录
  • shinkamui 激骚 +6 感谢分享 2013-4-8 00:16

TOP

引用:
原帖由 Metalgearray 于 2013-4-8 11:44 发表


遇见高人。我问一下,我也很喜欢Deferred的方式,但是我一直觉得Deferred Rendering的在深度上(特别是被深度检测剔除的地方)缺少信息是这个架构的硬伤,现在有没有好的能够解决这个问题的研究成果或方式?

...
全局光技术上来说也就是 Bouncing Light / indirect Illumination ~ 这件事情如果没有完整的几何信息是不可能实现的,虽然我们也可以用一些 Screen-Space 的方式来骗骗眼睛,就像 SSAO / SSReflection 之类,但这些技术都面临一个很重要的问题 —— 它不是稳定的。即为了不同的视觉效果,我们需要不断的去 Hack —— 这意味着我们很难将这种东西运用在大规模内容制作的工艺流程中去

至于 Unreal4 采用的基于稀疏八叉树体素的方法,因为不清楚细节,所以没有发言权。但从一个宏观的角度来看,这个方法还是太慢了,只能说是一个面向未来方向的探索。什么时候 GI 可以作为研发的标准来使用?我想一定是要发展到效率稳定,和其他部分耦合不敏感的阶段。就像后期特效,在行业里普及的就很快,而Off-Screen的粒子系统(在低分辨率渲染粒子再合成到主缓冲),因为不同引擎渲染架构不一致,至今游戏画面中的粒子数量和屏幕覆盖面积仍然很敏感。

从个人的观点来看,Bouncing Light 的整个发生过程是基于物理的光学系统,未来的各种 GI 实现倒是更可能成为一种引擎“外挂”特效。即游戏在开发过程中的时候,关卡设计师以烘培 GI 为参考标准进行制作。然后如果遇上性能强劲的计算平台,就可以将“烘培的 GI” 替换为 “实时的 GI”。因为 GI 的主要特性体现在低频细节上,也就是渲染中的 Ambient / Diffuse light。如果预先有参考静态 GI 的话,一般不用担心渲染出现异常情况。这样的话 GI 就会变成一种类似 AA 的地位 —— 很灵活

高频细节的 GI 其实也不是不存在,譬如在一堆玻璃器皿中间放一个点光源,一些器皿中还装有液体。但这样的效果其实又不是基于辐照度的“传统GI”了。离线渲染中会使用光子映射(Photon Mapping + Final Gathering)来使得 GI 中还可以包含材质表面的 BRDF ……

而从我个人的恶意揣测来说,PS4世代中 “直接BRDF” 的玩法会比 “间接照明” 更加成为发展焦点。原因是这样的

1. 在场景没有玩家交互的大规模变化下,预渲染的低频 GI 质量已经可以达到令玩家满意的水平
2. 现实中很多光鲜的材质(iPhone5外观什么的),目前游戏中还有很大的提高空间,譬如我们目前在本世代还无法做到让玩家一眼识别材质:笔记本电脑上,塑料、铝、玻璃 的区别,而如果能够很好的重现这些材质的质感,会极大的提升视觉体验 —— 就像我们看到带有 SSS 的角色皮肤那样。
3. 基于 IBL 的动态物体照明目前已经可以承受(RealTime HDR CubeMap,随后使用 CubeMap 做 IBL)

于是呢,我们有机会做到这样的目标 —— 假设你有一个完全布置好消光环境的屋子,然后你使用手电筒照亮支架上的一个装饰品(无论是任何材质的,或表面工艺) —— 游戏和照片达成几乎一致的所谓 PhotoRealistic。而室外场景,譬如建筑或者汽车,就会和离线 IBL 的 CG 一模一样。

好像一下又说了好多屁话,浪费大家时间了

[ 本帖最后由 FXCarl 于 2013-4-8 16:59 编辑 ]

TOP

发新话题
     
官方公众号及微博