Заполнить 2D-область, связанную вершинами в XNA - PullRequest
0 голосов
/ 16 мая 2010

Я изучаю XNA, и, как говорится в заголовке, я пытаюсь увидеть, есть ли способ заполнить 2D-область, которая определяется набором вершин на плоскости. Я хочу заполнить цветом, а не текстурой на основе файла.

Для примера возьмем прямоугольник со скругленными углами, вершины которого определены четырьмя веерными треугольниками. Вершины определяются путем построения набора треугольников, но треугольники могут не быть смежными.

Кроме того, я хотел бы заполнить его более чем одним цветом - то есть разделить связанную область на четыре вертикальные полосы и иметь каждый цвет. Вам не нужно предоставлять мне код, указание на ресурсы очень поможет. Я могу быть полезен с Google (который я попробовал сначала, но с треском провалился).

Это столько же исследование «что подходит для XNA», сколько и его реализация. Будучи довольно новым для XNA, я хочу также узнать, что следует и чего не следует делать, помимо того, что можно и нельзя делать.

1 Ответ

1 голос
/ 16 мая 2010

Не слишком много, но вот начало:

Цветовая заливка выполняется с помощью шейдера. Учебники Reimer по XNA для пиксельных шейдеров - отличный ресурс по теме.

Вам нужно вычислить геометрию и построить буферы вершин для ее удержания. Обратите внимание, что вся векторная геометрия в XNA представлена ​​в 3D, но использование камеры, закрепленной на плоскости, будет имитировать 2D.

Чтобы добавить разные цвета в разные треугольники, вам нужно сгруппировать геометрию в отдельные вершинные буферы. Затем, используя шейдер с параметром color, для каждого буфера, установите соответствующий цвет перед передачей буфера на графическое устройство. В качестве альтернативы вы можете использовать формат вершины, содержащий информацию о цвете , который в основном позволяет назначать цвет каждой вершине.

...