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

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. Java NIO示例:多人网络聊天室

    一个多客户端聊天室,支持多客户端聊天,有如下功能: 功能1: 客户端通过Java NIO连接到服务端,支持多客户端的连接 功能2:客户端初次连接时,服务端提示输入昵称,如果昵称已经有人使用,提示重新输 ...

  2. Ajax从服务器端获取数据

    写在前面的话 Ajax从服务器获取的数据都是字符串,但是通过不同的解析,可以解析为XML或JSON来进行应用. 一般来说.使用XML格式的数据比较通用,但是服务器和客户端解析起来都比较复杂一些;而使用 ...

  3. CodeForces#275--DIV 2--B(BinarySearch)(!!)

    B. Friends and Presents time limit per test 1 second memory limit per test 256 megabytes input stand ...

  4. ural 1142. Relations

    1142. Relations Time limit: 1.0 secondMemory limit: 64 MB Background Consider a specific set of comp ...

  5. hive0.12 rcfile gzip 测试

    创建test_rc; 让后从老数据中插入test_rc中, select test_rc 中插入的数据,报如下错误: Failed with exception java.io.IOException ...

  6. js 过滤敏感词

    <html> <head>     <title>Bad Words Example</title>     <script type=" ...

  7. [小工具]ChemistryHelper

    // 此博文为迁移而来,写于2015年3月25日,不代表本人现在的观点与看法.原始地址:http://blog.sina.com.cn/s/blog_6022c4720102vuv7.html 前几天 ...

  8. BZOJ2330 糖果题解 查分约束

    BZOJ 2330 糖果题解 差分约束系统 + SPFA 题目传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=2330 Description ...

  9. Linux_CentOS6.5安装vncserver实现图形化访问

    一. 安装gnome图形化桌面 #yum groupinstall -y "X Window System" #yum groupinstall -y "Desktop& ...

  10. 20145330《Java程序设计》第一次实验报告

    20145330<Java程序设计>第一次实验报告 实验一Java开发环境的熟悉 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Ja ...