Help with ripple effect in game Lurking

I was looking through some games made with Unity and found this game “Lurking”.

I am very curious as to how they were able to achieve the ripple effect from making noise.

Any insight would be much appreciated! Thanks~

Remind me this game
http://www.devilstuningfork.com/

I’m guessing they adapted a decal system or wrote a shader that could project the ripple effect in 3D space. I think it’s possible to use 3D textures and this could be an ideal way to draw the effect in a 3d space.

1 Like

Very cool effect. I hadn’t seen this one before. Thanks for sharing!

I managed to get a similar effect with a basic projection shader I found online, however I can’t make it ‘crawl’ up walls like it does in these games. As I expand the orthographic view on the projector to ‘grow’ the wave, it simply jumps to the top of walls, ergo the entire side of the wall is lit up.
Any ideas on how to make it ‘crawl’ up the walls instead?

Perhaps you could use an animated texture where the wave appears to grow, rather than altering your projector.

Hmm, maybe that’d work. Animated Textures are a strictly Unity Pro feature, right? Is a workaround for this possible, or would I need to get my hands on a pro version to test this?

EDIT:
After searching around some more I found this thread here on the forums.

Unfortunately, I’m not quite that savvy on shaders. If anyone could explain what he said, but even simpler, or with examples, that’d be awesome.

I’m still interested in exploring this other method with the animated texture as well though.

@Sezerza There are workarounds for animated textures in the free version of Unity. I’ve seen at least two different scripts for it, if I remember correctly. At least one of those two was definitely written in Javascript, but I’m pretty sure there weren’t too many lines of code and that it would be relatively easy to rewrite them in C# if necessary.

I don’t have links, but a quick query on your search engine of choice should turn up something along these lines.

You can try this, use invisible spheres in the center of the ripple and animate size, then calculate 3 points of the intersection with all surfaces and draw a procedural circle (with the 3 points in common) texture in a mask channel that show a second shader as glow.

1 Like

@Sezerza I believe that doing something along these lines would allow for collision checking.
Using animated textures and projectors would not allow it, as far as I know.

(Don’t know if you’d even want or need collision detection, but at least this might provide that option.)

Ahh, that sounds awesome. I’ll definitely try implementing that @Neoku .
However, wouldn’t you run into problems when the sphere hit the ceiling?

Thanks for so much response guys!

just a guess… its actually spheres that are being scaled up, it appears the way it does, because theyre using edge detect filter…
… dont know much, just a guess… seems like itd work… maybe not work amazingly though… dunno

This might help if you want to try the 3D texture approach - http://forum.unity3d.com/threads/unity-4-3d-textures-volumes.148605/

This can help you:

1 Like

Looks to me like a simple custom shader, where it calculates the distance from the pixel to the player, ie like a sphere, and then animates the radius of that sphere to move the curved lines outward.

Looks like some sort of edge shader.