Как переопределить интерполяцию цвета в XNA?

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


person Shital Shah    schedule 16.11.2012    source источник


Ответы (1)


Интерполяция - это базовое поведение шейдера, этого нельзя избежать. если вы отправляете данные вершины в пиксельный шейдер, данные трех вершин, образующих треугольник, будут интерполированы.

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

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

person Blau    schedule 16.11.2012