-
Как можно осуществить быстрый вывод изображений с удалением фона и изменением размера, их быструю загрузку в ОЗУ, желательно без DirectX? А то мои прошлые "графические движки", если они вообще таковыми являлись, работали со скоростью бешеной черепахи.
-
Я пишу на OPenGL, но пишу 3Д. Для вывода 2Д вполне хватает кэнваса. Могу пример кинуть.
-
> желательно без DirectX?
Думаю, что быструю графику хорошего качества с различными современными спецэффектами (пусть даже и 2д) без участия DirectX или OpenGL вряд ли получится получить. Но можно попробовать GDI (или GDI+?).
> Для вывода 2Д вполне хватает кэнваса.
Только в том случае если ты собираешься выводить графики, или примитивную графику аля прототип игры. Для графики полноценной игры, возможностей канваса не хватит :)
-
> [2] Домик
Вот GDI+ как раз использовать не нужно, ничего хорошего не выйдет плане производительности.
Лучше на основе какого-нибудь FastDIB млм подобных.
-
> Только в том случае если ты собираешься выводить графики, > или примитивную графику аля прототип игры. Для графики > полноценной игры, возможностей канваса не хватит :)
Вполне хватает. НАсыщенная сцена с нормальным разрешщением легко рисуется. Конечно не стандартными средствами VCL.
> homm, как раз в этом лучше разбирается.
-
> homm © (29.05.07 21:37) [3]
Да, я знаю. Я сразу написал, что без DirectX или OpenGL быструю и качественную графику не сделать. Но если человеку очень хочеца без DrectX... Пусть пробует.
> НАсыщенная сцена с нормальным разрешщением легко рисуется.
Я бы не рискнул делать игру, основывая её графическую часть на канвасе :)
-
> [5] Домик (30.05.07 12:05) > > homm © (29.05.07 21:37) [3] > > Да, я знаю. Я сразу написал, что без DirectX или OpenGL > быструю и качественную графику не сделать. Но если человеку > очень хочеца без DrectX... Пусть пробует. > > > НАсыщенная сцена с нормальным разрешщением легко рисуется. > > Я бы не рискнул делать игру, основывая её графическую часть > на канвасе :)
Возможно мы под Канвасом подразумеваем разные вещи. Лично я под Канвасом подразумеваю ручной рендер основанный на стандартных средствах, без вмешательства DX и OGL. Такими средствами был в свое время написан Анрыл и много других хороших игр. ;)
-
У GDI/софтвера, кроме скорости вывода, есть ещё такая проблема - отсутствие нормального механизма двойной буферизации с переключением страниц (page flipping) и синхронизации с вертикальной развёрткой. Во всяком случае автор SpriteUtils, который в этом направлении копал долго и упорно, в конечном итоге пришёл к использованию DirectDraw. Правда, у него игра была весьма специфичная, с быстрым скроллингом карты, а если скроллинга нет или он относительно неторопливый, то, наверное, сойдёт и BitBlt. По скорости - да, если руки прямые, можно сделать быстро, но догнать и тем более перегнать OpenGL/Direct3D вряд ли получится (на нормальной машине, у которой мощность видеокарты пропорциональна мощности CPU и видеокарта, само собой, поддерживает 3D-ускорение). Даже интегрированное видео как минимум не проигрывает CPU. Есть у меня тест на блендинг (полупрозрачность) - exe, 30 кб: http://slil.ru/24440980Видеокарта (именно интегрированная, i915) быстрее Cel 2.8 в 2-3 раза.
-
> По скорости - да, если руки прямые, можно сделать быстро, > но догнать и тем более перегнать OpenGL/Direct3D вряд ли > получится (на нормальной машине, у которой мощность видеокарты > пропорциональна мощности CPU и видеокарта, само собой, поддерживает > 3D-ускорение). > Даже интегрированное видео как минимум не проигрывает CPU. > Есть у меня тест на блендинг (полупрозрачность) - exe, 30 > кб:
Да никто не спорит. Для этого и создавались эти АПИ, для этого и видеокарты постоянно обновляются.
-
> Есть у меня тест на блендинг (полупрозрачность) - exe, 30 кб: > http://slil.ru/24440980
Это что еще за троян? Зачем она в сеть просится?
-
Кстати, нельзя ли гденить еще исходчег выложить? Охото глянуть, как там софтвере сделан.
-
От слов к делу! Покажите или исходничек без DX, ну или даже с DX (как бы мне сейчас не хотелось его использовать). И еще, я пока не разрабатываю игру графикой похлеще чем в Готике 3 или Думе 3, и с поддержки DirectX 10, поэтому мне особо не нужны на этом движке яркие спецэффекты. Это не отрицание DX, просто хотел провести разминку перед тем как писать с помощью него
-
Охото глянуть, как там софтвере сделан.Additive - FastLIB'овский AddBlend. Alpha - конвертированный под FastLIB MMXAlphaPut из SpriteUtils. Кстати, с альфой довольно шустро работает функция GDI AlphaBlend, хотя, говорят, нестабильно в Win9x. Я тестировал на Win2000 - вроде всё нормально, скорость cопоставима с MMXAlphaPut, хотя AlphaBlend в некотором смысле "мухлюет" - использует premultiplied alpha, т.е. нужно заранее умножить на alpha пиксели исходной картинки. От слов к делу! Покажите или исходничек без DXЕсли по этому поводу: http://pda.delphimaster.net/?id=1180354902&n=7то PixelFormat пробовал? Я у себя проверял - действительно быстрее, но на разных ОС и драйверах оно может быть по-разному, поэтому выразился осторожно. Теоретическая основа такая: 32 бита: 1) мелкософт умудряется писать жутко кривой код для обработки 24-битных картинок (притом что именно этот формат до XP включительно является стандартом). Проверено также со StretchBlt, и не только мной - 32-битные битмапы значительно быстрее. 2) на некоторых картах копирование на экран быстрее если формат битмапа = формату рабочего стола, а обычно стоит именно 32 бита. pfDevice: при выводе таких битмапов может использоваться (и обычно используется на NT-семействе, хотя зависит от драйвера) аппаратное ускорение, но только для простых операций вроде BitBlt и TransparentBlt (StretchBlt не ускоряется). Доступ к пикселям (Pixels, Scanlines) такого битмапа получить нельзя, точнее можно, но очень медленно. Если так уж надо исходничек примера с блендингом - завтра, может быть... то есть, гм, сегодня, но днём.
-
-
-
> PixelFormat пробовал?
еще как пробовал. Все идет ОК, теперь е*... мучаюсь со способами хранения групп изображений для последующего вывода. А вообще я взял себе за образец движок игры "Alien Shooter" (играл кто-нибудь? Он мне больше нравится чем некоторые 3D шутеры). По моему это хороший ориентир. Ну дак вот там изображения хранятся в файлах *.vid и выводятся один за одним в зависимости от угла поворота. Щас разрабатываю эту структуру хранения различных видов объекта.
-
gray_falcon, ядро у Alien Shooter основано на DirectX. И даже такой скорости тебе никакой GDI движок не даст )
-
Хм. Я навино полгалал, что Алиен Шутер - смесь 3Д и 2Д. Я ошибался? :)) Надо будет на dtf спросить.
-
сейчас вышел Alien Shooter полный 3D !
-
> И даже такой скорости тебе никакой GDI движок не даст )
Что значит «И даже такой» ? :) Он у меня 300-500 fps выдет :)
|