深度偏移用来解决共面情况下出现闪烁的问题
如果有两个平面共面,在绘制平面1之前设定一个深度偏移值(-1.0f 到 1.0f 之间)
SetRenderState (D3DRS_SLOPESCALEDEPTHBIAS, F2DW(1));
SetRenderState (D3DRS_DEPTHBIAS, F2DW(0));
然后绘制平面1,设置另一个深度偏移值
SetRenderState (D3DRS_SLOPESCALEDEPTHBIAS, F2DW(0));
SetRenderState (D3DRS_DEPTHBIAS, F2DW(0));
绘制平面2
D3DRS_DEPTHBIAS 是固定的偏移
D3DRS_SLOPESCALEDEPTHBIAS 这个是和面的倾斜度有关的偏移
F2DW函数如下:
inline DWORD F2DW(float f) { return *((DWORD*) &f); }