代码按要求在这里:
void MakeTeapotRed()
{
D3DXCreateTeapot(Device, &Teapot, 0);
}
那么如何改变茶壶的顶点颜色呢?如果你的思维材料,我已经知道了,我只需要知道颜色顶点,这应该比材料简单得多。我可以使用顶点缓冲区和索引缓冲区手动布局的几何图形来做到这一点,你如何将它应用于已经填写了那些 VB 和 IB 信息的网格?
class ColorVertex
{
public:
ColorVertex(){}
ColorVertex(float x, float y, float z, D3DCOLOR color)
{
m_x = x;
m_y = y;
m_z = z;
m_color = color;
}
float m_x, m_y, m_z; // 3d coordinates
D3DCOLOR m_color;
static const DWORD FVF;
};
const DWORD ColorVertex::FVF = D3DFVF_XYZ | D3DFVF_DIFFUSE;
我刚刚发布的代码是名为 ColorVertex 的 Vertex 信息类。如您所见,代码是为顶点颜色设置的,不需要或必须没有灯光才能正常工作的颜色,如 FVF = D3DFVF_XYZ | D3DFVF_DIFFUSE。
同样,人们似乎很难理解这个问题,我需要更新顶点的颜色以包含颜色,例如可以通过 D3DCreate[objects] 创建的对象,如茶壶、球体、网格。D3DCreateTeapot(参数的东西)。请逐行布局代码,我是directx的菜鸟,而不是c ++。