I managed to using pbuffer to take screen shot and save to a tga file according to the camera’s position.
So I implement CreateReflectionPlane(&camera);CreateRefractionPlane(&camera);
two functions for rendering reflection and refraction texture for water rendering, i test it , it works.
However, it seems in my shader i can’t bind these two pbuffer textures.
here is my rendering function:

FBO is at least supported on DX9 class hardware (aka GeForce FX, Radeon 9500 and later). These are the same hardware which first support GLSL. So Jan is right, you should use FBO instead of pbuffers because it’s deprecated (and also because it’s much easier :D).