遊戲裡的「水」,通常沒有真的物理模擬
1. 算力成本:流体模拟是「无底洞」
前面提过,流体模拟的计算量非常大。更麻烦的是,它的成本会随著「精度」指数上升。想要波浪更细、涟漪更密、互动更真实,计算量就翻倍再翻倍。而游戏主机和 PC 的显示卡预算就那么多,多给水 5 毫秒,角色动画、阴影、后处理就得牺牲 5 毫秒。
而且水不是背景装饰,它常常是玩法核心。开放世界游戏里可能有整片海洋、好几条河流、几十个湖泊。你没可能为每一块水面都开一份即时流体模拟。所以现实作法是:远景用便宜的视觉近似,近景才稍微加强,玩家真正会互动到的地方才额外处理。这是「资源分级」的思维,不是全场景物理模拟。
2. 玩法可读性:水必须「有用」,不能只是好看
游戏里的水经常是关卡设计的一部分。哪里能游、哪里会被冲走、哪里可以藏东西,这些都需要玩家一眼看出来。如果水是真实物理模拟,它可能做出各种出人意料的流动,让玩家迷失方向或死得莫名其妙。开发者更希望水是「可预测的」:固定的水深、固定的流速、固定的波浪节奏,最好连涟漪扩散的范围都能预先设计。
所以你会看到很多游戏的水面互动其实是「触发器」:角色一碰到水面,就在那个位置播放一段涟漪动画;船一移动,就在船尾生成一串尾流粒子。这些回应迅速、便宜、可控,而且百分之百符合玩法需求。真正的物理模拟反而会让开发团队失去这种控制权。
3. 美术控制:导演要的是好看,不是正确
游戏美术总监不会说「我要物理正确的浪」,他会说「我要黄昏时金色的反光、要能衬托角色的剪影、要让玩家觉得这片海很浪漫」。这些是美术需求,不是物理需求。水的颜色、透明度、泡沫多少、反射强度,全都是可以手动调的参数。
很多游戏的水面甚至会在不同情境下用不同参数:晴天一套、雨天一套、黄昏一套,甚至剧情需要时突然变得阴森。如果水是真实模拟,这些美感调整就变得非常困难。假水反而给了美术团队最大的自由。
三、拆解游戏里的「假水」:开发者常用的视觉魔术
了解「为什么不做」之后,接着来看「怎么做」。游戏里的水,通常由好几个不同层面的技巧叠起来,每一层都负责一部分的「像」。这些技巧单独看都很普通,叠在一起就会让你觉得「哇,这是水」。
1. 表面视觉:法线贴图、滚动 UV 与顶点波浪
最基础的一层是水面表面的动态感。开发者不会真的让水面形状改变,而是用「法线贴图」——一张记录表面微小起伏方向的图——叠在水面上,并且让这张图不断滚动或轻微变形。这样光线打上去时,就会产生波光粼粼的效果。你看到的「波浪在动」,很多时候只是贴图在跑。
再进阶一点会用法线贴图叠加不同速度的图层,做出大小浪交错的层次感。更大型的波浪则用「顶点位移」:把水面网格的顶点上下推动,做出整体起伏。但注意,这只是视觉上的表面运动,水体本身并没有真正的质量守恒或动量传递。浪看起来在跑,水分子并没有真的那样流动。
2. 反射与折射的偷吃步:平面反射、屏幕空间反射、立方体贴图
水的反射是让人觉得「真」的关键之一,但游戏里的反射几乎都是近似值。常见手法有三种:
折射也一样。真实的水会弯曲光线,让你看到水下的东西位移、扭曲。游戏里通常用「屏幕空间折射」:把已经画好的画面,按照水面的法线贴图稍微偏移取样,看起来就像透过水看东西。这招便宜又有效,但一遇到岸边、角色一半在水里一半在水外,就容易露馅——因为它是拿整张画面去扭,而不是真的穿过水面看。
3. 深度与颜色:深度雾、吸收散射近似
水的颜色和透明度也是假的。真实的水会吸收不同波长的光,深处显得蓝绿、浅处显得透明,还会有悬浮物造成的浑浊感。游戏里通常用「深度」来控制这件事:计算水面到水下物体的距离,距离越远,水色越浓、越不透明。这就是为什么游戏里的浅滩看起来清澈、深海看起来幽暗——不是光真的被吸收了,是着色器按深度混了颜色。
很多游戏还会在水面下加上「体积雾」或「水下滤镜」,模拟光线在水里的散射。这些效果让水看起来有厚度,但其实只是一层覆盖在画面上的颜色渐变与噪点。玩家游泳时看到的朦胧感,多半来自这层滤镜,而不是真实的光线传播计算。
4. 互动反馈:触发器、粒子与预设动画
水跟角色、物件的互动,是假水最容易穿帮的地方,但也是最常被玩家忽略的地方。角色走进水里,通常触发的是「涟漪贴图动画」或「粒子特效」;船开过去,船尾的白色尾流是粒子系统喷出来的;东西掉进水里,溅起的水花是预先做好的动画。这些东西回应很快、成本很低、效果可控,但跟真实流体力学没有半点关系。
有些游戏会做得更细,例如让涟漪根据角色速度改变大小,或让水面有「浮力」把物体推上推下。但这些多半还是规则性的近似,不是真的在算水如何被排开、如何回流。你看到的水花四溅,本质上是一段设计好的表演。
四、经典案例:那些让你以为水在动的水
讲完技术,来看实际游戏。不同作品对水的处理方式差很多,有的追求写实、有的追求风格化,但共同点是:几乎都没有做全场景真实流体模拟。以下挑几个代表性案例,看看它们各自用了什么手法。
1. 开放世界的水:看起来辽阔,其实层层分级
大型开放世界游戏的水体,通常采用「分级处理」。远景海面用简单的平面加上滚动法线贴图,配上立方体贴图反射,成本极低;中景可能加上平面反射和更细的波浪;玩家真正靠近、会互动的区域才启用较高精度的效果。你在《原神》里看到的海面就是一个好例子:远处波光粼粼、颜色漂亮,但那些波浪主要是贴图与顶点动画,不是真的流体。角色渡水时的涟漪与水面动态,也是触发式的视觉反馈。
《侠盗猎车手5》的水也很有名,海面有不错的波浪与反射,但同样是多层近似堆叠出来的。它的强项在于整体氛围与光照整合,让水看起来「融入世界」,而不是真的在模拟海流。《塞尔达传说:旷野之息》则走风格化路线,水色干净、波浪规律,重点是让玩家一眼看懂深浅与可游泳范围,物理正确性完全不是目标。
2. 风格化与独立游戏的水:假得更明显,却更有味道
不是所有游戏都想装真。《ABZU》用水下光影与鱼群营造梦幻感,水本身是高度风格化的;《盗贼之海》的卡通海浪夸张又戏剧化,波浪的节奏与形状明显经过设计,为的是让船战好玩、视觉好读。这些作品的水「假」得很坦白,但玩家反而更享受,因为它们服务于体验,而不是追求物理正确。
反过来说,有些标榜真实水体的游戏,例如《深海迷航》,重点也不在流体模拟,而在水下生态、光照与压力感。它让你觉得水很真实,是因为声音、视野、生物与光影的整体配合,而不是因为真的在算水分子怎么流动。这也是游戏水体设计最常被误解的地方:真实感来自整体系感,不是来自物理引擎。
五、玩家如何一眼看穿「假水」?三个观察要点
知道原理之后,你可以开始用工程师的眼睛看游戏里的水。以下是几个最容易观察到的破绽,下次玩的时候不妨试试。
1. 看反射与折射的一致性
注意水面反射的东西,跟画面上实际存在的东西对不对得起来。如果反射是屏幕空间反射,你会看到画面边缘或镜头转动时,反射突然消失或拉伸。如果反射是立方体贴图,你可能会发现反射里的天空跟现在的天空不一样,或者反射内容不会随你的位置改变。折射也一样:角色半身入水时,水下那半身的扭曲常常不自然,因为那是拿整张画面偏移出来的,不是真的穿过水面看。
2. 看互动反馈的「重复感」
真实的水,每次互动都略有不同。假水常常会重复:同一个涟漪动画、同一组水花粒子、同一段尾流。你可以故意用不同速度、不同角度入水,看看水花是不是几乎一模一样。如果是,那大概是触发器或粒子系统,而不是即时流体反应。另一个破绽是「水花不回头」:物体落水后,水面很快恢复平静,没有真实流体会有的回流与震荡。
3. 看边界与流动的规律性
真实的水在岸边会有复杂的碎浪、回流、泡沫带。假水的岸边常常很「干净」:一条固定的泡沫线,加上规律的波浪动画。你也可以看水流方向是否一致、波纹是否总是朝同一边跑。很多游戏的水面流动其实是滚动贴图,看久了会发现浪永远往同一个方向跑,或者在不同区域之间突然切换模式。这些都是「画出来的水」的典型特征。
六、真实流体模拟在游戏里还有机会吗?
讲到这里,你可能会问:难道游戏永远只能用水贴图骗人吗?倒也不是。真实流体模拟在游戏里一直有在尝试,只是多半用在「小范围、高价值」的地方,而不是整片海洋。例如某些游戏用 GPU 计算来模拟小水坑、黏稠液体、可破坏的水体;也有研究用机器学习加速流体近似,试图在可接受的成本内做出更即时的反应。
近年也有一些技术走向「混合式」:大范围用视觉近似,小范围互动用简化模拟,再靠粒子与着色器补足细节。这种策略很务实,因为它承认了游戏不需要物理正确,只需要在玩家会注意到的地方「够真」。未来随著硬体进步,我们可能会看到更多即时的局部流体效果,但「整片海都真实模拟」在可见的未来仍然不现实。
更重要的是,越来越多开发者意识到:玩家要的从来不是物理正确,而是可信的体验。与其把预算砸在没人看得出来的流体计算,不如把水色、光影、音效、互动反馈整合好。这也是为什么很多「假水」游戏,玩起来比标榜真实水体的作品更有沉浸感。
七、结语:假水不是偷懒,是设计选择
游戏里的水,绝大多数时候都不是真的在模拟。它是法线贴图在滚动、是屏幕空间反射在取样、是深度雾在混色、是粒子系统在喷水花。这些技术听起来像「作弊」,但其实是游戏开发的核心精神:在有限资源下,做出最有说服力的体验。
下次你站在游戏海边,不妨换个角度看那片水。看看反射对不对、涟漪重不重复、岸边泡不泡沫。你会发现,那些让你感动的画面,背后是一层层精心设计的视觉魔术。而理解这些魔术,不会破坏沉浸感,反而会让你更佩服开发者——他们用一堆假的东西,让你看见了真的感动。