大多数小型项目中的水效果可能只需要花一天时间。滚动正常地图,蓝调,完成。并且你总是能告诉:表面像带轮子一样滑动,或者泡沫线随着摄像机转动而漂移,所有东西都会消散到软的阿尔法糊中,而不是有形的。我的私人项目基本上是一个河流,所以我给了水四天时间。其中一个用于原型,三个用于让它不那么糟糕。这里的所有东西都是基于过程的,不涉及任何纹理。从外观开始,因为我想在承诺游戏设计之前感觉到它。最喜欢的时刻是一个错误。在一个地方,表面环破碎成漂浮的碎片,因为两个系统意外地碰撞了,结果比我规划的任何东西都好。保留了它……其余部分,大致按照我战斗的顺序:带轮子的效果。一个滚动的噪声层总是被读作移动的纹理。两个滚动的层相互抵消了这一点,因为你看到的就是它们之间的干扰,而干扰没有单一的方向。游泳泡沫线。这是一个真正的陷阱。屏幕空间深度将你的岸线绑定到摄像机上,所以它会随着你移动而滑动。重建河床的位置并测量垂直距离到它而不是给你一个属于世界的深度值,而不是视图。每个边缘都立即停止了。阿尔法糊。淡化东西是简单的方法,但总是看起来像雾。相反,泡沫、光纹和条纹共享一个难以捉摸的切片,随着它们消失而缩小和分裂。同一个阈值在整个河流中使用,所以整个河流在视觉语言中死去。石头。每个石头都有一个环在表面上,靠近的石头通过使用一个有符号的距离场合并成一个单独的轮廓,所以一个群落读作一个形状而不是三个重叠的圆圈。波浪。两个Gerstner波通过网格滚动,一小段浮力脚本在CPU上运行相同的数学。这个部分我会推荐给任何人:因为两边评估相同的函数,所以 canoe 正确地乘坐你看到的波浪,没有猜测和偏差。颜色区域改变整个河流的气氛,使你可以通过它们划船,这是四天工作中最便宜的大胜利。好奇别人对泡沫线的解决方案。深度重建是我的解决方案,但我怀疑这不是唯一的方法。