首先,我对 XNA 和 GPU 的工作方式以及它如何与 XNA(或 DirectX)API 协作是新手。
我有一个要使用 SpriteBatch 绘制的多边形。我正在对多边形进行三角剖分,并创建一个VertexPositionTexture
数组来保存顶点。我设置了顶点(为了简单起见,将纹理偏移向量设置为零),并尝试绘制图元,但出现此错误:
The current vertex declaration does not include all the elements required by the current vertex shader. Color0 is missing.
这是我的代码,我从三角测量中仔细检查了我的向量,它们很好:
VertexPositionTexture[] vertices = new VertexPositionTexture[triangulationResult.Count * 3];
int ctr = 0;
foreach (var item in triangulationResult)
{
foreach (var point in item.Vertices)
{
vertices[ctr++] = new VertexPositionTexture(new Vector3(point.X, point.Y, 0), Vector2.Zero);
}
}
sb.GraphicsDevice.DrawUserPrimitives<VertexPositionTexture>(PrimitiveType.TriangleList, vertices, 0, triangulationResult.Count);
我在这里可能做错了什么?