OpenGL optymalizacja funkcji rysowania
Ostatnio zmodyfikowano 2016-12-15 21:07
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 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ć. |
|
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. |
|
Nazgul Temat założony przez niniejszego użytkownika |
» 2016-12-15 21:07:22 Dzięki wielkie;) |
|
« 1 » |