执着于光影表现【全境封锁】的开放世界渲染

Snowdrop(雪莲花)引擎的全局照明技术介绍
 
补上原文链接:http://game.watch.impress.co.jp/docs/news/20160322_749267.html
 
 
UBI Massive 工作室的Nikolay Stefannov
 
    3月18日,UBI Soft的技术主管Nikolay Stefannov进行了题为【Global Illumination in 'Tom Clancy's The Division'】(全境封锁的全局照明技术)的Session。
 
    在家用机和PC游戏的世界,GI已经变得习以为常了。既然GI已经是必须的话,那就要以现今有效的GI光照为前提,并向有一定风格的【画面制作】的焦点转移。画面制作,并不仅仅是美术师在数据绘制上的方法,还有程序上的技术。这里,Stefannov就是以【全镜封锁】画面制作的技术方面进行了解说。
 
 【游戏世界中光源的移动变化】

 
    【全境封锁】,是UBI的瑞典工作室UBI Massive开发的第三人称射击游戏,引擎使用的是UBI自研的雪莲花引擎。【全境封锁】有着RPG元素,游戏场景变成了开放世界。以纽约曼哈顿的6平方公里为游戏舞台,世界内有有着总计200万的实体(物体对象)。车辆总数约2万量,垃圾堆3万座。
 
    因为要重视开放世界的整体性,光照为了强调美术师的演出意图,在项目上做了限制,日光无法照明到所有的空间,经常有发暗的地方。
 
    雪莲花的GI光照,因为全部都是动态的,什么时候都可以进行调整。为了提升性能,很多的游戏引擎通常会把光源的影响的预计算结果烘培到光照贴图里。而本作的雪莲花引擎,最大的特征就是完全的动态光照。使用的Light Probe,因为管理太复杂,也并不太适应项目的设计。
 
【本作技术的核心特性】

 
 GI的影响范围不仅仅是室外。本作中,为了系统可以不区分室内和室外,在室内也会有很大的开口让真实的光照射入,根据游戏世界里时间的变化,光影的色彩也会改变。室内的家具,虽然不是全部,也作成受到光照的影响。为了可以利用这种空间光照的特性,不能生成光照反射。
 
    气候的动态变化是通过脚本随机的变化的,包括太阳和天空的颜色,云的多少,雾和霞的强度等等。还有程序化实现的降雪系统,使得本作的场景变得更加的突出。
 
 
【PRT ON/OFF的比较】

 
 
    要实时的进行这种动态的光照,通常会在没有光源变化的场景中,使用预先计算出光源影响的Precomputed Radiance Transfer(PRT)的方法,一般的PRT,Porbe检测的HDR环境光,只能处理Directional light这种有方向性的光。用这种光照方法,无法获得想要的结果。另外,即便是高频的也可以使用PRT,不过计算消费太高了。
    
    那么,本作中的蛮力方法,是近似GBuffer CubeMap的方法,预先检测出所有可见的物体表面保存为列表数据。 Light Probe自定的配置为4米的空间,64米的四方区域(Cell)里最多有1000个这样的Light Probe,通常是200~300个。区域会对应玩家移动来读取或销毁(Streaming),从而可以绘制整个广阔的开放世界。
 
【 全局照明技术的方法解说】
 
 
 
    每个区域(Cell)制作预处理数据大概要5~6秒,通过这个计算结果得到的曼哈顿的光照数据资源大概是1GB的硬盘空间,区域总数约4000个,Probe约116万,物体表面5664万。
 
    使用这些数据,在游戏运行时再每帧进行光照的计算。本作中,不同的Probe Set之间的结果没有做混合。这是因为需要短距离的GI效果,也算是本作的特征吧。
 
    这种光照的在计算在性能上,每帧会对玩家所在的区域和另外的一个区域进行处理,每次处理800~900个Probe,在Xbox One上异步0.95ms,GTX760的PC上是0.47ms,在维持高帧率的同时获得了非常好的效果。
 
【游戏内移动变化产生的光照变化】
 
 
 
    上面记述的主要是本作的GI方法。本Session中,还介绍了很多游戏中采用的提升图形品质的方法。每个都是比较熟悉的方法,不依赖通用的游戏引擎,而开发公司自己的引擎,就可以使用最合适的技术来制作来完成自己的画面制作了。
 
    UBI和EA的各个工作室的情况是,强力的工作室会制作公司自研的引擎,进行改良,并在几个工作室内共享。这样才能满足游戏所需要的技术力,并运用到更多的游戏上,达成更高的销量吧。
 
    在越来越多采用第三方的游戏引擎的现今,我想可以有这样的决断是相当难得的,不过为了画面制作的多样性,还是希望有技术和实力的工作室可以继续这个方向。
 

