如何在远距离渲染地形时渲染曲线的水平线

对于视距较远的游戏,当你飞得很高,地平线平坦的时候,看起来有点奇怪。

那么,当我飞得高高的时候,我怎么能做出一个碎屑/弯曲的效果呢? 这可以在着色器中完成吗?

如果你不确定我是什么意思,那么这里有一张图片: 在这里输入图像描述

一个更清晰的例子,虽然它可能被鱼眼捕获。 在这里输入图像描述

这个最好的办法是什么? 我相信你可以旋转和移动(使用transformationMatrix)所有的顶点一点点根据他们是多远的相机。 但是,这是否会产生预期的效果,而且是否过于广泛? 或者,也许你知道另一种方式来做到这一点。

一个可能的解决scheme是实际上曲线地形模型。 如果你的游戏/物理引擎不支持这个角色(我假设有一个角色)在地面上,那么你可以有两个模型,一个有曲率,一个没有,你可以根据某种types的高度阈值(假定地球的曲率在50,000英尺处变得可见)。

通过在投影matrix中增大视野,可以很容易地实现第二张图片的曲线。 尝试180度左右的视野。