Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.08.2009, 23:15   #1
t3ns0r
Пользователь
 
Аватар для t3ns0r
 
Регистрация: 23.07.2007
Сообщений: 20
Вопрос Проблемы с графикой в 2d игре

Доброго времени суток.
Пишу двухмерную игру на С++, где довольно много используется полупрозрачность, изображения хранятся в PNG. Какой графический пакет для этого лучше использовать? С DirectX и OpenGL дела не имел, попробовал GDI+, но он оказался слишком медленный при рисовании большого количества изображений с альфа каналами. Может быть, кто-нибудь посоветует, при помощи чего это лучше делать, желательно , чтобы было не слишком сложно разбираться в пакете.
t3ns0r вне форума Ответить с цитированием
Старый 07.08.2009, 00:48   #2
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

А может просто Windows.AlphaBlend() и BitBlt() использовать?
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Старый 07.08.2009, 11:42   #3
t3ns0r
Пользователь
 
Аватар для t3ns0r
 
Регистрация: 23.07.2007
Сообщений: 20
По умолчанию

А AlphaBlend быстрее функций GDI+? К тому же тогда нужно использовать 32-битный битмапы с альфа каналом, а как преобразовать в него PNG я не знаю
t3ns0r вне форума Ответить с цитированием
Старый 07.08.2009, 15:30   #4
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

HGE попробуй

А это так, для общего развития, может кому-то пригодится, PNG-to-BMP32

Код:
type
  TRGBQuadArray = array [WORD] of TRGBQuad;
  PRGBQuadArray = ^TRGBQuadArray;

var i, j: integer;
    Row: pRGBQuadArray;
    PNGAlpha: pByteArray;

begin
    //copy PNG to BMP (no alpha)
    FWorkBMP.Canvas.CopyRect(<SOURCE_RECT>, FWorkPNG.Canvas, <DEST_RECT>);

    //copy alpha-channel from PNG to BMP
    for i := 0 to FWorkBMP.Height - 1 do
    begin
      Row := FWorkBMP.Scanline[i];
      PNGAlpha := FWorkPNG.AlphaScanline[i];
      for j := 0 to FWorkBMP.Width - 1 do
        begin
          Row[j].rgbReserved :=  PNGAlpha[j];
          Row[j].rgbBlue := Row[j].rgbBlue  * Row[j].rgbReserved div 255;
          Row[j].rgbGreen := Row[j].rgbGreen * Row[j].rgbReserved div 255;
          Row[j].rgbRed := Row[j].rgbRed  * Row[j].rgbReserved div 255;
        end;
    end;
end;
FWorkBMP - TBitmap, FWorkPNG - TPNGObject (из модуля pngimage)
пыщь
JTG вне форума Ответить с цитированием
Старый 08.08.2009, 12:08   #5
t3ns0r
Пользователь
 
Аватар для t3ns0r
 
Регистрация: 23.07.2007
Сообщений: 20
По умолчанию

За совет на счёт HGE спасибо, похоже, движок очень мощный, буду использовать его
t3ns0r вне форума Ответить с цитированием
Старый 09.08.2009, 06:38   #6
VintProg
not
Участник клуба
 
Аватар для VintProg
 
Регистрация: 27.06.2009
Сообщений: 1,399
По умолчанию

HGE я пытался ставить HGE на Delphi и фик, касяченые модули.
VintProg вне форума Ответить с цитированием
Старый 09.08.2009, 18:09   #7
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Угу, HGEdelphi - неофициальный порт, на плюсах всё нормально
пыщь
JTG вне форума Ответить с цитированием
Старый 10.08.2009, 21:59   #8
t3ns0r
Пользователь
 
Аватар для t3ns0r
 
Регистрация: 23.07.2007
Сообщений: 20
По умолчанию

На С++ прекрасно пашет, есть пара недочётов, но в целом хорошо
t3ns0r вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ПРоблемы с графикой DJEDY Общие вопросы C/C++ 1 19.04.2009 23:46
Проблемы с графикой ReM Общие вопросы C/C++ 1 25.03.2009 22:52
ПРоблемы с графикой HELP!!! ANARHIST Помощь студентам 2 03.07.2008 09:04
проблемы с графикой joker Win Api 9 01.12.2007 18:32
Проблемы с графикой в Delphi, Индексирование цвета zzz(KOT)zzz Общие вопросы Delphi 8 20.06.2007 20:57