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 20:54:00) [21]

Тото картинка странная. И ФПС теперь 2100


homm   (2007-06-02 20:50:00) [22]

У меня как раз 1900 и вышло, а без этого исправления писовался ккой-то бред и было не более 1300.


Vga   (2007-06-02 20:49:00) [23]

Кстати да :D


homm   (2007-06-02 20:48:00) [24]

> Vga ©

Может тогда так? :)
procedure Render;
const
 W = 640 div 8;
 H = 480 div 8;
 D = 1/8;
var
 i: Integer;
 X, Y: Integer;
begin
 for i:=0 to 4799 do
 begin
   TCB[4*i].X:=Random(8)*D;
   TCB[4*i].Y:=Random(8)*D;
   TCB[4*i+1].X:=TCB[4*i].X+D;
   TCB[4*i+1].Y:=TCB[4*i].Y;
   TCB[4*i+2].X:=TCB[4*i].X+D;
   TCB[4*i+2].Y:=TCB[4*i].Y+D;
   TCB[4*i+3].X:=TCB[4*i].X;
   TCB[4*i+3].Y:=TCB[4*i].Y+D;
 end;
 glTexCoordPointer(2, GL_FLOAT, 0, @TCB[0]);
 glEnableClientState(GL_VERTEX_ARRAY);
 glEnableClientState(GL_TEXTURE_COORD_ARRAY);
 glDrawArrays(GL_QUADS, 0, 19200);
 glDisableClientState(GL_VERTEX_ARRAY);
 glDisableClientState(GL_TEXTURE_COORD_ARRAY);
end;


Vga   (2007-06-02 20:32:00) [25]

Мдя. А мож даже и 1900


Vga   (2007-06-02 20:29:00) [26]

Хех, я тоже переписал демку :) ~1800FPS
http://vgacich.narod.ru/test.7z


XProger   (2007-06-02 19:50:00) [27]

homm, я сравнивал наши демки по очереди... твоя вроде не запускает вторичных процессов? )


Vga   (2007-06-02 19:29:00) [28]

У меня test[homm] тоже проигрывает test[XProger] на полсотни кадров.
А на G80, AFAIK, основан на скалярных (а не векторных, как раньше) процессорах с плавающей точкой. R600 - на суперскалярных с плавающей точкой, но тоже не векторных.


homm   (2007-06-02 18:26:00) [29]

> а у меня почему-то проигрывает на 150 фпс...

«Этого не может быть, потому что этого не может быть» ©
Очень интересный результат. :) Я бы понял, если бы 8-й жифорс сравновали, там что-то говорили о переводе логики из режима работы с плавающей точкой в целочисленый, ито это для шейдеров, а так вообще не понятно.
Может кто еще попробует и скажет, какой вариант выдает сколько фэпээсов?

ЗЫ XProger, может что-нить в фоне работает, забыл отключить? У меня даже винамп с диспетчером задачь напару сотню попугаев съедают.


CloseGL   (2007-06-02 18:23:00) [30]

Ну не знаю как у вас, а у меня 1376 - 1378 FPS =)


XProger   (2007-06-02 18:17:00) [31]

homm, а у меня почему-то проигрывает на 150 фпс... я так понимаю ты попытался выйграть на облегчении работы CPU...
В отрисовке здесь работает GPU, так что я спокойно могу крутить циклы до 100000 сложений в рендере и FPS даже не просядет )


homm   (2007-06-02 16:55:00) [32]

> [27] XProger ©   (02.06.07 02:39)
> твой ход...

Ну давай, попробую :))
http://homm86.narod.ru/files/test.rar

Правда это уже на основе твоей демы, но все равно, я еше 230 кадров из нее выжал :P


XProger   (2007-06-02 15:38:00) [33]

gray_falcon, высокая скорость отрисовки - показатель скорости работы софта и железа. Больше частоты развёртки в играх естественно не нужна, но Canvas, так называемый, в тех же играх этого выдать не способен... стоит применить пару поворотов с блендингом (которые естестенно тебе придётся реализовывать самому вручную) и FPS упадёт до единиц.


homm   (2007-06-02 15:10:00) [34]

> Объясните мне, или я че не допонял, мне зачем выводить изображение 1000 раз в секунду

Нужно пытаться минимизировать время построения любого объекта. Представь группу разработчиков. Оди реализует HDR шейдеры, другой модели рисует, третий текстуры, четвертый картой занимаеться. Делают они каждый свое дело, у каждого по 80-100 кадров на тестовый сценах получаеться, а потом все это дело собирают и получаеться не более 20. Вроде-бы и так все шустро было, а игра получилась тормознутая.


gray_falcon   (2007-06-02 14:43:00) [35]

Объясните мне, или я че не допонял, мне зачем выводить изображение 1000 раз в секунду, когда у меня CRT с частотой обновления экрана в 100 Гц. Мне вполне этой 100 хватит, такую частоту 2D движок на канвасе точно потянет.


Vga   (2007-06-02 10:59:00) [36]

Одна из причин - на АТИ под винду опенгл сделан через жопу, увы. На маках говорят дрова лучше, но то маки и там дырекса нету


homm   (2007-06-02 10:56:00) [37]

> [31] Vga

тогда не знаю, почему Прогеровская демка так «тормозила» :) У меня 7600GT, как уже говорил 1500fps.


Vga   (2007-06-02 10:41:00) [38]

Core 2 Duo E6300, ATI Radeon X1950Pro - мягко говоря не чета встроенному.


@!!ex   (2007-06-02 10:24:00) [39]

170 против 340.
Правда стоит заметить что запускалось все при напрочь загруженном проце и пустой карте...


> [29] homm ©   (02.06.07 09:48)

Еще раз убеждаемся, что все зависит только от оборудования.


homm   (2007-06-02 09:48:00) [40]

Да уж, похоже вера в аппаратное ускорение вернулась :))
У меня 1500 получилось, в 3 раза больше :)


> ~1200FPS на демке homm, ~1000FPS на демке XProger :)
Что еше можно было ожидать от VGA;) Наверное коре 2 дури и видео встроенное.


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

Наверх

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