Помощь - Поиск - Пользователи - Календарь
Полная версия: Вывод спрайта в Hi-res
Форум «Всё о Паскале» > Pascal, Object Pascal > Написание игр
AlienEmperor
Значит, вопрос следующего плана: исторически сложилось, что для игрушек я использую следующую систему вывода спрайтов/бэкграундов и т.д.:
1) существует экран заднего фона (он для перерисовки, на него выводится "чистый" фон)
2) экран переднего плана: на него сначала копируется задний фон, затем каждый спрайт в порядке приближения по оси Z рисует себя на него.
3) с экрана переднего фона все копируется в видеопамять.
4) все процедуры перерисовки экранов целиком используют REP MOVSD
5) спрайты копируются попиксельно с целью организации прозрачности.

Теперь, собственно вопрос: все это замечательно работает для 320х200х256.
Но я так прикидываю, что даже при 640х480х256 начнутся большие проблемы с производительностью... Все-таки перекинуть 137 Кб не так-то быстро получится... (при использовании 32 битного компилятора ес-но). Кто что может посоветовать ? Я помню, говорили о переключении видеостраниц... Но не понимаю как это может помочь в данном случае (мне нужно все равно в видеостраницу загнать бэк и все спрайты... вряд ли это будет быстрее...)
Кстати, такие вещи как PutImage / GetImage вообще не подойдут из-за прозрачности
P@sh@
я подозреваю, что для твоего случая на современных процах/видюхах вряд ли начнутся проблемы с производительностью... попробуй сначала
ну а чтоб спрайты быстрее рисовать... а для чего по-твоему щас на видюхах десятки мегабайт видеопамяти ставят? чтоб побольше текстур/спрайтов туда загнать и системную шину не перегружать... видюха куда быстрее все копирует у себя в памяти, чем "снаружи" - из оперативки
AlienEmperor
Да, а каким образом можно из видеопамяти напрямую записать в видеопамять-же ?
На самом деле я еще только начинаю осваивать разрешения, большие 320х200 (под SVGA, а не под DX), поэтому вопросов еще много...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.