0

我正在使用 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();
4

1 回答 1

0

您可以尝试使用每帧递增的计数器。将计数器从 0 开始关闭以不绘制任何内容并让它上升到 parser.dataSet.Count。然后将循环更改为 i < 计数器而不是 i < parser.dataSet.Count。您可以使用计时器来控制更新计数器的频率。另外,我认为您不应该在 gl.Begin 和 gl.End 之间调用 gl.Flush。您可以在这两个函数调用之间使用一组有限的函数。

于 2014-03-10T20:11:49.910 回答