Как получить правильный тип ввода координат текстуры в вершинном шейдере в DX9 - PullRequest
0 голосов
/ 09 октября 2011

Вот две версии ввода вершинного шейдера HLSL

struct VS_INPUTS_0 { float3 Поз: ПОЗИЦИЯ; float2 Tex0: TEXCOORD0; }

struct VS_INPUTS_1 { float3 Поз: ПОЗИЦИЯ; float3 Tex0: TEXCOORD0; }

Единственная разница - это float2 и float3 из Tex0. Существует ли API DX9 для получения правильного типа Tex0, чтобы указать, является ли тип Tex0 float2 или float3?

1 Ответ

1 голос
/ 09 октября 2011

Для DX9, насколько я знаю, DX9 автоматически исправляет ваши шейдеры. То есть, если ваш пиксельный шейдер ожидает float2, а ваш вершинный шейдер предоставляет float3, он все равно будет работать. В DirectX10 / 11 вы можете использовать отражение шейдера, чтобы запросить скомпилированный шейдер и выяснить, что он ожидает.

Вопрос: что вы имеете в виду под «правильным типом»? Это полностью зависит от вашего пиксельного шейдера, одного вершинного шейдера недостаточно для принятия решения.

...