Конференция "Игры" » Как реализовать графику на 2D движке [Delphi, Windows]
 
  • homm © (02.06.07 18:26) [40]
    > а у меня почему-то проигрывает на 150 фпс...

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

    ЗЫ XProger, может что-нить в фоне работает, забыл отключить? У меня даже винамп с диспетчером задачь напару сотню попугаев съедают.
  • Vga © (02.06.07 19:29) [41]
    У меня test[homm] тоже проигрывает test[XProger] на полсотни кадров.
    А на G80, AFAIK, основан на скалярных (а не векторных, как раньше) процессорах с плавающей точкой. R600 - на суперскалярных с плавающей точкой, но тоже не векторных.
  • XProger © (02.06.07 19:50) [42]
    homm, я сравнивал наши демки по очереди... твоя вроде не запускает вторичных процессов? )
  • Vga © (02.06.07 20:29) [43]
    Хех, я тоже переписал демку :) ~1800FPS
    http://vgacich.narod.ru/test.7z
  • Vga © (02.06.07 20:32) [44]
    Мдя. А мож даже и 1900
  • homm © (02.06.07 20:48) [45]
    > 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 © (02.06.07 20:49) [46]
    Кстати да :D
  • homm © (02.06.07 20:50) [47]
    У меня как раз 1900 и вышло, а без этого исправления писовался ккой-то бред и было не более 1300.
  • Vga © (02.06.07 20:54) [48]
    Тото картинка странная. И ФПС теперь 2100
  • homm © (02.06.07 20:56) [49]
    > Тото картинка странная. И ФПС теперь 2100

    Ну вот, а автор той темы, с которой все и началось хотел все-то 30 :D
  • Vga © (02.06.07 21:07) [50]
    Залил с фиксом homm'а, http://vgacich.narod.ru/test_fix.7z
  • homm © (02.06.07 21:13) [51]
    Ну и победные для моей системы 2 килогерца, если заменить
    glVertexPointer(2, GL_FLOAT, 0, @VB[0]);


    на
    glVertexPointer(2, GL_SHORT, 0, @VB[0]);



    Ура! :)

    Спасибо, друзья, узнал сегодня много интересного, все-же грфика не основное мое занятие :)
  • Vga © (02.06.07 21:28) [52]
    А с GLint? По идее, в 32бит системе должно быть быстрее, но требуется больше данных гонять по шине
  • Vga © (02.06.07 21:31) [53]
    И кстати, у тебя что за система? Видяха, ее шина, проц?
  • homm © (02.06.07 21:38) [54]
    > А с GLint?

    Посредине между GL_FLOAT и GL_SHORT.


    > В отрисовке здесь работает GPU, так что я спокойно могу
    > крутить циклы до 100000 сложений в рендере и FPS даже не
    > просядет )

    Ну 100000 это конечно ты загнул, а вот 10000 да, работает практически без ущерба для основной сцены :)
  • homm © (02.06.07 21:40) [55]
    Sempron2800+ (разогнан с 1600 до 1760) память ДДР-2 около 600 что-то. PCI-E GF-7600GT.
  • homm © (02.06.07 21:40) [56]
    > память ДДР-2 около 600

    это частота :)
  • Vga © (02.06.07 21:41) [57]
    Гм. Видимо влияет пропускная способность шин памяти и возможно карты. И проц видимо быстрее работает с целочисленной математикой.
  • homm © (02.06.07 23:00) [58]
    http://opengl.gamedev.ru/articles/?id=124
    Лучше положения вершин, нормали, текс. координаты и др. атрибуты хранить в 16-битных целых (GL_SHORT) - это не даёт perfomance penalty начиная с Radeon 9200 и GF4Ti, зато существенно экономит память (при этом такие числа обладают гораздо большей точностью, чем half float) и снижает время загрузки геометрии (как с жёсткого диска в оперативную память, так и в буферы в видеопамяти).

  • Vga © (02.06.07 23:46) [59]
    Гм. Статью я читал, однако это благополучно забыл :) Но вообще-то, я имел в виду CPU
 
Конференция "Игры" » Как реализовать графику на 2D движке [Delphi, Windows]
Есть новые Нет новых   [134431   +10][b:0][p:0.001]