Заполните 2D площадь, связанную вершинами в XNA

StackOverflow https://stackoverflow.com/questions/2841745

  •  27-09-2019
  •  | 
  •  

Вопрос

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

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

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

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

Это было полезно?

Решение

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top