Unity音乐喷泉效果

本文参考了该文,其素材也取之于该处

效果

实现效果(根据音乐的高低会产生不同的波纹):

可以观看视频来获得更好的体验。

波纹的实现

先模拟出如下效果:

通过鼠标的点击,产生一个扩散的圆圈。

如上图所示,这个效果主要通过Displatment Shader实现,首先创建Shader,Matrial,在Scene视图尝试我们的想法。
Shader可参考,Unity官网教程

这样我们就可以通过改变DispTexture这张贴图的圆环就能产生大小不同的隆起效果,再通过每帧刷新的方式继而可以参数波纹扩散的效果。
为了得到具有大小不同的DispTexture,首先我们制作一张黑色的贴图,并把白色的圆环画在上面,通过代码来改变白色圆环的大小。
这里给出鼠标坐标转为贴图的坐标代码

if(Input.GetMouseButtonDown(0)) {
    RaycastHit hit;
    var ray = Camera.main.ScreenPointToRay(Input.mousePosition);
    if(Physics.Raycast(ray, out hit)) {
        var pixelUV = hit.textureCoord;
        pixelUV.x *= 64; // 64纹理宽
        pixelUV.y *= 64; // 64纹理高
        CreateWave(pixelUV);
    }
}
posted @ 2017-05-20 23:03  matrixcloud  阅读(1881)  评论(0)    收藏  举报