注册 登录
  • 动态
  • 推荐
  • 游戏
  • 分享链接 new
  • 回答问题
  • 发现
  • 野蔷薇
  • 视频

XNan

回答了问题 更新于 2017-01-19 17:27:41

请问这些2d游戏里的水面倒影效果是如何实现的?

那就试答一波吧!

说说用shader的方式吧。

一、确定一个分界线,也就是真实物体与相对应的镜面物体之间的分隔线,主要用来确定物体应该映射到镜面的什么位置上,比如真实物体距离分界线越高,它的倒影距离分界线就越低。

二、通过正常渲染,先把真实场景中的物体渲染出来。

三、然后写个shader;这个shader大概思路是,先将物体的贴图的UV坐标Y轴翻转(说人话的意思就是把贴图像素上下颠倒),然后根据上面提到的分界线,计算出物体的每个像素的坐标值应该向下偏移多少。以题主提到的Kingdoms来说,它在Y轴方向还做了压扁的效果,使得看上去有景深,也可以不做。所有物体都做了镜面映射之后,大概的效果就出来了。

然后还有水波和Y轴方向向下的模糊效果。

水波效果可以有很多方法实现,比如噪波贴图;扫描线偏移算法;径向波形等都可以。

最后再加上Y轴方向向下的透明度递增,就可以有越往下越模糊的感觉。

著作权归作者所有。商业转载请联系作者获得授权,非商业转载务必附上原作者名称,注明来自「奶牛关」并给出原文链接。不得以任何形式演绎或修改。

{{answer_voters_count}}人赞同

...

{{question_follower_count}} 个玩家关注

...

回答被以下收藏夹收录

目录

    评论 0

    登录奶牛关账号即可参与讨论
    登录 / 注册

    该问题的其他回答