在DX9中渲染顶点

时间:2014-02-19 05:25:46

标签: directx directx-9

如果我使用像:

这样的顶点结构
struct ColorVertex {
    float x, y, z, rhw;
    DWORD color;    //32bit
};

我可以在为顶点创建顶点缓冲区后绘制基元。

但对于没有rhw的结构,我必须执行以下步骤:

  • 创建顶点缓冲区并复制顶点数据
  • SetRenderState
  • 设置渲染状态
  • 创建投影矩阵
  • 创建一个世界矩阵
  • 然后绘制基元

方式更复杂。如果忽略那里的任何一步,我什么都得不到。那么,上面的程序是第二个结构所必需的吗?还需要其他吗?我没有看到一个视口转换矩阵,是否有必要?并且没有设置默认渲染状态?

更新

不,那些没有必要,我看不到原语仅仅因为我将z-aix设置为0.在D3D中,似乎默认情况下投影窗口设置为z = 1。但我不确定,请注意。

问题是第一个结构,我的数据是:

 CUSTOMVERTEX Vertices[] =
    {
        { 150.0f,  50.0f, 0.5f, 1.0f, 0xffff0000, }, // x, y, z, rhw, color
        { 250.0f, 250.0f, 0.5f, 1.0f, 0xff00ff00, },
        {  50.0f, 250.0f, 0.5f, 1.0f, 0xff00ffff, },
    };

我仍然可以看到没有任何变换和渲染状态设置的图形。

0 个答案:

没有答案