You are an experienced programmer and have a problem with the engine, shaders, or advanced effects? Here you'll get answers. No questions about C++ programming or topics which are answered in the tutorials!
OpenGL is good but D3D9 has a problem, Edge broken!!
I wanna using D3D9.
I tried changing my Display setting, Excuting both ATI and nVidia card.
but still edge is broken, using D3D9.
my D3D9 version is 9.0c
The problem you are having is z-fighting, simply put your z-buffer does not have enough precision to decide what needs to be drawn in front or behind correctly. Obviously to help you would want the depth buffer to be as big as possible (24 rather than 16-bit) giving you more precision. I'm not sure why you don't get this problem in OGL, as far as I know Irrlicht will first ry to create a 24-bit depth buffer before resorting to a 16-bit for DX - I don't know what it does with OpenGL.
You can play around with the near and far clipping planes as the ratio of their values effects where the precision is 'used' in your depth buffer.
For an in-depth explanation the post by LeGreg at gamedev.net is well worth a look
DirectX in Irrlicht uses a 16bit depth buffer, this will be changed in the next release, though. You can change the source code on your own in the meantime, search for D16 and change to D24X8 in CD3D?Driver.cpp