![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как реализовать графику на 2D движке [Delphi, Windows]
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 дури и видео встроенное.