我需要使用 DrawPrimitiveUP 绘制线条,我需要它使用我定义的结构中的颜色值。
代码中的重要片段:
struct PointVertexColor
{
float x, y, z; // Position
DWORD color; //Colour
};
#define D3DFVF_PointVertexColor ( D3DFVF_XYZ | D3DFVF_DIFFUSE )
PointVertexColor myLines[1024];
device->DrawPrimitiveUP( D3DPT_LINELIST, myLinesCount, myLines, sizeof( PointVertexColor ) );
我有一个点光源集,启用了照明和环境照明。
问题是,如果我设置 Material ,它会使用 Material 颜色,而不是我的数据结构中的颜色。我如何设置它以使其使用 DWORD 颜色,然后将其设置回使用 Material 以供以后的代码使用?
最佳答案
如果您知道的话,问题就很明显了——您不能同时使用顶点颜色和光照。解决方案是禁用该部分代码的照明,然后稍后重新启用它。
希望对遇到同样问题的人有所帮助。
关于c++ - 我如何使用 DrawPrimitiveUP 以便它使用我定义的结构中的颜色值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3080377/