[闲聊] Horizon: Zero Dawn 引擎技术分析

楼主: dklassic (DK)   2017-02-24 22:04:32
虽然要明天才会拿到(Yahoo 的已出货爽 XD),不过 Digital Foundry 的技术分析也出
来了,就来设法写得比较好理解些,让大家可以边玩边享受引擎技术本身(?)
https://www.youtube.com/watch?v=0Y8u7MvuArA
↑原始影片
1. PS4/PS4 Pro

游戏在 PS4 顺顺跑 1080p/30fps
在 PS4 Pro 顺顺跑 2160p/30fps(!)
连 FPS 喷掉的场面都没有。
Pro 上面材质过滤倍率也比 PS4 高,使用的贴图细节也比较高,所以在 Pro 上面显著地
比 PS4 漂亮。
2. 画面
时域性再投影(Temporal Reprojection)
首几个实作此项技术的游戏(Inside 也有),基本上是一个可以更快地取得精准反锯齿

果的算法。
所以游戏画面非常干净,也是让这么漂亮的游戏画面 FPS 可以稳定的主要原因。
细节分级(Level of Detail)

为所有物件建立不同复杂程度版本的模型,让远方模型可以用比较简单的几何物件降低负
担,同时也可以物件突现(Pop-up)的状况基本上看不到。
使用的分级似乎很多,所以基本上没有盯着看甚至会注意不到模型转换的出现。
物质基底渲染(Material Based Rendering)

虽然游戏采用比较风格化的美术设计,但是时不时充满原生物质的场面中与机械相对照,
有成功地呈现出对比的感觉。
体积云(Volumetric Cloud)

动态产生有正确考虑光线折射的云。
其他
有良好而不让人分心的动态模糊(Motion Blur)系统,贴合实际摄影机拍摄的画面。
有良好的柔焦系统。
影子很干净。
3. 特别运算技术
GPU 基底物件编排系统(GPU-based procedural placement system)

这类空间比较开放的游戏,引擎需要随着玩家移动开始排定新的环境各个物件应该要摆设
在哪里(有点自动产生的概念),过去通常使用 CPU 来做,Horizon: Zero Dawn 的引擎
是使用 GPU 来做的,所以速度会快很多。
其中不只是游戏内物件,甚至连音效系统、任务系统产生的处理都是给 GPU 跑。
除了可以弄得很快以外,产生机制都有图形化接口可以使用,所以关卡设计师可以不仰赖
程式设计师独力完成产生机制的创造。
4. 角色动画
每个独立角色都有非常细致的动画跟外表设计。
逆运动学(Inverse Kinematic)动画系统让人物模型与环境看起来正确贴合。可以特别

意上下坡时的人物动作。
机械敌人在追捕主角时可能会直接撞开各种障碍物。
5. 其他优点
(1) 除了首次加载很慢,加载速度大约都在十秒,快速旅行加载速度会再长一点。
(2) 虽然很多过场都是预录,但是直接录制对应 PS4 Pro 的 4K 版,不是使用 1080p。
(3) 全 3D 地图,所以很方便看懂位置关系。

(4) 选单内画面更新率会变成 60FPS,所以看起来很顺。
缺点
(1) 没有使用全域照明(Global Illumination),没有处理物件的再反光(光线打到一

物件上再反光到另一个物件)。
(2) 水面反光没有完整的 Screen Space Reflection,看起来相对平板。

(3) 植被跟水不会受到主角移动过去而产生互动。

(4) 由于同时使用风格化美术设计跟拟真物质渲染,有时候整体美术会看起来有点奇怪。
(5) 影子细节变更的距离有点近,在植被浓密的区域中特别容易注意到。

(6) 首次开启时加载很慢。
(7) 有时候人物模型不会有正确碰撞,像是敌人可能被撞进石头里。
(8) 音效声道不知道为什么偏右。
(9) 左肩右肩视角切来切去,让人会有点分心。
(10) 对嘴(Lipsync)很怪,几乎可以说脸部动画细节跟人物重要性是绑定的,路人就整
个路人。
一方面可以看到画面技术与稳定度的强大成效,另一方面也很可惜地有些取舍。
虽然不尽然是个好对比,不过以 Ghost Recon Wildlands 同样拥有大量植被的系统来看

本作的取舍是使用比较细致的树叶、复杂的植被原生动画(可以看到枝干、每根草都没有
统一动作,而是看起来不一致而自然地摆动),而牺牲了复杂的与人物模组碰撞互动。
Ghost Recon Wildlands 则是正好相反 XD
经纠正虽然不是原生 4K 渲染,但有幸买到 Pro 的玩家们还是可以大肆享受各种升级体

啦~
但也显然厂商没有独厚 Pro,依然对 PS4 来说是个堪称全面升级的享受,也难怪小岛秀

