![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#511 |
Участник клуба
Регистрация: 12.10.2007
Сообщений: 1,204
|
![]()
размер объекта 250*270, т.е. он занимает примерно 20*20 клеток. А значит BitBlt вызывается не 7 раз, а ~7*20*20 = 2800 ? что-то слишком много или я неправильно считаю.
М.б. сделать цикл по объектам. Вычислить область каждого объекта с точностью до размера клетки и вывести эту область. Вот тогда будет 7 раз и области будут небольшие. Даже если объекты перекрываются, ничего страшного не будет. В буфере ведь уже отрисовано правильно. |
![]() |
![]() |
![]() |
#512 |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
![]()
250х270 пикселей размер области, которую будет отрисовывать BitBlt, таких объектов 7 на карте (сам буфер 1024х768 пикселей), пока цикл перебирает все ячейки карты, он встречает Map[dt,dz].Index>0 точно 7 раз. Я просто неправильно написал условие, оно гораздо сложнее пришлось упростить и скобки [dt,dz] потерялись. Правильнее будет if Map[dt,dz].Index>0 then begin ...
...и еще, ...смещение идет по 12 пикселей по-Y и 24 пиксела по-X, но один тайл размера 49х25, это изометрия, поэтому чтобы правильно располагать тайлы нужно половинное смещение.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Последний раз редактировалось Beermonza; 17.05.2008 в 20:01. |
![]() |
![]() |
![]() |
#513 |
Телепат с дипломом
Старожил
Регистрация: 10.06.2007
Сообщений: 4,929
|
![]()
Попробовал у себя, действительно не впечатляет, я ожидал большего эффекта.
При выводе буфера полностью, но разбитого на 100 частей, скорость падает на 10%, при выводе 50% (50 частей) повышается где-то на 10%, а при выводе 20% (20 частей) повышается процентов на 50. Вывод производится на канву формы с помощью BitBlt. Тест во вложении. Чтобы увидеть наглядно степень обновления в разных режимах, задвиньте окно за экран и выньте обратно.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог |
![]() |
![]() |
![]() |
#514 |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
![]()
В общем, не важно выходит, ...однократный BitBlit всего буфера быстрее, чем анализ областей и многократный BitBlt участков. Главный тормоз теперь - операции смешивания цветов, и чем больше объектов, тем больше тормозов. Тут будем думать. От Pointer'ов уже избавились, ScanLine тоже удален, Bitmap'ов в памяти нет, только область данных и начало. Работает в 2 раза быстрее чем прежде. Еще немного добить варианты с обработкой сразу 8 байт, если выйдет, то можно на этом завязывать ) Поможете?
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
![]() |
![]() |
![]() |
#515 |
Участник клуба
Регистрация: 12.10.2007
Сообщений: 1,204
|
![]()
А из 509 поста с 4-мя байтами не пробовали (речь об этом ?). В моих тестах это работало процентов на 10-15 быстрее. Вот то же самое с 8-ю байтами:
Код:
|
![]() |
![]() |
![]() |
#516 |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
![]()
alexBlack, скорость обработки просто умопомрачительная!, в разы отличается от прежних вариантов, ...НО и тот (4) и этот (8) ASM творят с текстурами непонятно что, на скрине показал это безобразие )) ...причем эта некорректность обработки зависит от положения текстуры в буфере и по-X и по-Y, в некоторых местах объект вообще не выводится. Текстура выполнена кратной 8-и в обеих пропорциях. Где-то ползет нечетность, это видно по смене кадров анимации.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
![]() |
![]() |
![]() |
#517 |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
![]()
Все "проблема" отпала, ...вернул в код PUSH и POP , совсем про них забыл )
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
![]() |
![]() |
![]() |
#518 |
Участник клуба
Регистрация: 12.10.2007
Сообщений: 1,204
|
![]() |
![]() |
![]() |
![]() |
#519 | |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
![]() Цитата:
Результаты: Было - 38% CPU Стало с "ASM8" - 6% CPU , ...в 6 раз быстрее! Итак, ...объявляется благодарность alexBlack , mutabor и Kostia за консультацию и непосредственную помощь в продвижении проекта MMO 2D RPG!, ...в кредитах будет отмечен этот факт.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Последний раз редактировалось Beermonza; 19.05.2008 в 17:06. |
|
![]() |
![]() |
![]() |
#520 |
Новичок
Джуниор
Регистрация: 17.05.2008
Сообщений: 1
|
![]()
Всем труженикам проэкта респект и мои комменты:
В сообщениях я встретил довольно много нелесных слов о DelphiX, не хочу вас огорчать, но DelphiX- всего-лишь расширение Delphi(точнее набор заголовков функций), для работы с DirectX (нужен лишь для возможности использования функций DirectX в Delphi). Поэтому рассуждения о скорости вывода сводится только к умению писать программы на DirectX. Также встретил рассуждения на выбор между OpenGl-ем и DirectX-ом, в которых утверждалось что в DirectX предпочтительнее только потому что его выберают крупные производители игр, а как вам то что Doom 3 писался на OpenGl-е? Все выше сказанное- из статей нарытых в интеренете в течении месяца, в поисках выбора языка программирования и графической библиотеки для создания своего 2d движка. Итог: программировать буду на Delphi(я прекрасно знаю Паскаль, и в Delphi разобратся довольно просто), я за вывод на экран будет от отвечать OpenGl(OpenGl более предпочтителен именно для Delphi-не требует никаких заморочек для своего использования- пишем в uses OpenGL и вуаля- пользуемся всем чем захотим). |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Уроки по созданию игр для новичков... | -=DeS=- | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 750 | 14.11.2017 20:26 |
Музыка программистов - как вы относитесь к АРИИ? | Весёлый Жека | Свободное общение | 46 | 10.10.2008 22:32 |
Конкурсы по созданию игр на Delphi | mutabor | Свободное общение | 0 | 15.06.2007 12:40 |
Работа по созданию ПО | remix | Фриланс | 3 | 22.04.2007 11:00 |