Показать сообщение отдельно
Старый 08.09.2009, 16:49   #1
aureli0
ПроЭктировщик
 
Регистрация: 19.03.2007
Сообщений: 134
Написано 10 полезных сообщений
(для 20 пользователей)
2d в OpenGL. вывод тени от спрайта

Сейчас делаю игрушку-скролл шутер. Появились трудности с выводом теней.
На данный момент тени от спрайтов вывожу следующим образом:
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);
 }
Но здесь есть ряд проблем: тени выводятся на все элементы уровня и задний фон, а также они смешиваються, становясь темнее.
Как сделать так, чтобы тень появлялась ТОЛЬКО на декорациях уровня(зеленые элементы), а не на картинке заднего плана(космос)?
Как исправить смешение теней?
Миниатюры
Нажмите на изображение для увеличения
Название: screen1.jpg
Просмотров: 1548
Размер:	117.8 Кб
ID:	7517  

Последний раз редактировалось aureli0, 08.09.2009 в 20:54.
(Offline)
 
Ответить с цитированием