会相中他们的引擎。
以上做为参考。
这次设法截了些图,虽然是 Youtube 降画质再撷取可能不好看懂。
下次可能就考虑自己截实机辅助说明甚至有 GIF(?)
作者: realfade (Re)   2017-02-24 22:17:00
爽快~ 连假来操pro囉
作者: cocowing (wing)   2017-02-24 22:17:00
虽然是点对点原生4K,不过用的还是棋盘式渲染
作者: jetalpha (月迷風影)   2017-02-24 22:27:00
推技术分析
作者: sean0212   2017-02-24 22:30:00
感谢翻译&分析。原始影片已先看但不懂,现在懂了
作者: OROCHI97 (OROCHI97)   2017-02-24 22:59:00
原生4K的open world,猛,而且帧率锁30不会掉,代表实际平均帧率一定远高过30的
作者: vans24 (Vans)   2017-02-24 23:11:00
能匿踪的草堆有植物互动,0:44https://youtu.be/ywm-Il-AEPQ?t=44s
作者: cocowing (wing)   2017-02-24 23:28:00
我应该没听错吧 1:55那边,用的是棋盘式渲染我上面说原生应该不对,只是有点对点,但DF没说是原生4K同样用这技术的还有古墓奇兵崛起
作者: a83a83cjcj (马马虎虎)   2017-02-24 23:37:00
更正推XD补推QQ……
作者: zerosaviour (........)   2017-02-24 23:45:00
买不到Pro.....
作者: a139815 (EteRniTy)   2017-02-25 00:16:00
那电视只有1080P 对2160P因该无感八
作者: forgenius (否鸡)   2017-02-25 00:20:00
赶快推免得被人说我看不懂
作者: chiyun1994 (Cy)   2017-02-25 00:33:00
看完想换Pro了
作者: peacedove (林帛亨加油!!!)   2017-02-25 00:44:00
看完想换pro,才发现萤幕只有1080p
作者: sx4152 (呵呵)   2017-02-25 01:06:00
作者: frfreedom (modenwils)   2017-02-25 03:02:00
为了这游戏已经买了量子点电视了,坐等228
作者: OROCHI97 (OROCHI97)   2017-02-25 03:04:00
话说这有比秘境4猛吗
作者: avans (阿纬)   2017-02-25 03:33:00
推技术分析!
作者: cjcat2266 (CJ Cat)   2017-02-25 03:39:00
我觉得毛茸茸的苔藓值得注意,看起来有体积超赞
作者: hung0724 (三头)   2017-02-25 08:47:00
可是买不到Pro XD
作者: cjcat2266 (CJ Cat)   2017-02-25 09:23:00
我是觉得到了一定水准就不太能分优劣,只能看玩家喜不喜欢制作团队决定着墨的部分和风格
作者: OROCHI97 (OROCHI97)   2017-02-25 09:44:00
了解,感谢解说
作者: sunlockfire (太陽沒有火)   2017-02-25 09:45:00
嗯嗯嗯...跟我想的一样(欸我的博客来今天才寄出...看来要连假过后了Orz
作者: yuyuliu (宁静)   2017-02-25 10:19:00
推,但没有Pro可以买。
作者: cocowing (wing)   2017-02-25 10:39:00
https://goo.gl/xWWMXN 新的更新让PRO多了画质选项"效能优先"和"分辨率优先",两个都一样锁30fps没4K显示器的用PRO玩真的就只有材质贴图好一点而已
作者: Hua0722 (引歸殺象吶)   2017-02-25 11:23:00
就是为了这款买PS4结果出了PRO...
作者: chocoboex (肚子肥油三层)   2017-02-25 12:55:00
脸部那个,明显就是建模的问题,跟材质关系不大
作者: OROCHI97 (OROCHI97)   2017-02-25 14:32:00
话说这是不是表示,不管是ps4还是pro,都有cpu跟不上gpu的问题,才需要gpu去处理本来是属于cpu的工作是吗?
作者: cjcat2266 (CJ Cat)   2017-02-26 05:00:00
@OROCHI97 不是这么说,CPU和GPU各有所长,一模一样的小规模逻辑,又需要大量平行执行,比较适合GPU架构本质上不同的逻辑段落,又需要平行执行,GPU就没办法像CPU有效率地运算,CPU每个核心有自己的program counterGPU则是多个核心共用program counter,所以GPU遇到有分岔的逻辑,就没办法像CPU样做逻辑跳跃GPU的应用已经跳脱画面运算的侷限可以把CPU和GPU想成各有所长的互补运算单元有效安排逻辑片段给适合的单元执行,是programmer的责任
作者: OROCHI97 (OROCHI97)   2017-02-26 08:26:00
推专业!我居然看的懂XDD
楼主: dklassic (DK)   2017-02-26 12:12:00
哇,CJ 猫亲自回文我就不献丑了 XD
作者: a83a83cjcj (马马虎虎)   2017-02-26 12:17:00
推推
作者: VICEFAP (者2)   2017-02-26 15:33:00
快推 以防被发现我看不懂

Links booklink

Contact Us: admin [ a t ] ucptt.com