Заполните 2D площадь, связанную вершинами в XNA
Вопрос
Я изучаю XNA, полагаясь, и, как гласит титул, я пытаюсь увидеть, есть ли способ заполнить 2D области, которая определяется коллекцией вершин на плоскости. Я хочу заполнить цвет, а не на основе файлов текстурой.
Например, сделайте закругленный прямоугольник, вершины которого определяются четырьмя четвертью кружными вентиляторами треугольника. Вершины определяются путем создания коллекции треугольников, но треугольники не могут быть смежными.
Кроме того, я хотел бы заполнить его более одного цвета - то есть разделить связанную область на четыре вертикальных полоса и иметь каждый другой цвет. Вам не нужно предоставлять мне код, указывая на меня к ресурсам, будет иметь большое значение. Я могу быть удовольствительным с Google (который я попробовал сначала, но не потерпел неудачу).
Это так же много разведки в «Что подходит для XNA», так как это реализация ее. Быть довольно новым в XNA, я хочу также узнать, что следует и не должно быть сделано на вершине того, что может и не может быть сделано.
Решение
Не слишком много, но вот старт:
Заполнение цвета достигается с помощью шейдера. Учебники XNA Reimer на шейдерах пикселей это отличный ресурс по теме.
Вам необходимо рассчитать геометрию и создать буферы вершины, чтобы удерживать его. Обратите внимание, что вся векторная геометрия в XNA находится в 3D, но с помощью камеры, прикрепленной к плоскости, сможет моделировать 2D.
Чтобы добавить разные цвета на разные треугольники, которые вы в основном нужно группировать геометрию на отдельные буферы вершины. Затем, используя шейдер с color
Параметр для каждого буфера установите соответствующий цвет перед передачей буфера на графическое устройство. В качестве альтернативы вы можете использовать формат вершин, содержащий цветную информацию, что в основном позвольте вам назначить цвет для каждой вершины.