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

1 条评论


  • 30

    XNan

    火猫Yoge连眉大侠 等 30人赞同

    那就试答一波吧!

    说说用shader的方式吧。

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

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

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

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

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

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

    更新于 2017-01-19 17:27:41 0 条评论


  • 0

    方可慢一介代码佬

    基本思路:RTT,然后对RTT做一个后期。

    发布于 2018-03-02 17:16:56 0 条评论


  • 0

    64乘64

    镜像=压缩+引擎自带效果,我脑补的方法,不代表适用

    更新于 2017-01-19 17:07:19 0 条评论

  • 登录奶牛关账号即可参与讨论

{{question['follower_count']}} 个玩家关注

...

相关元素

相关问题

如何 0 基础开始快速学习和制作游戏音乐、音效?

123人关注 10个回答

类似微信《跳一跳》这样的游戏该如何识别真人玩家和外挂?

2人关注 1个回答

有多少大佬会把游戏放到github上?

6人关注 6个回答