Hi all I need to create a full screen ripple effect, like a shockwave emitting from the middle of the screen outwards which displaces whatever is in the view over a second or two. Almost like a single rain drop hitting a water surface but its the view instead. This is a visual effect only, it doesn't need to affect any game objects physically. In 3DSMax I would animate a torus mesh that scales up from some point on the screen then use that rendered sequence as an animated displacement texture as a post process effect. But I can't quite grasp how to create this in Unity? and with reading how full screen effects use the shader language fear this is beyond me. Any help please? Thanks Geoff
Check out the project in this post: http://forum.unity3d.com/viewtopic.php?t=4685 It demonstrates how to create displacement around a fire. You could use this same technique for a shockwave. Basically, it involves replacing the normalmapped particles by your scaling torus (with a normal map texture) and then aligning the display quad with the floor.
Hi Thanks for the link, looks great. If this technique can be combined with an image based shader effect rather than requiring a gameobject then that would be perfect. Geoff
If the problem is the quad intersecting with objects, you could render it without ZTest and in the overlay render queue to make sure the effect is visible everywhere. If you need it to be an image effect for another reason (one that cannot be fixed by simple shader tweaks) you'll probably have some work to do to get it working. I don't know of any example projects that implement it as image effect, so you may have to write the whole thing yourself.
Hi Aye, I didn't think it existed and was hoping for a shader writer to have a crack at it. I am more of a 3D Artist than a programmer so find this area quite challenging. Would it be complex for a shader to take a normal map from a renderTexture and apply it as an Image based displace effect with controls for displace strength and center point. Lots of different effects could be produced from this one shader that also has the bonus of being independent of camera motion. Rain running down the camera lens The ripple effect I am after Cracking screens Heat haze/shimmer Pin Cushion kind of warp effects Dented, pitted view If nobody is interested in writing such a shader maybe I could find the source for Singularity Bomb which produces a nice ripple effect. Cheers Geoff
Yes, that should be possible, but I believe you can achieve the exact same effect using the shaders from the project I linked, by rendering the quad directly in front of the camera (with ZTest disabled and in the overlay queue to force it to be rendered last). There may be a performance difference between the two (I don't know how GrabPass compares to image effects in terms of performance), but I don't think there will be much difference visually.
Found this refraction image effect one on the Wiki which might also do what I want without using its animated UV features. http://www.unifycommunity.com/wiki/index.php?title=RefractionEffect