Why i can't change the depthbufferformat.
I update my engine to d3d2007,but when i change the depthbuffer format
form D3DFMT_D16 to D3DFMT_D24S8 use setting dialog,it looks no change.
even i Createdevice use D3DFMT_D16 and D3DFMT_D24S8,it get same result.
directx version :4.09.0000.0904
videovard :NV 8600GTS
video driver:2008.8.12
Is it a bug of d3d2007,it works fine in the oldversion.
[Edited by - 88er on December 22, 2008 11:08:34 PM]
Quote:Original post by 88erWhat "same result"? What setting dialog are you talking about? Are you calling IDirect3D9::CheckDepthStencilMatch? NVidia cards frequently require that the depth buffer and colour buffer are the same bit depth.
I update my engine to d3d2007,but when i change the depthbuffer format
form D3DFMT_D16 to D3DFMT_D24S8 use setting dialog,it looks no change.
even i Createdevice use D3DFMT_D16 and D3DFMT_D24S8,it get same result.
The setting dialog like d3dsample use F2 to Change device.
my application works fine in NV 6600GT,someone side nv8 can't set depthbuffer bit.
my application works fine in NV 6600GT,someone side nv8 can't set depthbuffer bit.
Quote:Original post by 88erDefine "can't set depthbuffer bit". What happens when you try?
The setting dialog like d3dsample use F2 to Change device.
my application works fine in NV 6600GT,someone side nv8 can't set depthbuffer bit.
I think nothing happen and no error report.
The picture quality hadn't imporved from D3DFMT_D16 to D3DFMT_D24S8,
no change happen.
sorry for my bad english and thanks anyway.
The picture quality hadn't imporved from D3DFMT_D16 to D3DFMT_D24S8,
no change happen.
sorry for my bad english and thanks anyway.
Quote:Original post by 88erWhy would you expect to see an improvement? The only thing increasing the depth buffer precision will do is possibly fix any existing issues. It won't make the image any clearer or sharper unless there's problems with it already.
I think nothing happen and no error report.
The picture quality hadn't imporved from D3DFMT_D16 to D3DFMT_D24S8,
no change happen.
sorry for my bad english and thanks anyway.
Are there problems with the image currently? If so, what are you setting your near and far clip planes to in your projection matrix (Hint: Near clip must be > 0, and preferably > 0.1 and far clip shouln't be too far, <= 1000.0 for a 16-bit depth buffer)
when two primitives have similar values in the z-buffer cause z-fighting,
it can be solved by set the depthbuffer to D3DFMT_D24S8 in nv6600gt.
But now,in nv8600gt,the depthbuffer seems can't be changed by my application.
Depthbuffer is fixed to 32bits.
In nvidia forums,someone side "Whilst the Geforce is capable of 32-bit color, the Z-Buffer is limited to 24-bit".
it can be solved by set the depthbuffer to D3DFMT_D24S8 in nv6600gt.
But now,in nv8600gt,the depthbuffer seems can't be changed by my application.
Depthbuffer is fixed to 32bits.
In nvidia forums,someone side "Whilst the Geforce is capable of 32-bit color, the Z-Buffer is limited to 24-bit".
Quote:Original post by 88erIf you look at the DirectX Caps Viewer (Start menu -> DirectX SDK -> Utilities), in DirectX Graphics Adapters -> [Your adapter name] -> D3D Device Types -> HAL -> Adapter Formats -> [Your current adapter format] -> Depth/Stencil Formats, what formats do you see there? Those are the only formats it's valid to use in your current adapter format.
when two primitives have similar values in the z-buffer cause z-fighting,
it can be solved by set the depthbuffer to D3DFMT_D24S8 in nv6600gt.
But now,in nv8600gt,the depthbuffer seems can't be changed by my application.
Depthbuffer is fixed to 32bits.
In nvidia forums,someone side "Whilst the Geforce is capable of 32-bit color, the Z-Buffer is limited to 24-bit".
If you put a breakpoint around somewhere, is the new depth buffer format applied?
Dx caps viewer lists D3DFMT_D24S8\D3DFMT_D24X8\D3DFMT_D16\D3DFMT_D32F_LOCKABLE,
I can CreateDevice use every value above(for depthformat) without any error.
But the result looks no different.
I can CreateDevice use every value above(for depthformat) without any error.
But the result looks no different.
Quote:Original post by 88erIf CreateDevice() succeeds with all of those values, then it's almost certain that the device is using the new depth buffer format.
Dx caps viewer lists D3DFMT_D24S8\D3DFMT_D24X8\D3DFMT_D16\D3DFMT_D32F_LOCKABLE,
I can CreateDevice use every value above(for depthformat) without any error.
But the result looks no different.
Why do you expect anything to change? What does your projection matrix setup look like? Are you sure that what you're seeing is a problem with the depth buffer precision? Can we get a screenshot?
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement