【发布时间】:2011-10-28 20:17:38
【问题描述】:
首先,我是 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);
我在这里可能做错了什么?
【问题讨论】:
标签: xna drawing vertex-shader