1
votes

I'm currently working on a water rendering project with XNA (DirectX9) and I spend a lot of time on a problem that I don't understand.

In my project, I render a terrain and an horizontal plane that represent the water. I'm currently trying to create the refractive texture that I will apply to this plane. To do that, I used a render target in which I render the part of the terrain that is under the water plane (clipping => into my HLSL file, during pixel shader operation). I transform this render target into a texture that I apply directly on the water plane.

The result that I would like to have is exactly the same than if I didn't draw the water plane, I just want to see the terrain that is under the water (no light beam deviation for the moment). But for now, I have a very strange result. I record some video to show you, it's better than any explanations: http://www.youtube.com/watch?v=XGesGvEnAEg

Here is the code of the HLSL file of refraction: https://gist.github.com/Noxalus/8213296

Do you know from where the problem come from?

Thanks in advance for your help!

1

1 Answers

0
votes

Could be wrong but, looks to me like it's only rendered once & then reused? (looks transformed when you move around with the blue water plane, not refreshed)?

Are you sure you're updating the texture you pass to the refraction shader every frame?