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?
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.
Very imprecise z buffer testing in self occluding mesh created on runtime
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
Oh I forgot! I'm using shaders. Would have to try with the fixed pipeline to see if it gets better.
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!
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!
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement