Jump to content
  • Advertisement
Sign in to follow this  
angelmu88

Clip plane problem

This topic is 2341 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi!
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)?

Share this post


Link to post
Share on other sites
Advertisement

Hi!
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...neproblem2.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)?



Ok, I solved it, it has to do with the graphic card, I had to reset de clipplane, here is the solution:
http://www.gamedev.net/topic/523062-setclipplane-and-nvidia-drivers/

Thanks!

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!