如果我使用像:
这样的顶点结构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, },
};
我仍然可以看到没有任何变换和渲染状态设置的图形。