C# 如何利用缓冲区?
我想用OpenTK画一个3d物体的线框, 但我不想用opentk方法来画,但我想我必须用opentk Buffer来画,但我不知道如何开始。我的意思是,我有一个方法来绘制,但是如何覆盖OpenTK中的绘制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
// 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的方法我怀疑你的任务是编写渲染管道,也许你应该澄清你自己应该写什么。单是一个好的光栅化器就需要数周的时间来编写: