我正在使用OpenTK,它是C#中的OpenGL,所以opengl中的任何答案都让我满意......
我有一个3D对象,我想要做的是绘制一些线条(线框)并仅显示它们(我知道aobut GLPolygonMode - 这不是我想要做的)
我有自己的Line - Drawing算法,并且通过使用它我想绘制线框并在屏幕上显示它。经过几个小时的互联网挖掘,我发现我可以通过使用backbuffer来实现,但不知道如何... 这是我的绘图代码示例我在位图上绘制一个像素(不是它:()
while (x != x2)
{
if (d >= 0)
{
x += xi;
y += yi;
d += ai;
}
else
{
d += bi;
x += xi;
}
bitmap.SetPixel(x, y, col);
}
有没有办法在缓冲区上绘图然后在屏幕上显示?或者还有其他方法吗?
答案 0 :(得分:0)
考虑到你是OpenGL的新手:
OpenGL的默认配置使用双缓冲。这意味着每次使用OpenTK.Graphics.OpenGL.GL.DrawXXX()
方法或SetPixel()或其他类似的方法时,都会在后台缓冲区中绘图。
完成绘图后,调用OpenTK.GLControl.SwapBuffers()
并将后缓冲区切换为前缓冲区,反之亦然。
由于前缓冲区是屏幕上显示的内容,因此您将看到绘图。
当然,您不会忘记使用OpenTK.Graphics.OpenGL.GL.Begin()
和BeginMode
拨打OpenTK.Graphics.OpenGL.GL.End()
的电话。