Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как реализовать графику на 2D движке [Delphi, Windows]


Страницы:   1 2 3 4

gray_falcon ©   (2007-05-29 15:51:00) 

Как можно осуществить быстрый вывод изображений с удалением фона и изменением размера, их быструю загрузку в ОЗУ, желательно без DirectX? А то мои прошлые "графические движки", если они вообще таковыми являлись, работали со скоростью бешеной черепахи.


Vga   (2007-06-02 07:37:00) [41]

~1200FPS на демке homm, ~1000FPS на демке XProger :)


XProger   (2007-06-02 02:39:00) [42]

Меряться так меряться...
http://xproger.mirgames.ru/tmp/test.rar- даёт 860 FPS против твоих 260 :)
твой ход...


homm   (2007-06-02 00:04:00) [43]

Обновил архив. Так и не понял, зачем имеено «разноцветными квадратами», но добавил и патернов, выбирай какой нравиться бльше :)


XProger   (2007-06-01 23:08:00) [44]

homm, а можешь это сделать разноцветными квадратами с нормальным циклом отрисовки расчитывающим РЕАЛЬНЫЙ фпс в зависимости от кол-ва отрисованных кадров за последнюю секунду? За реализацию на OpenGL в таком случае - возьмусь.


homm   (2007-06-01 22:31:00) [45]

Кстати, XProger (и не только), помнишь кто-то спрашивал, как можно наиболее оптимально заполнить поле 640х480 квадратами 8х8? Я вылизал алгоритм  до самого предела. Если интересно, кто-нибудь возметься реализовать такое на апаратном ускорении (каком — без разницы), чисто ради сравнить результаты? Мне почему-то кажеться, что быстрее не может получиться.
Вот что у меня получилось по скорости в полном software: На формирование одного кадра уходит примерно 3,1 МГц, что соответствует примерно 1760/3,1 =566 кадров в секунду! Причем если отключить только одну функцию BitBlt, переносящую результат на экран, получаем примерно 1760/1,6 = 1076 кадров в секунду! Конечно второй показатель практически безполезен, без блитинга в видеопамять.

В обшем вот архив с проектом и демкой (30 Кб)
http://homm86.narod.ru/files/fps.rar


homm   (2007-06-01 21:16:00) [46]

> homm, сомневаюсь что твой GDI движок способен выводить столько
> контента с достойной скоростью на таком разрешении.

Да я спорю что-ли :), я про то что Alien Shooter выдает фэпээсов совсем не «и даже» :))


@!!ex   (2007-06-01 20:12:00) [47]

> XProger ©   (01.06.07 19:19)

Не, никто не спорит, что CPU+GPU быстрее, чем CPU. Но все же ИМХО не стоит сбрасывать все это сосчетов.


XProger   (2007-06-01 19:19:00) [48]

homm, сомневаюсь что твой GDI движок способен выводить столько контента с достойной скоростью на таком разрешении.


Домик   (2007-06-01 13:20:00) [49]

> сейчас вышел Alien Shooter полный 3D !

Если имеется в виду Alien Shooter 2, то спешу вас огорчить, там все 2D.


homm   (2007-06-01 09:14:00) [50]

> И даже такой скорости тебе никакой GDI движок не даст )

Что значит «И даже такой» ? :) Он у меня 300-500 fps выдет :)


Yashin   (2007-05-31 21:50:00) [51]

сейчас вышел Alien Shooter полный 3D !


@!!ex   (2007-05-31 21:15:00) [52]

Хм. Я навино полгалал, что Алиен Шутер - смесь 3Д и 2Д. Я ошибался? :)) Надо будет на dtf спросить.


XProger   (2007-05-31 21:13:00) [53]

gray_falcon, ядро у Alien Shooter основано на DirectX. И даже такой скорости тебе никакой GDI движок не даст )


gray_falcon   (2007-05-31 20:44:00) [54]


> PixelFormat пробовал?

еще как пробовал. Все идет ОК, теперь е*... мучаюсь со способами хранения групп изображений для последующего вывода.
А вообще я взял себе за образец движок игры "Alien Shooter" (играл кто-нибудь? Он мне больше нравится чем некоторые 3D шутеры). По моему это хороший ориентир. Ну дак вот там изображения хранятся в файлах *.vid и выводятся один за одним в зависимости от угла поворота. Щас разрабатываю эту структуру хранения различных видов объекта.


XProger   (2007-05-31 11:33:00) [55]

http://timeforkill.mirgames.ru/img/scr/5.jpg- OpenGL
Мне страшно представить сколько нужно угрохать сил и нервов, чтобы заставить даже это работать на GDI... про FPS я, как человек культурный, промолчу )


cyborg   (2007-05-31 09:35:00) [56]

> [11] gray_falcon ©   (31.05.07 00:13)

Попробуй http://miniforum.ru/show.php?&forum=8&theme=136
Там используется директ икс, но с ним ты не будешь иметь дело напрямую.


Sapersky   (2007-05-31 02:43:00) [57]

Охото глянуть, как там софтвере сделан.

Additive - FastLIB'овский AddBlend.
Alpha - конвертированный под FastLIB MMXAlphaPut из SpriteUtils.

Кстати, с альфой довольно шустро работает функция GDI AlphaBlend, хотя, говорят, нестабильно в Win9x. Я тестировал на Win2000  - вроде всё нормально, скорость cопоставима с MMXAlphaPut, хотя AlphaBlend в некотором смысле "мухлюет" - использует premultiplied alpha, т.е. нужно заранее умножить на alpha пиксели исходной картинки.

От слов к делу! Покажите или исходничек без DX

Если по этому поводу:
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1180354902&n=7
то PixelFormat пробовал?
Я у себя проверял - действительно быстрее, но на разных ОС и драйверах оно может быть по-разному, поэтому выразился осторожно.
Теоретическая основа такая:
32 бита:
1) мелкософт умудряется писать жутко кривой код для обработки 24-битных картинок (притом что именно этот формат до XP включительно является стандартом). Проверено также со StretchBlt, и не только мной - 32-битные битмапы значительно быстрее.
2) на некоторых картах копирование на экран быстрее если формат битмапа = формату рабочего стола, а обычно стоит именно 32 бита.
pfDevice:
при выводе таких битмапов может использоваться (и обычно используется на NT-семействе, хотя зависит от драйвера) аппаратное ускорение, но только для простых операций вроде BitBlt и TransparentBlt (StretchBlt не ускоряется). Доступ к пикселям (Pixels, Scanlines) такого битмапа получить нельзя, точнее можно, но очень медленно.

Если так уж надо исходничек примера с блендингом - завтра, может быть... то есть, гм, сегодня, но днём.


gray_falcon   (2007-05-31 00:13:00) [58]

От слов к делу! Покажите или исходничек без DX, ну или даже с DX (как бы мне сейчас не хотелось его использовать).
И еще, я пока не разрабатываю игру графикой похлеще чем в Готике 3 или Думе 3, и с поддержки DirectX 10, поэтому мне особо не нужны на этом движке яркие спецэффекты.
Это не отрицание DX, просто хотел провести разминку перед тем как писать с помощью него


homm   (2007-05-30 22:53:00) [59]

Кстати, нельзя ли гденить еще исходчег выложить? Охото глянуть, как там софтвере сделан.


homm   (2007-05-30 22:18:00) [60]

> Есть у меня тест на блендинг (полупрозрачность) - exe, 30 кб:
> http://slil.ru/24440980

Это что еще за троян? Зачем она в сеть просится?


Страницы:   1 2 3 4

Наверх

Титульная страница Поиск, карта сайта Написать письмо