Прежде всего, я новичок в XNA и в том, как работает GPU и как он взаимодействует с API XNA (или DirectX).
У меня есть многоугольник для рисования с использованием 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);
Что я, возможно, делаю здесь неправильно?