http://luluathena.com/
rss
email
twitter
facebook
  • About me
  • map

GDC2017游记

5 comments
Posted on 4月 30 2017 by luluathena

前言

今年去参加了GDC,听了一些讲座,顺便逛了逛旧金山。下面将以流水账的形式记录一下这几天的行程。

2月28日

27日是在飞机上度过的,一路从广州睡到旧金山,然后当晚倒时差失败,半夜两点就醒了。28日听了两个讲座,分别是:

  • The Future of Rendering in Unity (Presented by Unity Technologies)
  • Toward Film-Like Pixel Quality in Real-Time Games (Presented by Amazon Lumberyard)

Unity讲的是他们的新架构,之前的Unity为了拥有可配置性,导致架构太复杂。新的Unity只实现小部分的C++内核,将render pipeline交由引擎使用者自己配置,pipeline使用C#编写。现场放了几个例子,通过一两页的代码灵活展示了多变的渲染需求。

第二个讲座,Film-Like Pixel Quality听起来很酷炫,其实就是Amazon在讲他们的新引擎Lumberyard所采用的Temporal AA,Specular AA和Order-independent Transparency。效果还不错,AA这种东西存在的话可能感觉不到,但是失去了之后就会意识到它的重要性。看得我心里痒痒的,后面也想要尝试一下TAA。。(:з」∠)

下午便没有再听讲座了,去唐人街吃了一家味道还不错的川菜馆,然后一路走到了海边,又沿着海岸线坐电车到了鱼人码头,最后爬坡走到九曲花街。见到九曲花街的那一刻感到莫名的眼熟,这不就是《头脑特工队》里那条堵得水泄不通的街吗。于是我掏出手机对着它咔嚓了半天,但只是我们去的时候,九曲花街没有花。时间又接近傍晚,看向花街是逆光的,因此没拍出效果来。

这一天走了很多路,消耗了大量的体力。我本以为自己可以一觉睡到天亮,结果到了凌晨3点又准时醒了(/”≡_≡)/~┴┴。

3月1日

1号这天展区开放了,但由于这一天讲座也很多,因此我们都没有时间去参观展厅,全天都泡在West Hall听讲座。

  • Continuous World Generation in ‘No Man’s Sky’
  • Replicating Chaos: Vehicle Replication in ‘Watch Dogs 2’
  • Efficient Texture Streaming in ‘Titanfall 2’
  • ‘Overwatch’ Gameplay Architecture and Netcode
  • Networking Scripted Weapons and Abilities in ‘Overwatch’
  • GPU-Based Run-Time Procedural Placement in ‘Horizon: Zero Dawn’

首先是No Man’s Sky,听之前我先上steam上搜了一下这个游戏,发现它被国内玩家亲切地称呼为“无人深坑”。当然游戏口碑这么差不该由程序来背锅,所以参加这个技术讲座的人还是很多的。

演讲人是无人深空的主程,我们一边听一边在群里讨论ta的性别,最后也没有得出结果来。讲座的内容是他们如何用一个随机种子生成整个世界,包括地形、植被、生物、建筑等等。No man sky的资源有2G,其中1.5G是audio,200M是UI,剩下的300M用来生成你看到的星球。具体的技术细节提的不多,然后开始为他们第二天的讲座打广告。第二天的讲座我也去听了, 后面会说到。

