[gdc13]合金装备的FoxEngine技术

来源:互联网 发布:相册管家是什么软件 编辑:程序博客网 时间:2024/04/28 15:30


http://v.youku.com/v_show/id_XNTM3ODIzNzgw.html

youku上面有人搬来,翻译尚可,但是对于技术学习来讲很多地方不准确,还是以ppt和英语讲解的人为准。

由小岛秀夫来主讲和介绍MetalGearSolidGroundZeroes背后的FoxEngine:


当然,中间技术和美术部分由各自部分的负责人来做。

非常优秀的一个presentation,讲解整个团队如何使用技术来开发一款优秀的产品,有技术本身,有结合美术如何制作,关键的一点就是核心一点就是如何创造优秀的产品。

这个和siggraph上面的图形技术方面的介绍就非常的不同,相比之下,siggraph方面特别重理论,飙技术,数学多,各有千秋吧。

上来展示了一个真实照片和FoxEngine渲染照片的对比,可以看出FoxEngine的材质光照已经非常优秀了,不过右边的有较为浓重的AO,渲染程序员应该还是比较容易的看见。


简而言之,FoxEngine是使用PhysicallyBasedRendering,在视频最后阶段,fox针对之前mgs宣传片(当时是雨夜版),又做了一个中午晴天版,除了光照什么都没变,这个视频就是完完全全的一个白天的充分的感觉,一切都是正确的和谐的,也充分说明了physically based rendering的优势:

  • 真实
  • 在各个光照环境下都表现正确

在shading和贴图制作过程中都是physically based rendering这样的一个体系,在介绍过程中没有像siggraph上面以一个大体系的方式呈现,拆分了很多部分。

贴图制作:

PhysicallyBasedRendering需要各个数据是物理正确的(更准确来说是物理属性正确的),传统的直接照片采集的diffuse贴图上面带了光照信息,就需要一个去光照来获得准确的diffuse属性

  • 这里还有一个干扰就是gamma
    • LinearSpaceLighting:细节解释可以看这个:http://blog.csdn.net/ccanan/article/details/6727338
  • 方法核心就是参照物标准化,比如上面的会议室,比如用来标准化的调色板和灰度条,实现对于标准化的东西我们有光照时刻和去光照的两个版本,对于一个带光照的其他物件,就可以反算出去光照的材质版本
  • 另外标准化的物件,对于美术制作时候保持正确也是很重要的
  • 美术也会做这样的物件墙来保持对物件制作的正确性检测,当然这个也可以做为制作其他物件时候的标准:
Geometry 制作
各种牛逼工具,嗯,随着游戏复杂度和质量的提升,制作方式也相应升级来应付新的挑战,所以游戏开发成本并不会随着量和质的提升而线性增加
  • 一种是使用3D scanning获取物件的geometry信息
  • 一种是photo based scanning,给一组照片,就能做好模型的建立,这个技术是使用了一个中间件:AgiSoft的PhotoScan
    • 制作过程很酷,DZT
    • 还介绍了一些photoscan其他一些功能,处理贴图等等,异常强大的东东
  • marvelous designer:这是一个著名服装设计建模软件,衣服的褶皱比较难以处理,需要专门软件来搞定
    • 左边snake肩膀上的褶皱就是通过marvelous designer直接搞定,没有其他手修
lighting&shading&camera
上来一个技术哥,首先又深入详细讲了下正确texture的采集方式:
贴图通过相机拍摄再处理获得(所有贴图都这样么?有些难以想象啊),就是上面说到的标准化换算的方式,这个在cg和现代很多游戏里也介绍过了,比如:
http://blog.csdn.net/ccanan/article/details/7905416
材质的制作也是一个physically based过程,通过预设很多材质属性,来简化各种材质的设置过程:

 
这里还提到一个叫view dependent roughness的概念,这。。。不是fresnel么?
而且后面说道会根据视角来变化roughness,而不是fresnel的标准计算方式,可能他们试过这样的方法更喜欢吧:

昼夜变换,fox会在camera上面使用不同的曝光和color grading,表达不同的感觉。
这个应该说是n年前的东西了,但是综合品质在不停地上升的时候,snake在场景中奔跑,时间从正午变到晚上,那种真实感带来的冲击还是非常赞的。

camera:
fox里面camera的曝光是只对lighting敏感,而不是对光照的结果,否则会出现如果看黑的东西和白的东西在自动曝光之后,出现基本一样的问题。
这个具体怎么做,没说,可能只是收集周围的光照信息来。
camera参数,变成和实际camera的参数一样,快门,光圈等等,相关的bloom,dof效果的启用与否,跟着这些参数进行调节。
这个。。。实际用下来应该是有好处也有不好吧。

lighting:
  • deferred rendering::
    • 多光源
    • 人物与环境更加融合--这个和deferred rendering没有关系啊
    • gbuffer:
    • 这里一个比较特别的是translucency,这个用于计算半透效果,头发,scattering等等,来张头发的效果:
    • specular albedo不是specular color rgb,是一个intensity,有助于节省通道吧
    • 最特别的是material id,其他的一些游戏里也有用过,算是一种压缩技术了,有一些属性使用id可以记录,不像diffuse这种变化非常大,那么就可以使用id,然后把属性存到一个texture里面,使用id去索引
      • material id里面存了:translucency, fresnel, specular color
    • 处理下gbuffer的roughness,很容易做出潮湿效果:
    • fox也提到了deferred shading的缺点:只支持单一的shading model,是通过调整gbuffer来模拟光照效果
      • 一般是可以通过forward lighting来补充
    • ambient lighting
      • 美术摆放light probe
      • 捕捉 周围的lighting irradiance信息,使用spherical harmonics2阶系数来记录
      • 不同probe之间线性插值
      • 在不同的时段,天气,各自捕捉光照信息,然后插值

真实,理解和美感

fox engine的口号是:“Photorealism through the eyes of a ‘Fox’ ”,从前面的介绍来看,真实度已经做的很棒了。

这里fox也做出了对技术的进一步理解,在进一步走向真实之后,我们需要进一步对材质,光照,相机以及他们的运作方式有充分的理解,才能更好的来驾驭技术和工具,创作出好的东西来。

比如mgs的美术会把衣服裁剪开,看其中的设计,这样深刻的理解,非常有帮助制作美术作品(即便有了marvelous designer的帮助)

那么这里还有一个问题就是真实!=美,MGS或者说所有的游戏需要的真实是美的,酷的真实。

这里MGS也请来了专业的知名的电影打光师来专门指导打光。