[OpenGL, C++] Wyświetlanie dużej ilości elementów. W jaki sposób zwiększyć wydajność?
Ostatnio zmodyfikowano 2012-12-04 15:21
Mrusio Temat założony przez niniejszego użytkownika |
[OpenGL, C++] Wyświetlanie dużej ilości elementów. W jaki sposób zwiększyć wydajność? » 2012-12-04 11:20:23 Witam, poznałem już trochę podstaw OpenGL i chciałbym wygenerować sobie mapę do gry typu FPS. Chciałbym, aby teren nie był gładki, więc pomyślałem, że na początek zrobię siatkę kwadratów: void DrawTile() { glBegin( GL_LINE_LOOP ); glVertex3f( 0, 0, 0 ); glVertex3f( 1, 0, 0 ); glVertex3f( 1, 0, 1 ); glVertex3f( 0, 0, 1 ); glEnd(); }
int i, j; for( j = - 25; j < 25; j++ ) { for( i = - 25; i < 25; i++ ) { glPushMatrix(); glTranslated( i, 0, j ); DrawTile(); glPopMatrix(); } }
Siatka wygląda tak jak oczekiwałem, ale wydajność programu znacznie spada. Chciałbym jeszcze zwiększyć ilość kafelków oraz część z nich wyświetlać też po osi Y > 0 (tworząc np wzniesienia terenu), ale przy obecnej wydajności mój pomysł staje się niemożliwy. Chciałbym się dowiedzieć w jaki sposób wyświetlić tak dużą ilość elementów, aby wydajność programu nie spadała tak drastycznie. |
|
ison |
» 2012-12-04 11:31:04 |
|
kubawal |
» 2012-12-04 14:01:26 |
|
Mrusio Temat założony przez niniejszego użytkownika |
» 2012-12-04 15:21:21 listy niestety nic nie pomagają. Spróbuję z VBO :) |
|
« 1 » |