我正在编写接收预转换顶点并将它们显示在屏幕上的小型应用程序。
顶点的 FVF 定义为(我无法更改)
#define MY_FVF D3DFVF_XYZRHW | D3DFVF_DIFFUSE | D3DFVF_SPECULAR | D3DFVF_TEX1
Z 缓冲区是通过 D3DPRESENT_PARAMETERS 的字段创建的(这是可变的)
d3dpp.EnableAutoDepthStencil = TRUE;
d3dpp.AutoDepthStencilFormat = D3DFMT_D24S8;
问题是我得到了非常短的远剪裁平面(每个网格都被剪裁在距相机 1.0f 的位置)。我不能使用矩阵投影(正如我所说,我已经得到了预变换的顶点)。有没有办法设置深度缓冲区限制?或者有没有其他方法可以在预变换的顶点上使用长远裁剪平面的 z 缓冲区?