为什么游戏《塞尔达:旷野之息》能在功能一般的ns上流畅运行?荒野呼吸本身就有技术难度。一方面,它是一个开放的世界,规模很大;另一方面是昼夜变化,也有各种物理引擎灵活运用带来的高动态场景。不要指望预烤。cpu和gpu压力都不小。但是最后优化的结果还是很不错的,在掌机上可以运行720p。

塞尔达旷野之息switch画质提升(为什么游戏塞尔达)(1)

  cpu的瓶颈相对容易跟进。tegra x1的单核在满血的情况下可能比ps4/xbox one的捷豹好,但是ns的功耗并不高,总共只有三核。但相比较而言,压力并没有那么大。其实ns cpu频率降低一半的话《荒野大镖客》基本没有掉帧,所以任天堂在这方面的坚持可能和wiiu cpu差有关。

塞尔达旷野之息switch画质提升(为什么游戏塞尔达)(2)

  在gpu上,考虑到荒野有很多特性,会比较难。一个是特性兼容,wiiu的latte gpu特性级别是dx10部分dx11特性,ns是dx12完全兼容(不包括dx12u),但async compute在maxwell架构下基本不存在,另一个是性能。

  首先,游戏中的视线非常非常远。所有重要的物体如地形,寺庙,塔,野兽和龙都不会被切断。从地图的左下角可以直接看到地图的右上角,这对游戏性非常重要。

塞尔达旷野之息switch画质提升(为什么游戏塞尔达)(3)

  左边的城堡,右边的野兽,无论多远,永远都是画出来的。

  然后是多光源渲染系统,这样可以达到每只萤火虫都是光源的效果。没机会听荒野之息渲染的cedec,但泄露的ppt和文本转储应该是介于延迟渲染和轻prepass之间的操作:

  除此之外,整个世界的光影效果都是高度动态的。

,