ПрограммированиеФорумГрафика

Вопрос по шейдеру на HLSL (DX9)

#0
21:32, 27 мар 2010

Понадобился простой шейдер, выполняющий освещение модели от двух направленных источников плюс отекстуривание, если задана текстура
Написал по документации следующее:

//...

Шейдер компилируется без единого варнинга, но после его применения объект становится невидимым (тестировал в FX Composer). Подскажите, где я ошибся?

#1
22:39, 27 мар 2010

Нужно наверное композеру сказать, за что какая матрица отвечает(я с ним не работал, но поидее это как минимум должны указать). Если композеру непонятны слова WORLD, VIEW, PROJECTION, то возможно там используется другая семантика.

Второе - немного математики:
float3*Matrix(3x3) - float3 + только поповрот и масштаб
float4*Matrix(4x4)-float4 + поворот, масштаб, перенос
Поэтому

 //Вычисляем позицию по мировой матрице
    float4 WorldPosition = mul(float4(Input.Position,1), World);
#2
23:32, 27 мар 2010

Точно, все дело было в этом моменте

mul(float4(Input.Position,1), World);

Огромное спасибо! :)

ПрограммированиеФорумГрафика

Тема в архиве.