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

OpenGL optymalizacja funkcji rysowania

Ostatnio zmodyfikowano 2016-12-15 21:07
Autor Wiadomość
Nazgul
Temat założony przez niniejszego użytkownika
OpenGL optymalizacja funkcji rysowania
» 2016-12-15 19:58:56
Dzień dobry,
Mam funkcję rysującą obiekt na scenie

C/C++
void Object::Draw() {
    glBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA );
    glBindTexture( GL_TEXTURE_2D, * texture );
    for( unsigned int i = 0; i < faces.size(); i++ )
    {
        glBegin( GL_TRIANGLES );
        glTexCoord2f( faces[ i ].vt[ 0 ].x, faces[ i ].vt[ 0 ].y );
        glVertex3f( faces[ i ].v[ 0 ].x, faces[ i ].v[ 0 ].y, faces[ i ].v[ 0 ].z );
        glTexCoord2f( faces[ i ].vt[ 1 ].x, faces[ i ].vt[ 1 ].y );
        glVertex3f( faces[ i ].v[ 1 ].x, faces[ i ].v[ 1 ].y, faces[ i ].v[ 1 ].z );
        glTexCoord2f( faces[ i ].vt[ 2 ].x, faces[ i ].vt[ 2 ].y );
        glVertex3f( faces[ i ].v[ 2 ].x, faces[ i ].v[ 2 ].y, faces[ i ].v[ 2 ].z );
        glEnd();
    }
}

jednak jak stworzyłem obiekt (w 3D zwykły drewniany płot), składający się z 688 trójkątnych ścian(face'ów),
w moim programie go załadowałem, powieliłem 10 razy i ustawiłem żeby tworzył jeden długi płot, to okazało się że mam 30 FPS
Czy są sposoby na optymalizacje tego, bo gra której świat składa się z dziesięciu płotków to trochę żenada?

Pewnie są informacje w google, ale naprawdę nie mam pojęcia w jaki sposób tego szukać.
P-155009
czaffik
» 2016-12-15 20:55:32
Możesz "opakować" funkcje rysujące płotek w listy wyświetlania:
http://cpp0x.pl/kursy/Kurs-OpenGL-C++/Listy-wyswietlania/227
jest też coś takiego jak tablice wierzchołków:
http://cpp0x.pl/kursy/Kurs-OpenGL-C++/Tablice-wierzcholkow/236
- to chyba takie podstawowe optymalizacje dla OpenGla starszej wersji (bez shaderów)
resztę możesz doczytać tutaj:
http://cpp0x.pl/kursy/Kurs-OpenGL-C++/Optymalizacja/244
albo szukać w google prubując wpisywać opengl + optymalizacja kodu, coś w tym stylu.
P-155015
Nazgul
Temat założony przez niniejszego użytkownika
» 2016-12-15 21:07:22
Dzięki wielkie;)
P-155016
« 1 »
  Strona 1 z 1