Jump to content
  • Advertisement
Sign in to follow this  
toglia3d

Very imprecise z buffer testing in self occluding mesh created on runtime

This topic is 2049 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

Hello!

So, I'm doing a tree like mesh generator using Directx 9 with vertex and index buffer objects and I'm getting terrible z buffer testing with it. I'm not even sure what this is related too, maybe someone can point out where to start tweaking?

28k207r.jpg


I leave some code that might be relevant to the viewer:

[source lang="cpp"]D3DDISPLAYMODE d3ddm;
g_pD3D->GetAdapterDisplayMode( D3DADAPTER_DEFAULT, &d3ddm );
g_d3dpp.Windowed = TRUE;
g_d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
g_d3dpp.MultiSampleType = D3DMULTISAMPLE_8_SAMPLES;
g_d3dpp.BackBufferFormat = d3ddm.Format;
g_d3dpp.EnableAutoDepthStencil = TRUE;
g_d3dpp.AutoDepthStencilFormat = D3DFMT_D24S8;
g_d3dpp.PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE;[/source]


AutoDepthStencilFormat seems to be very relevant but i cant go higher than D24 or my app crashes in stuff like:
[source lang="cpp"]d3dDevice->SetRenderState(D3DRS_ZENABLE,true);[/source]

I have these two guys enabled:
[source lang="cpp"]d3dDevice->SetRenderState(D3DRS_ZENABLE,true);
d3dDevice->SetRenderState(D3DRS_ZWRITEENABLE,true);[/source]
I have also tried tweeking the near and far planes of my frustrum in:
[source lang="cpp"]D3DXMatrixPerspectiveFovRH[/source]
But I don't getter better results. Don't know where else to tweak.

Thanks for your help. Edited by toglia3d

Share this post


Link to post
Share on other sites
Advertisement
Right now the near plane is in 0.0001f and far is in 200.0f, but I've tried lowering the far plane to 30, lower than that I don't see the mesh. Lol

Share this post


Link to post
Share on other sites
0.0001 is a very very small near plane value!
you have lost nearly all precision at z = 40.0 with 24bits

try znear = 0.1?

you probably want to read this:
http://www.sjbaker.org/steve/omniv/love_your_z_buffer.html
there's also a nifty calculator there!
Edited by Kaptein

Share this post


Link to post
Share on other sites
NOOOOOO! I can't believe this. That solved it. I was so focused on the far plane for some reason I totally forgot about the near plane. Now I know... Thanks you! Started looking way better.

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!