Bonjour,

Je développe un moteur de particule. et bosse actuellement sur qq optimisations. Pour l'instant j'arrive a gerer 10.000 particules avec un frameRate de 30 sec environs. Je ne sais pas si c'est un bon score ou non...

Bref, a l'heure actuelle je n'utilise aucunes display list pour afficher les particules. J'ai tenter la chose suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
public void drawObjet(GL gl, float counter) {
 
		if (!getGroupe().isThereParticleAlive()) {
			return;
		}
 
		// On gere les transformations pour le groupe de particule
		// sauvegarde de la matrice pour la translation au centre
		gl.glPushMatrix();
		// on effectue la translation pour placer le solide au centre du repere
		gl.glTranslated(-position.getX(), -position.getY(), -position.getZ());
 
		for (Particle particle : getGroupe().getParticules()) {
			// particule encore en vie
			if (!particle.isAlive()) {
				continue;
			}
 
			// if (displayList.isCreated()) {
			// displayList.callList(gl);
			// continue;
			// }
			//
			// displayList.initNumList(gl);
 
			// On gere les transformations de la particule en question
			gl.glPushMatrix();
 
			gl.glTranslated(-particle.getPosition().getX(), -particle.getPosition().getY(), -particle
					.getPosition().getZ());
 
			// dessine la particule
			basicRenderer.display(particle, gl);
 
			// on restaure la matrice
			gl.glPopMatrix();
		}
 
		// on restaure la matrice
		gl.glPopMatrix();
	}
L'idée serait d'associer au mm numéro de liste les différentes particules. Ensuite je suis perdu avec les transformations et les déplacements individuelles de mes particules.

Suis je sur la bonne voie ?
Avez vous des conseils pour améliorer mon idée ???


D'avance merci