Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Allegro 5 problem z fps

Ostatnio zmodyfikowano 2013-08-21 15:33
Autor Wiadomość
ison
» 2013-08-20 16:04:37
Jeśli faktycznie chcesz zapełnić ekran kafelkami 10x10 to rzeczywiście mając osobne wywołania dla każdego quada wydajność może szybko spaść. 62x62 = 3844 kafli = 7688 trójkątów, o ile w Twoim przypadku nie jest to aż tak niewiele, to używając vertex array jest to bardzo mało i powinieneś bez problemu mieć 80+ fps przy takiej liczbie.

Jeśli chcesz się bawić w optymalizacje i użyć VA to: https://www.allegro.cc/manual​/5/al_draw_indexed_prim
Przy użyciu vertex array'ów możesz rysować wszystkie kafle szybko jednym wywołaniem - haczyk jest jedynie w teksturach, musisz upchnąć wszystkie tekstury kafli do jednej i dla każdego kafla określić jego tex coordy.
Pogooglaj, pewnie gdzieś znajdziesz przykład użycia VA w allegro.
P-90627
Nekronomik
Temat założony przez niniejszego użytkownika
» 2013-08-21 15:33:30
Tak wygląda pętla która wyświetla mi mapę i jest ograniczona do 50 kl/s
C/C++
int pokaz()
{
    int xp, yp;
    for( int y = 0; y < 100; y++ )
    {
        for( int x = 0; x < 100; x++ )
        {
            xp = parametry_kafla.wielkosc_kafla * x + parametry_wyswietlania.przesun_x;
            yp = parametry_kafla.wielkosc_kafla * y + parametry_wyswietlania.przesun_y;
            //teren_grafika(okno_x, okno_y , x, y, parametry_wyswietlania.poziom_z);
            if( xp >- parametry_kafla.wielkosc_kafla && xp < okno_x - 200 && yp >- parametry_kafla.wielkosc_kafla && yp < okno_y && kafle[ parametry_wyswietlania.poziom_z ][ y ][ x ].zajenty == 1 )
            {
                al_draw_rotated_bitmap( z[ kafle[ parametry_wyswietlania.poziom_z ][ y ][ x ].nr_bitmapy ], 10, 10, xp + 10, yp + 10, ALLEGRO_PI / 180 * kafle[ parametry_wyswietlania.poziom_z ][ y ][ x ].obrot, false );
            }
        }
    }
}
ilość wyświetlonych kafli zależy od wielkości okienka.
Problem jest też gdy nawet wyświetlam kafle wielkości 2x2 lub 1x1 px.
Zamiast OpenGL mam Direct3D, a aktywność karty graficznej podczas działania mojego programu wynosi 0%(czasami 13%)
P-90692
1 « 2 »
Poprzednia strona Strona 2 z 2