GDC2016 执着于光影表现的【全境封锁】的开放世界渲染的更多相关文章

  1. GDC2016【全境封锁(Tom Clancy's The Division)】对为何对应Eye Tracked System,以及各种优点的演讲报告

    GDC2016[全境封锁(Tom Clancy's The Division)]对为何对应Eye Tracked System,以及各种优点的演讲报告 原文 4Gamer編集部:松本隆一 http:/ ...

  2. GDC2016 [全境封锁],11个种类5个派系的敌人设计思路

    [汤姆克兰西:全境封锁],11个种类5个派系的敌人设计思路 实现[汤姆克兰西]射击RPG的AI开发   日文链接:http://game.watch.impress.co.jp/docs/news/2 ...

  3. 2016动作短片《全境封锁:特工起源》HD720P.英语中字

    导演: 德文·格雷厄姆主演: Matt Lynch / Sasha Andreev / Amanda Day类型: 动作 / 短片制片国家/地区: 美国语言: 英语上映日期: 2016-01-19片长 ...

  4. GDC2016 【全境封锁】的全局照明技术

    现在全力支持公司的GAD平台了,很多的内部分享也可以放出来 http://gad.qq.com/article/detail/7159232

  5. GDC2016 【巫师3 狂猎】的游戏事件工作流

    巫师3 狂猎(The Witcher 3: Wild Hunt )的游戏事件工作流   http://game.watch.impress.co.jp/docs/news/20160320_74916 ...

  6. GDC2017 把“现实的天空”在游戏内再现【Forza Horizon 3】的天空表现

    原文链接 http://game.watch.impress.co.jp/docs/news/1047800.html 完全表现出现实世界中各种偶然而不可预料的风景!     [Forza Horiz ...

  7. [转帖]AMD第三代锐龙处理器首发评测:i9已无力招架

    AMD第三代锐龙处理器首发评测:i9已无力招架 Intel 从之前的 CCX 到了 CCD 增加了缓存 改善了 ccx 之间的延迟. https://baijiahao.baidu.com/s?id= ...

  8. 剖析虚幻渲染体系(14)- 延展篇:现代渲染引擎演变史Part 1(萌芽期)

    目录 14.1 本篇概述 14.1.1 游戏引擎简介 14.1.2 游戏引擎模块 14.1.3 游戏引擎列表 14.1.3.1 Unreal Engine 14.1.3.2 Unity 14.1.3. ...

  9. CPU GPU设计工作原理《转》

    我知道这非常长,可是,我坚持看完了.希望有幸看到这文章并对图形方面有兴趣的朋友,也能坚持看完.一定大有收获.毕竟知道它们究竟是怎么"私下勾搭"的.会有利于我们用程序来指挥它们... ...

随机推荐

  1. iOS App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure.

    You can easily add it to the plist using the GUI: On the last line add the + Enter the name of the g ...

  2. sparklyr包--实现R与Spark接口

    1.sparklyr包简介 Rstudio公司发布的sparklyr包具有以下几个功能: 实现R与Spark的连接: sparklyr包提供了一个完整的dplyr后端,可筛选并聚合Spark数据集,接 ...

  3. bzoj1008 [HNOI2008]越狱

    1008: [HNOI2008]越狱 Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 5099  Solved: 2207 Description 监狱有 ...

  4. Visual Studio: 暂时?绕过 fatal error C1083: Cannot open precompiled header file

    可以使用右键点击项目工程中的该cpp文件,选择setting,在c/c++栏,选择PreCompiled headers,然后设置第一选项,选择不使用预编译头.

  5. 【BZOJ4034】[HAOI2015]树上操作 树链剖分+线段树

    [BZOJ4034][HAOI2015]树上操作 Description 有一棵点数为 N 的树,以点 1 为根,且树点有边权.然后有 M 个 操作,分为三种: 操作 1 :把某个节点 x 的点权增加 ...

  6. window计划任务

    我的电脑->管理->任务计划程序     [或:控制面板->类别:大图像->管理工具->任务计划程序] 右边创建任务: 常规:名字和 是否 只在用户登录是运行 触发器:新 ...

  7. [深入浅出WP8.1(Runtime)]浮出控件(Flyout)

    4.15 浮出控件(Flyout) 浮出控件(Flyout)是一个轻型的辅助型的弹出控件,通常会作为提示或者要求用户进行相关的交互来使用.Flyout控件与Windows Phone里面的弹出框Mes ...

  8. 【BZOJ】1367: [Baltic2004]sequence

    题意 给\(n(n \le 10^6)\)个数的序列\(a\),求一个递增序列\(b\)使得\(\sum_{i=1}^{n} |a_i-b_i|\)最小. 分析 神题啊不会. 具体证明看黄源河论文&l ...

  9. 【BZOJ2049】 [Sdoi2008]Cave 洞穴勘测 LCT/并查集

    两种方法: 1.LCT 第一次LCT,只有link-cut和询问,无限T,到COGS上找了数据,发现splay里的父亲特判出错了(MD纸张),A了,好奇的删了反转T了.... #include < ...

  10. Kafka剖析(一):Kafka背景及架构介绍

    http://www.infoq.com/cn/articles/kafka-analysis-part-1/ Kafka是由LinkedIn开发的一个分布式的消息系统,使用Scala编写,它以可水平 ...