I'm currently working on creating a reflection map for the water, and I'm using a clip plane so that I can only draw into the texture the geometry above the water.
Here's is my code:
D3DXPLANE refractionClipPlane;
D3DXVECTOR3 point(0.0f, 6.0f, 0.0f);
D3DXVECTOR3 normal(0.0f, 1.0f, 0.0f);
D3DXPlaneFromPointNormal(&refractionClipPlane,&point,&normal);
D3DXMATRIX inver;
D3DXMatrixInverse(&inver,0,&(mView*mProj));
D3DXMATRIX trans;
D3DXMatrixTranspose(&trans,&inver);
D3DXPLANE outRefraction;
D3DXPlaneTransform(&outRefraction,&refractionClipPlane,&trans);
refractionMap->beginScene(); //refraction map is a renderTarget
gd3dDevice->Clear(0, 0, D3DCLEAR_TARGET|D3DCLEAR_ZBUFFER, 0xff000000, 1.0f, 0);
gd3dDevice->SetClipPlane(0, outRefraction);
gd3dDevice->SetRenderState(D3DRS_CLIPPLANEENABLE, D3DCLIPPLANE0);
drawReflectedByWater(); //draw geometry
gd3dDevice->SetRenderState(D3DRS_CLIPPLANEENABLE,0);
refractionMap->endScene(); //render target ends
I have this problem, if I only move the camera's position DirectX draws the scene perfectly:
http://imageshack.us...neproblem1.jpg/
But if I change the camera look vector, for instance, if I aim the camera to the sky the clip plane moves along with te camera too:
[color=#282828][font=helvetica, arial, verdana, tahoma, sans-serif]
http://imageshack.us/photo/my-images/696/clipplaneproblem2.jpg/
[/font]As you can see from my code, I've taken into account that if you are not using the fixed pipeline the plane has to be in clipspace coordinates.
Anyone knows what can I do in order to avoid this problem (plane moving along with the camera)?