Bonjour à tous,

je suis en train de coder sous vb.net un projet pour mon boulot. (je n'ai pas le choix de la plateforme)
J'ai ajouté un petit peu de 3D via OpenTK qui utilise OpenGL.

Mon projet consiste à dessiner des cylindres, pour cela j'utilise une simple boucle

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
GL.Begin(BeginMode.Lines)
            For i = 0 To 360
                mycos = (Math.Cos(i * 2 * Math.PI / 360)) * 100
                mysin = (Math.Sin(i * 2 * Math.PI / 360)) * 100
                GL.Vertex3(mycos, mysin, 0)
                mycos = (Math.Cos(i * 2 * Math.PI / 360)) * 100
                mysin = (Math.Sin(i * 2 * Math.PI / 360)) * 100
                GL.Vertex3(mycos, mysin, 100)
            Next i
GL.End()
Sur ce cylindre, j'ai dessiné un filetage. j'ai gardé la même fonction mais j'ai ajouté une boucle qui me décale le point d'arrivé. Voici un exemple bidon :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
GL.Begin(BeginMode.Lines)
for j = 0 to 200
            For i = 0 To 360
                mycos = (Math.Cos(i * 2 * Math.PI / 360)) * 100
                mysin = (Math.Sin(i * 2 * Math.PI / 360)) * 100
                GL.Vertex3(mycos, mysin, j)
                mycos = (Math.Cos(i * 2 * Math.PI / 360)) * 100
                mysin = (Math.Sin(i * 2 * Math.PI / 360)) * 100
                GL.Vertex3(mycos, mysin, j+1)
            Next i
GL.End()
next j
Mon souci est que c'est très lourd de faire cela dans une boucle principal et j'ai mes FPS qui chutes...

Il existe une solution pour réduire cette charge ? Je suis débutant en OpenGl alors je ne fais peu être pas de la bonne manière.

Merci à vous.