OpenGL动画定时器立即模式

时间:2014-03-10 15:30:11

标签: wpf opengl animation timer sharpgl

我正在使用SharpGL在WPF中使用OpenGL。我知道如何以立即模式绘制东西,但我想为绘图的每次迭代设置动画。我正在绘制一条线条,但我的问题是它一次显示所有内容,我希望能够显示正在绘制的对象。我已经尝试过使用glFlush强制它逐行绘制但是它不起作用。任何想法,这是我的代码:

 gl.Begin(OpenGL.GL_LINE_STRIP);
                        for (int i = 0; i < parser.dataSet.Count; i++)
                        {

                           gl.Color((float)i, 3.0f, 0.0f);
                           gl.Vertex(parser.dataSet[i].X, parser.dataSet[i].Y, parser.dataSet[i].Z);
                           gl.Flush();
                        }
                       gl.End();

1 个答案:

答案 0 :(得分:0)

您可以尝试使用每帧增加的计数器。在0处启动计数器以不绘制任何内容,然后让它转到parser.dataSet.Count。然后改变你的循环让i&lt;计数器而不是i&lt; parser.dataSet.Count。您可以使用计时器来控制更新计数器的频率。另外我不认为你应该在gl.Begin和gl.End之间调用gl.Flush。在这两个函数调用之间可以使用一组有限的函数。