Входные и выходные данные пиксельного шейдера
В вершинный шейдер передаются две вещи: цвет и координаты текстуры. Обе — для пиксела.
ПРИМЕЧАНИЕ
Координаты текстуры для пиксела это просто пара координат (u, v), определяющая тексел текстуры, который будет наложен на данный пиксел. Direct3D перед входом в пиксельный шейдер вычисляет цвет и координаты текстуры для каждого пиксела на основании цветов и координат текстуры вершин. Количество цветов и координат текстур, передаваемых в пиксельный шейдер зависит от того, сколько цветов и координат текстур возвращает вершинный шейдер. Например, если вершинный шейдер возвращает два цвета и три набора координат текстур, то Direct3D вычислит для каждого пикселя два цвета и три набора координат текстуры, которые и передаст в пиксельный шейдер. Мы отображаем переданные цвета и координаты текстур на переменные шейдера с помощью синтаксиса с двоеточием. Для рассматриваемого примера мы могли бы написать:
struct PS_INPUT { vector c0 : COLOR0; vector c1 : COLOR1; float2 t0 : TEXCOORD0; float2 t1 : TEXCOORD1; float2 t2 : TEXCOORD2; };
Возвращает пиксельный шейдер единственное вычисленное значение цвета пикселя:
struct PS_OUTPUT { vector finalPixelColor : COLOR0; };