Общество изобретателей велосипедов
GameDev.ru / Сообщества / Вело-изобретатели / Форум / 2D движок SR2D, Софтверный движок для работы с 2D графикой на VB6, vb.net, C# (4 стр)

2D движок SR2D, Софтверный движок для работы с 2D графикой на VB6, vb.net, C# (4 стр)

Поделиться

Страницы: 1 2 3 4 5 6 ... 18 ... 32 33 34 Следующая

sb3dУдалёнwww13 окт. 201022:46#45
Вадик
> Здравствуйте SB3D,я вас на Gamin'е видел,нравится ваше графическое исполнение.
Спасибо, приятно такое услышать. Лучше на "ты", если не возражаешь. Да, ведь это тема движка Михаила, наверное, не совсем правильно тут говорить про мои игры. =)

igo
> шо у меня тут такое, шо интелю могло не понравится? видно?... не?
Я не спец по Интелу да и не спец по асму, так что посоветовать не могу. Но самое очевидное - прогони на профилировщике, и смотри, какие инструкции тормозят.

Собрал тест со своими очень быстрыми 8-битными серыми спрайтами. Используются для дыма, например, часто, для эффектов.
http://sb-games.com/wp-content/uploads/SPDTST2.ZIP

Mikle, igo, потестируйте, пожалуйста, интересно сравнить. Должны обгнонять ваши обычные спрайты. =)

В этом же тесте и цветные круги. Правда, медленные, как выяснилось.

igoЗабаненwww13 окт. 201023:14#46
на Core 2 Duo 1.2

круги 75-80 - не так уж и медленно... (шоб цифры не слишком скакали стоит накапливать замеры в массив на 10-25 эл. и выводить усредненное)
спрайты усе по 21...
шо нормально вроде... потому что спрай-то в кэш помещается заведомо - а вот размещение его по адресному пространству 32-х битной плоскости - и есть узкое место... а вот странно, что они адитивно выводятся с той же скорость что и те шо с альфой... должно быть раза в полтора быстрее...

sb3dУдалёнwww13 окт. 201023:29#47
igo
> спрайты усе по 21
> а вот странно, что они адитивно выводятся с той же скорость что и те шо с
> альфой... должно быть раза в полтора быстрее
Чёрт! Коре два неправильный процессор, и он делает неправильный мёд. =)
В том и фишка, что 8-битные аддитивные спрайты у меня на всех машинах раза в полтора и быстрее!

Всё, я сдаюсь, у меня самый медленный движок. =)

igoЗабаненwww13 окт. 201023:39#48
не... ну на коре 2 я с тобой поборюсь за пальму медленности)))... ваще, на самом деле - магия какая-то: работает лучше на той машине на которой создавалось...
потом аще на атлоне гляну твой последний тест...
а у Mikle - чет код прям ко всем процам - добр, может из-за mmx-а...
igoЗабаненwww14 окт. 20109:01#49
если сортировать вывод по высоте - это + еще 25%... проверил уже...
qsort - не надо мучить... можно ваще просто несколько раз прогнать цикл вывода, разбив его например на 6 полос...
MikleМодераторwww14 окт. 20109:38#50
sb3d
Потестю чуть позже, сейчас некогда.
igo
Очень может быть из-за невыравнивания по границе 16 бит. Я тестил раньше разные алгоритмы на атлонах и интелах, кое-что выяснил для себя - интел лучше считает, атлон лучше справляется с перекачкой памяти. То есть, если узкое место именно в перекачке памяти, то на интеле отстанет сильнее, а невыравнивание по границе 16 бит можно считать узким местом. Например я int32 раскладывал на ARGB двумя способами - указателями на байты, и логическими операциями со сдвигами. Первый способ быстрее работал на атлонах, второй на интелах.
У меня в алгоритме, кстати, даже если альфа равна нулю, всё равно делается полный расчёт коэффициентов, расчёт результата, помещение его в приёмник. Казалось бы, отсей точки с нулевой альфой (это одно сравнение и один условный переход) - и 20-25% расчётов не делается, а нет, становится медленнее, интелу легче сделать лишний раз 10 строк расчёта на MMX, чем предсказать одно лишнее ветвление.
P.S.
Предлагаю более конкретно описать задачу тестирования вектора и вынести её в новую тему рядом.
igoЗабаненwww14 окт. 201010:20#51
оказалось шо от этого зависит почти мизерно - не более 10% приросту... причем... думаю добавочный код сожрет этот прирост... для интеля... а для атлона зависимость ваще меньше 3%... протестировал это все - просто "округлив" координаты вывода спрайтов до 16 байт...
вывод - интелю тоже почти пофиг на выравнивание... наверно я с sse - перемудрил...

по вектору создам тему как agg_lite доковыряю - будет интересно... универсальная хрень...

Правка: 14 окт. 2010 10:35

igoЗабаненwww14 окт. 201010:24#52
sb3d
на Атлоне:
адитивные: 29-30
обычные: 27-28
круги: 70-80

наверно Пень четвертый и Дюрон - перестали быть показательными... у них слишком медленная подсистема памяти...

ну и шрифт у тебя)))... особенно цифры заморочены... пока я догадался в первый раз шо 7 - это 2...
хошь у меня выдери из ресурсов... - оптимальный (растровый) шрифт для своего размера, и по красоте и по читаемости...

Правка: 14 окт. 2010 10:34

AlprogМодераторwww14 окт. 201010:43#53
Mikle
>масштабирование до нужного размера с билинейной фильтрацией
Ух ты! А более 4 лет назад на мой вопрос про масштабирование было сказано:
>отсутствует, даже в планах :((( Движек позиционируется под 2D и псевдо-изометрию, где это практически не требуется

Выходит движок уже перерос даже первоначальные планы. Поздравляю :)

MikleМодераторwww14 окт. 201019:13#54
sb3d
на Athlon64 3800+:
Mikle - 5, 41
sb3d (новая) - 4, 38
igo - 5, 38

Alprog
Тогда в планах была версия 2.0, которая и была усуществлена и долго работала, правда "Маленькая и Скромная РПГ" тогда была уже перепортирована на DX8.
А теперь версия 3.0! Кроме отмеченных вращения и масштабирования наконец-то сделал точечный свет и коллизии.

Правка: 14 окт. 2010 19:16

sb3dУдалёнwww14 окт. 201019:19#55
igo, Mikle, спасибо за тест.
igoЗабаненwww15 окт. 20109:09#56
а че за цифры, шо запускал?
MikleМодераторwww15 окт. 201010:20#57
igo
Запускал тест альфаналожения, у sb3d - последний, с восьмибитными спрайтами.
sb3dУдалёнwww15 окт. 201012:37#58
Mikle
Тестировал у друга на ноутбуке. Процессор - один из центрино, точнее не знаю.
Твоя тысяча спрайтов - 78 фпс, моя тысяча с альфаблэндом - 43, восьмибитные - 35 фпс. Даже сказать нечего. =))
igoЗабаненwww15 окт. 201012:43#59
центрино - фактически без кэша вроде... но шо за 78 фпс?... O_O откуда...)))... тама герцев навалом чтоль?

Страницы: 1 2 3 4 5 6 ... 18 ... 32 33 34 Следующая

/ Форум / Общество изобретателей велосипедов / SR2D - софтовый 2D движок

2001—2017 © GameDev.ru — Разработка игр