C# 如何利用缓冲区?

C# 如何利用缓冲区?,c#,opentk,C#,Opentk,我想用OpenTK画一个3d物体的线框, 但我不想用opentk方法来画,但我想我必须用opentk Buffer来画,但我不知道如何开始。我的意思是,我有一个方法来绘制,但是如何覆盖OpenTK中的绘制 // Push current Array Buffer state so we can restore it later GL.PushClientAttrib(ClientAttribMask.ClientVertexArrayBit); GL.Color3

我想用OpenTK画一个3d物体的线框, 但我不想用opentk方法来画,但我想我必须用opentk Buffer来画,但我不知道如何开始。我的意思是,我有一个方法来绘制,但是如何覆盖OpenTK中的绘制

// Push current Array Buffer state so we can restore it later
        GL.PushClientAttrib(ClientAttribMask.ClientVertexArrayBit);
        GL.Color3(Color.SkyBlue);
        //GL.ClientActiveTexture(TextureUnit.Texture0);
        //GL.BindTexture(TextureTarget.Texture2D, tex);

        GL.BindBuffer(BufferTarget.ArrayBuffer, dataBuffer);
        // Normal buffer
        GL.NormalPointer(NormalPointerType.Float, 0, (IntPtr)(normOffset * sizeof(float)));

        // TexCoord buffer
        GL.TexCoordPointer(2, TexCoordPointerType.Float, 0, (IntPtr)(texcoordOffset * sizeof(float)));

        // Vertex buffer
        GL.VertexPointer(3, VertexPointerType.Float, 0, (IntPtr)(vertOffset * sizeof(float)));

        // Index array
        GL.BindBuffer(BufferTarget.ElementArrayBuffer, indexBuffer);
        GL.DrawElements(BeginMode.Triangles, mesh.Tris.Length * 3, DrawElementsType.UnsignedInt, IntPtr.Zero);
       // GL.DrawElements(BeginMode.Lines, mesh.Tris.Length * 3, DrawElementsType.UnsignedByte, IntPtr.Zero);
        // Restore the state
        GL.PopClientAttrib();

我不知道你的意思你是说缓冲区而不是buffer?还有通读和相关文档吗?OpenTK Draw方法对于渲染是必不可少的,你不能在没有大量开销的情况下将自己的数据流传输到图形卡,为什么要覆盖OpenTK Draw方法?作为我的类助手,我需要使用我自己的绘制方法绘制线框。。。这就是为什么我想取代OpenTK的方法我怀疑你的任务是编写渲染管道,也许你应该澄清你自己应该写什么。单是一个好的光栅化器就需要数周的时间来编写: