Hallo zusammen,
ich habe in meinem Spiel einen 3D raum, in dem ich mich frei bewegen kann (FPS). Dabei läuft mein Spiel mit c.a. 850 FPS.
Jetzt lade ich mit Assimp einen mesh und lasse diesen zwei mal darstellen (sollen zwei Gegner sein). Wenn jetzt diese zwei Gegner im raum stehen sinken die FPS von 850 auf 80!
Da in dem Spiel mal deutlich mehr Gegner zu sehen sein sollen muss ich da wohl etwas drastisch verbessern.
hier mein Code der den Gegner zeichnet (wid in einer Schleife für alle Gegner aufgerufen):
|
C-/C++-Quelltext
|
1
2
3
4
5
|
void drawGegner(float x, float y, float z) {
glTranslatef(x,y,z);
glCallList(gegner->getScene_list());
glTranslatef(-x,-y,-z);
}
|
Wie man sich denken kann sind x, z und y die koordinaten, wo sich der Gegner befinden soll. gegner ist von der Klasse ModellLoader.
Ich vermute, dass Translatef so lange braucht. Oder ist Assimp einfach so langsamm?
Wie könnte man den Code performanter machen.
Ach ja, zur Info, ich hab ein .obj Model (250 KB) mit einer .bmp Textur (192 KB).
Gruß
crazyTron