Сейчас делаю игрушку-скролл шутер. Появились трудности с выводом теней.
На данный момент тени от спрайтов вывожу следующим образом:
void enemy_air_shadow_draw()//рисование тени от воздушных юнитов
{
glColor4f(0,0,0,0.5);
glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
for(i=0; i < enemy_max; i++)
{
if (enemy[i].air==1)
{
glBindTexture(GL_TEXTURE_2D,enemy_texture[enemy[i].texture]);
DrawTXT (enemy[i].x*grid_DX+enemy_move_x[i]+x_cam+0.2*(enemy[i].x*grid_DX+enemy_move_x[i]-win_DX/2),
enemy[i].y*grid_DY+enemy_move_y[i]+y_cam+40,
enemy[i].dx,
enemy[i].dy,
0,1);
}
}
glColor4f(1,1,1,1);
glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
}
Но здесь есть ряд проблем: тени выводятся на все элементы уровня и задний фон, а также они смешиваються, становясь темнее.
Как сделать так, чтобы тень появлялась ТОЛЬКО на декорациях уровня(зеленые элементы), а не на картинке заднего плана(космос)?
Как исправить смешение теней?