У меня есть пиксельный шейдер:
Код:
float fTime0_X;
sampler Flame;
sampler Noise;
float4 ps_main(float2 tex_coord : TEXCOORD0 ) : COLOR0
{
float3 coord;
coord.x = tex_coord.x;
coord.y = tex_coord.y + fTime0_X;
coord.z = 1;
float noisy = tex2D(Noise, coord);
float heat = noisy + tex_coord.y;
float4 flame = tex2D(Flame, heat);
return flame;
}
Скриншот следующий:
Текстура Flame:
Текстура Noise:
В этом пиксельном шейдере меня интересует вопрос, почему смешиваеться цвет и координаты:
Код:
float heat = noisy + tex_coord.y;
Я понимаю если смешивается "цвет+цвет" или "координата+координата", но как это "цвет+координата". Что это нам дает? Причем если заменить на следующий код:
Код:
float heat = noisy + tex_coord.x;
то текстура Flame поворачиваеться на 90 градусов, то есть огонь горит сверху вниз горит как и раньше, а текстура Flame наложена слева на право- вот скриншот:
Поэтому не пойму откуда форумула
Код:
float heat = noisy + tex_coord.x;
знает использую я tex_coord.y или использую tex_coord.x ? Если все равно результат float и координаты x(0,1) и y(0,1) значит огонь не должен менять ориентацию так как результат один float heat. Откуда формула знает о том использую я x или использую y текстурных координат? Но все что я понял что это одна текстура двигаеться сверху вниз (Noise) а другая (Flame) на нее просто накладываеться для создания оттенков огня . Но чисто математически я этого понять не могу - float heat = noisy + tex_coord.y.
Объясните пожалуйста, заранее благодарен.