(:3[▓▓并没有图▓▓]

下一讲座是看门狗2,讲述车辆同步与客户端先行的。当一辆车转圈行驶的时候,客户端需要根据角速度来预测车子的转向(下图右),不然会看到客户端插值出来的车的行动轨迹是一卡一卡的(下图左)。

另外由于同步的问题,两辆车相撞后的表现是不太科学的。比如两辆车正面相撞,应该是一辆车把另一辆车怼飞,而不是两车互相朝相反方向飞出去了。解决方案是发生碰撞时不再是插值位置,而是由collision接管位置,这样碰撞的表现更真实。

上午的最后一场是讲Texture Streaming的,虽然只是半小时的讲座却很有干货。算法大概是这样的:使用预计算的信息来建立一个list,记录重要和不重要的贴图。每帧轮那个list,加载重要的MIP,卸载不重要的MIP。

假定所有的贴图都是4096的,mipmap为16级。他们将场景分块,插一些探针进去,离线渲染每一个探针处的场景,记录对应材质的对应贴图在探针位置应该使用哪一层mipmap。对于被遮挡的物体,就降低mipmap层级。对所有探针位置取到的mipmap层级做一个max,就得到对应材质对应的MIP在一个场景块里的coverage信息。

这些信息保存在一个文件里,在运行时根据相机所在的场景块,加载这个信息。由信息累加得出每个贴图的每个MIP的coverage,除以贴图大小得到metric,使用这个metric作为重要性排序的依据。

下午是暴雪爸爸的两个讲座,第一个讲述了他们的Entity-Component-System架构和同步与先行机制。第二个讲座讲述他们的高级逻辑编辑器,叫做Statescript,有点像Unreal的Blueprint。他们的英雄都是用这个编辑器做出来的,方便把锅甩给策划。这样的好处还有利于同步状态机、模块化的代码等等。关于守望的讲座我只能介绍到这里,因为时差没倒过来加上没有午休,我在听讲座的时候忍不住睡着了。。。

听完两个讲座我就逃了,去听Horizon: Zero Dawn。说实话PS4买了之后一直在吃灰,因此我是听完之后出来才知道这是今年最瞩目的PS4独占游戏。刚才刷了下二柄,发现它有高达9.2的评分。不过这不重要,即使不知道这些,我已经是跪着听完讲座了。这个游戏,画面实在是太让我喜欢了 (♥ω♥ ) ~♪

他们制作了一个编辑器,让美术定义生物群落的规则,不同的生物群落有不同的自然表现。这些规则决定了场景会拥有什么样的资源,以及资源如何分布。然后游戏内GPU实时计算资源的位置信息,生成点云传递给CPU去放置。这样好处很多,比如能够减少场景的加载时间,并且极大提高美术的工作效率。对比之下让美术手动一棵一棵的摆树种草,想要摆出那样的场景估计需要极大的耐心和爱了。

最最良心的是,他们开完GDC就把PPT放出来了。(づ●─●)づ 戳我戳我

听完讲座我已经下定决定,等我把神海4通关了,就入个Horizon: Zero Dawn玩玩。

(:3[▓▓并没有图▓▓]

3月2日

今天听了4个讲座,下午抽时间逛了逛展区。在那边玩到了一些switch的游戏,不过由于这个博文并没有什么时效性,所以现在说出来已经不能让小伙伴们羡慕了(´・_・`)。

  • Classic Game Postmortem: ‘Sid Meier’s Civilization’
  • Replay Technology in ‘Overwatch’: Kill Cam, Gameplay, and Highlights
  • ‘Ghost Recon Wildlands’: Terrain Tools and Technology
  • Building Worlds Using Math(s)

2号上午没有什么想听的讲座,于是我去听了一个策划讲座,演讲者是席德梅尔和Bruce Shelley,讲述文明1的制作历程。比如为什么要叫席德梅尔的文明,为什么是回合制,为什么枪兵可以干死坦克。。。两个老爷子说相声一般天文地理博古通今地狂侃,场下时不时爆出欢乐的笑声,我也跟着“呵呵”,内心却一片茫然,特么的完全听不懂啊。

然后我听了守望先锋在GDC的最后一场程序讲座,讲述的是守望先锋的击杀镜头、全场最佳、录像回放是什么方法。他们使用snapshot+状态delta集合(位置、面向、HP等等)来进行回放。建议在设计网络同步模型时,就考虑到回放。因为玩家很喜欢回放,并且对于项目组而言,回放利于做profile和查bug。

(:3[▓▓并没有图▓▓]

接下来是育碧的Ghost Recon Wildlands地形编辑器讲座,来之前美术先看了他们在youtube上发布的视频,于是拜托我一定要听这一场。讲座是由一个口音感人的程序和一个口音感人的TA联合讲的。目前GDCVault上已经有讲座视频和讲座PPT了。

程序GG讲了地形是由索引贴图来索引各种pbr材质的,美术要定义的不是每个像素所使用的pbr材质,而是地形的材质规则。但是索引贴图是点采样的,为了blend,他们需要采样多次做bilinear,这样很耗,于是他们对地形的顶点做了划分来减少blend的材质数量。最后又使用了virtual texture技术来渲染地形贴图,但是virtual texture的其中一步要把framebuffer读回CPU太耗了,他们用compute shader来计算出缺失的贴图,然后再加载。

TA GG讲了他们的procedural tools,都是由TA经过houdini制作的。通过编辑路点和区域,就能够生成路、电线杆、桥、河流、村庄、植被、石头、音效分布等等。

最后一场是无人深空的讲座,讲述他们生成随机地形的算法。尝试过Minecraft的方法,但是觉得生成的地形太假了。还尝试了DEM数据训练,够真实了但是又毫无特色。最后用的方法是Uber Noise,用一系列噪声公式,组合出来得到真实又足够多变的地形。

3月3日

这一天我只听了2个讲座,因为都能找到PPT所以不再详细说了。

  • 4K Checkerboard in ‘Battlefield 1’ and ‘Mass Effect Andromeda’
  • Technical Art Techniques of Naughty Dog: Vertex Shaders and Beyond

第一个是寒霜的,使用Checkerboard渲染出4k分辨率的方法。渲染一半的像素,然后用上一帧的数据重建另一半的像素。这里是他们的PPT。

第二个是个TA讲座,讲述神海4的各种vertex shader黑科技。网上有好心人翻译了别人的会议记录。为了听这个讲座我们放弃了去金门公园的计划,而讲座内容也确实很6。但出来之后小伙伴google了一下,在16年SIGGRAPH搜到了几乎一样的讲座,大家集体陷入沉默。。。

(* ̄︿ ̄) …(﹂_﹂)…(ノへ ̄、)(´-ι_-`)(⇀‸↼‶)

剩下的时间我们只来得及看一看夕阳中的金门大桥,吹了吹来自太平洋的风,便结束了这次旧金山之旅。

 

结尾

最近有几个人问我为啥博客不更新了,因此将这篇拖了两个月的博文发出,以此来证明我还没有放弃治疗。


Category: 总结|感想, 程序

5 Comments

  1. tryao说道:
    五月 8, 2017 10:11 上午

    噗…晚了几个月到底还是发出来了,也是不容易…现在WordPress blog感觉都不多了,直接用github pages也可以

    回复
    • luluathena说道:
      五月 10, 2017 1:57 上午

      回头试一下。。。

      回复
  2. Liu说道:
    一月 9, 2018 7:38 上午

    请问哪里可以拿到’Overwatch Gameplay Architecture and Netcode’的ppt?

    回复
    • luluathena说道:
      二月 3, 2018 9:26 上午

      目前还没有PPT放出,可以看 http://gad.qq.com/article/detail/28682

      回复
  3. Captain说道:
    一月 9, 2018 12:51 下午

    在互联网的角落里,藏着一些孤独的博客,梦想与热爱,人生苦短。

    PS 没头脑与不高兴,好评!我也很喜欢这两个。

    回复

Leave a Reply

点击这里取消回复。




分类目录

  • 生活 (215)
    • 不高兴 (62)
    • 伪文艺 (40)
    • 没头脑 (114)
  • 程序 (72)
    • 总结|感想 (19)
    • 笔记|翻译 (35)
    • 算法|应用 (17)
  • 绘画 (30)
    • SAI|PS (14)
    • 彩铅 (17)

标签

Bezier bloom BluePrint3D Cache cloth simulation coq CUDA D3D9 D3D10 Deferred Lighting Dynamic Texture Lookups evernote facial animation Gesture glsl iOS mali MSVC2008 NPAR OpenCV OpenGL OpenGL ES PBR PowerVR Python QT Ray Tracing SAI Self Calibration SSAO Stereo Match trimesh 优化 学习 工作 总结 手势 破窗理论 钢笔路径
2019年十二月
一 二 三 四 五 六 日
« 12月    
 1
2345678
9101112131415
16171819202122
23242526272829
3031  

近期文章

  • 2018年度总结
  • 各种Depth of Field
  • GDC2017游记
  • 从0开始pbr
  • 不好意思称作2015总结的总结

文章归档


  • About me
  • map
Powered by Wordpress  |  Designed by WebTreats