完全表现出现实世界中各种偶然而不可预料的风景!

    【Forza Horizon】系列是一款独特的开放世界赛车游戏,就如本系列的爱好者所了解的一样,在最新作【Forza Horizon 3】中,游戏的舞台完美的再现了包含澳大利亚的风景,自然环境与天空,以及气候等要素。在GDC 2017最后一天的分享【Shoot for the Sky: The Ambitious HDR Time-Lapse Skies of FORZA HORIZON 3】上,以【Forza Horizon 3】的天空为焦点进行了技术解说。

 
Playground Games的光照主美术师 Jamie Wood

    本次担任分享讲解的,Playground Games的光照主美术师 Jamie Wood。因为3月3日是美国Nintendo Switch的发售日,Wood幽默的提示到在听讲时,”请关闭Nintendo Switch的电源”。

    因为本次分享的主题的"HDR",作为Xbox上首次对应HDR的游戏,本以为会公开一些HDR实现的相关经验技术,但实际完全不是。【Forza Horizon 3】中,不在使用前作的【Forza Horizon 2】中基于环境模拟的来表现天空和云彩的方法,完全替换为了基于实际拍照的方法。因为准备了原始的HDR信息,也应该不需要任何HDR的经验技术了。

    因为是基于实拍来表现天空表现,虽然需要大量的成本,资源以及人员,成为了非常麻烦的工作,但在只有【汽车】,【道路】,【天空】3个要素构成的【Forza Horizon】系列里,有着巨大的效果。

    Wood首先介绍了前作中环境模拟的天空表现。通过一些云的模板,以及128阶段的云光照,随着早上,傍晚,夜晚的时间变化一起光照也发生着变化。即便是现在来看也是毫不逊色的美丽景色。

【Forza Horizon 2】的天空表现
 

    但是这种环境模拟的方式终归是模拟的,只能有限的进行表现,和现实的天空有着很大的差异。现实的天空中,经常会出现戏剧性的风景,特别是晚霞美丽可以称作“魔幻时刻”。而【Forza Horizon 3】追求的,就是在游戏中再现这种现实世界丰富的天空表现,所以在开发初期就确定采用基于实拍的方式。

【可是现实的天空更加丰富多彩】

    基于实拍的天空也有简单的实现方法,是把录像的天空影响直接在游戏中流式传送播放(Stream)。和VR的影像内容一样,这个方法就可以就可以把现实的天空一模一样的直接的实现了。

    但是这种方法很早就放弃了。原因就是,这样无法加入制作组内部的经验技术,磁盘空间和内存容量,以及要确保流式传输的带宽,和游戏里影像的整合性等,有着各种物理上的制约。那么,【Forza Horizon 3】中基于实拍的天空表现,是用多个相机在24小时里连续循环,通过实时摄影采集的大量的天空数据。再把这些进行数据化的要借助大量劳力的手法。

    摄影方法,是在【Forza Horizon 2】发布后的2014年冬天开始,因为这时还没确定游戏舞台,有着测试摄影的意义,在Playground Games的所在地英国进行了摄影。

    在空阔的平地上用架设了有专用转台的大型三脚架,在转台上设置了3台佳能EOS-1D X、是当时高端的数字单反相机,光是摄像器材开销150万日元以上了。除此之外还有还有24小时连续驱动的电池,256GB的CF卡(CompactFlash),80TB的网络存储服务器(NAS),还包含工作PC的SSD固态硬盘等等,器材是极大的开销。可以是背负着XBox招牌的旗舰游戏的规模感。通过这些努力制作出来的天空数据,不仅仅实现【Forza Horizon】系列的美丽,还加入了自然真实的天空表现。

译注:日文原文比较简单下面的ppt拍照里有一些技术细节,等gdcvalut更新视频后再做细节介绍了。。

【撮影处理】
 
 
 
【数据化处理】
 
 
 
 
 

【Forza Horizon 2】(FH2 SKY SYSTEM)和【Forza Horizon 3】(OPUS HDR SKY)的对比
 
 
 
通过比较可以发现,【Forza Horizon 2】的天空表现更像CG一些。

【天空的运动】
 
 
 
 
【追加的処理】
 
雾的处理

间接光的表现

云影的表现

 车体上反射的表现

天候表现

    2015年夏天重新在澳大利亚进行了约1个月的摄影。拍摄了200万张照片,游戏中实现的澳大利亚的天空和天候的变化,完全的再现了“真实的澳大利亚的天空”

【在澳大利亚的正式摄影】
 
 
     
   看到的实际实现的基于拍照的天空,效果比想象的还要好。以前基于美术师感觉实现的天空表现,距离现实的天空表现太远,也只能表现有限的内容,而本作中实现了谁看起来都是真实的澳大利亚的天空,特别是加入了各种偶然的表现,再现了无法预估的天空样式,是最大的收货。
   按这次分享会上提到的时间表来看,他们应该已经在某国进行着【Forza Horizon 4】的天空拍摄了,那么2018年预订发行的下一款作品的天空会实现怎么样的进化呢,开始变得有意思起来了。

【完成数据】
 
【随着时间的変化】
 
 

【Forza Horizon 3‘】的天空表现


