I have been looking for a 2D reflective water shader for some time and was delighted to see that this tutorial was posted on YouTube to create just that:

https://www.youtube.com/watch?v=wPr5PvSgxFo

I’ve had a go at implementing it and have got the reflective water rendering. It’s very “Kingdom: Two Crowns” like when spread across the full width of the scene.

However, as you can see from the image above, I’ve drawn a pond (as a separate Sprite2D) and I’ve applied the water shader to the pond. It’s done that, but draws the water as a rectangle.

Is there a way to apply this shader to the Sprite2D, but conform to the actual sprite (only the light blue), rather than as a rectangle?

  • parpol@programming.dev
    link
    fedilink
    arrow-up
    8
    ·
    edit-2
    5 months ago

    I’m typing the from my phone and can’t double check on my computer.

    In the fragment shader, get the texture of the white puddle, and the UV of the puddle texture, then get the pixel color of this puddle texture using the same method as the color for the mirror effect was gotten except don’t reverse the V coords. With this color, multiply only the alpha channel into the final color’s alpha channel.