Aquarium effects

I blend a texture on a transparent card to make the rays instead:

I’ve also created a low polygon rock. However, I am not able to cast the water caustics on it. I am able to do it on other nodes, but not the rock. The pseudo code is like this:

        rock = loader.loadModel("models/rock10-2")
        rock.reparentTo(render)
        rock.setPos(0,0,0)
        rock.setScale(5,4,3)
        rock.setHpr(20,0,0)
        rock.setShaderOff()
        self.waterts = TextureStage('water')
        #self.waterts.setMode(TextureStage.MAdd)
        self.waterts.setMode(TextureStage.MBlend)
        self.waterts.setColor(Vec4(0.9, 0.9, 0.9, 1))

        rock.setTexture(self.waterts , texCaustics)

Any ideas ? Thank you !