GDC2017 把“现实的天空”在游戏内再现【Forza Horizon 3】的天空表现的更多相关文章

  1. Unity游戏内版本更新

    最近研究了一下游戏内apk包更新的方法. ios对于应用的管理比较严格,除非热更新脚本,不太可能做到端内大版本包的更新.然而安卓端则没有此限制.因此可以做到不跳到网页或应用商店,就覆盖更新apk包. ...

  2. 使用uGUI制作游戏内2D动画

    在3D的游戏中制作2D的效果是一个很常见的需求,我在很早前玩过一个叫做艾尔之光的游戏,里面就大量的使用了这个技术.就像下面图片中的伤害数字,这些数字往往还是有一些动画效果在里面的,比如大小的变化,颜色 ...

  3. 破解者是如何篡改游戏内数值的,揭秘Android手游破解全过程

    由于Android系统的开放性,让人人都是开发者成为可能,也正因如此,手机APP遭受破解和盗版问题长期存在,且愈演愈烈.尤其是手游 行业,如刀塔传奇.植物大战僵尸.2048等知名游戏被破解的案例不胜枚 ...

  4. Unity3D脚本调用Objective C代码实现游戏内购买

    0.开篇吐槽: 一年之内从WP转到iOS,又从iOS转到U3D,真心伤不起. 1.Unity3D脚本调用OC代码的原理: 其实也没啥神秘的,因为OC是和C互通的 ,C#又可以通过DllImport的形 ...

  5. Cocos2d-x使用iOS游戏内付费IAP(C++篇)

    本文章转载 http://www.ityran.com/archives/5515.非本人原创! 前期准备 设备与账号 在开始编码之前我们需要准备测试环境. IAP只能真机测试,准备一台iOS设备是必 ...

  6. unity 嵌入 百度分享 与 游戏内购物 iap

    原地址:http://blog.csdn.net/u012085988/article/details/18268869 最近老板让在unity项目里实现分享与内购功能,还要ios和android两个 ...

  7. 在Unity3D中利用 RenderTexture 实现游戏内截图

    using System.Collections; using System.Collections.Generic; using System.IO; using UnityEngine; publ ...

  8. 辐射4 中文武器命名方法, 不用winhex, 直接游戏内操作

    参考资料:https://www.reddit.com/r/fo4/comments/3t354b/tip_you_can_add_text_formatting_italic_underline/h ...

  9. 利用Python写一个抽奖程序,解密游戏内抽奖的秘密

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 极客挖掘机 PS:如有需要Python学习资料的小伙伴可以加点击下 ...

随机推荐

  1. POJ.1160.Post Office(DP 四边形不等式)

    题目链接 \(Description\) 一条直线上有n个村庄,位置各不相同.选择p个村庄建邮局,求每个村庄到最近邮局的距离之和的最小值. \(Solution\) 先考虑在\([l,r]\)建一个邮 ...

  2. Nginx 反向代理+高可用

    反向代理主机IP:10.0.0.20 WEB01主机IP : 10.0.0.22 WEB02主机IP : 10.0.0.23 反向代理主机配置:10.0.0.20 [root@node1 html]# ...

  3. centos 7 安装 php 5.5 5.6 7.0

    查看当前安装的PHP包 [root@node1 ~]# yum list installed | grep php php56w.x86_64 -.w7 @webtatic php56w-cli.x8 ...

  4. js控制json生成菜单——自制菜单(一)

    此文档解决以下问题: 1.JSON文件的书写方式 2.jQuery.getJSON()的运用 3.jQuery.each()的运用 4.jQuery的DOM 操作方法之一:.append()的运用 5 ...

  5. IBM Thread and Monitor Dump Analyzer for Java解决生产环境中的性能问题

    这个工具的使用和 HeapAnalyzer 一样,非常容易,同样提供了详细的 readme 文档,这里也简单举例如下: #/usr/java50/bin/java -Xmx1000m -jar jca ...

  6. Voltage Level-Shifter Output Waveform

    http://www.cypress.com/knowledge-base-article/interfacing-sram-jtag-signals-using-voltage-level-shif ...

  7. CentOS禁止packagekit离线更新服务的办法

    以CentOs7为例,以root身份登录系统,然后执行以下命令: [root@localhost ~]# systemctl disable packagekit-offline-update.ser ...

  8. iOS开发-模板方法模式

    模板方法模式定义一个操作中的算法的骨架,而将步骤延迟到子类中.模板方法使得子类可以不改变一个算法的结构即可重定义算法的某些特定步骤.模板方法模式是由子类决定实现算法中的步骤,工厂方法由子类决定实现哪一 ...

  9. Android Studio下加入百度地图的使用 (一)——环境搭建

    最近有学生要做毕业设计,会使用到定位及地图信息的功能,特此研究了一下,供大家参考,百度定位SDK已经更新到了5.0,地图SDK已经更新到了3.5,但是在AndroidStudio中使用还是存在一些不稳 ...

  10. Mongodb查询命令详解

    前面我们简单的讲了下find方法,下面来深入的过一下它的用法以及常用的字方法. 下面是mongo中db.user.help()中对find方法的定义和解释: db.user.find([query], ...