1
\$\begingroup\$

I've got an application written in D3D9 which will not write any values to the depth buffer, resulting in incorrect values for the depth test. Things I've checked so far:

  • D3DRS_ZENABLE, set to TRUE
  • D3DRS_ZWRITEENABLE, set to TRUE
  • D3DRS_ZFUNC, set to D3DCMP_LESSEQUAL
  • The depth buffer is definitely bound to the pipeline at the relevant time
  • The depth buffer was correctly cleared before use.

I've used PIX to confirm that all of these things occurred as expected. For example, if I clear the depth buffer to 0 instead of 1, then correctly nothing is drawn, and PIX confirms that all the pixels failed the depth test. But I've also used PIX to confirm that my submitted geometry does not write to the depth buffer and so is not correctly rendered.

Any other suggestions?

\$\endgroup\$

2 Answers 2

0
\$\begingroup\$

Make sure that your depth buffer is set up correctly in your present parameters. Check the depth range specified in your viewport.

\$\endgroup\$
0
\$\begingroup\$

Turns out that I didn't set the projection matrix in the fixed function pipeline- not something I thought was necessary when using a shader.

\$\endgroup\$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .