Bonjour
Mon application est finie. Mais je souhaite encore l'optimiser.
Ainsi, une mesure sur mon profiler me montre qu'elle passe du temps à dessiner mon réseau. En effet, mon application visualise des réseaux où mes noeuds sont des glutSolidSphere et mes liens des glutSolidCylinder.
Chaque noeud est stocké dans un ArrayList (je code en Java5) et chaque lien est aussi dans un ArrayList. Donc, je dessine séquentiellement:
Comme vous le voyez sur mon code de dessus, je fais du picking sur mes noeuds.
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 private void drawNodes(GL gl, int mode) { gl.glPushMatrix(); gl.glPopName(); for (int i = 0; i < this.nodes.size(); i++) { if (mode == gl.GL_SELECT) { gl.glLoadName(i); gl.glPushName(i); } displayNode(gl, i); } gl.glPopName(); gl.glPopMatrix(); } private void drawEdges(GL gl, int mode) { gl.glPushMatrix(); for (int i = 0; i < this.edges.size(); i++) { GLEdge e = this.edges.get(i); if (e.isVisible()) { e.draw(gl, new GLU(), mode); } } gl.glPopMatrix(); } private void drawWorld(GL gl, int mode) { drawNodes(gl, mode); setWrap(); //wrap.draw(gl); //wrap.print(); drawEdges(gl, mode); }
Ma question: comment puis-je optimiser sachant que ce qui me prend du temps, c'est la restitution des mes cylindres et sphères. On me parle des display lists, mais avec le picking, je ne vois pas comment je peux les placer. Je précise que mes noeuds et liens sont des objets distincts (GLNode et GLEdge). Dans ces objets, j'effectue les transformations géométriques adéquates et j'ordonne le dessin.
Merci d'avance de vos conseils.
@++
Partager