C#有免费的OpenGL支持库吗?如果是这样,我使用哪一个,在哪里可以找到样本项目?
C#是否为OpenGL提供类?
OpenTK是对Tao API的改进,因为它使用惯用的C#样式,包括重载,强类型枚举,异常和标准.NET类型:
GL.Begin(BeginMode.Points); GL.Color3(Color.Yellow); GL.Vertex3(Vector3.Up);
与仅反映C API的Tao相反:
Gl.glBegin(Gl.GL_POINTS); // double "gl" prefix Gl.glColor3ub(255, 255, 0); // have to pass RGB values as separate args Gl.glVertex3f(0, 1, 0); // explicit "f" qualifier
这使得移植更难,但使用起来非常好.
作为奖励,它提供字体渲染,纹理加载,输入处理,音频,数学......
更新18.1.2016:今天,OpenTK维护者已经离开了项目,使其未来不确定.论坛充斥着垃圾邮件.维护者建议转移到MonoGame或SDL2#.
我认为@korona的意思是因为它只是一个C API,你可以直接使用C#直接消费它,如下所示:
[DllImport("opengl32")] public static extern void glVertex3f(float x, float y, float z);
不幸的是,您需要为您调用的每个OpenGL函数执行此操作,这基本上就是Tao为您所做的事情.
陶应该是一个很好的框架.
从他们的网站:
Tao Framework for .NET是一组绑定,用于利用.NET和Mono平台促进跨平台媒体应用程序开发.
SharpGL是一个允许您在Windows窗体或WPF应用程序中使用OpenGL的项目.
我也会推荐Tao Framework.但还有一点需要注意:
看看这些教程:http: //www.taumuon.co.uk/jabuka/
你可以在没有包装器的情况下使用OpenGL,并在C#中原生使用它.正如Jeff Mc所说,你必须使用DllImport导入你需要的所有功能.
他遗漏的是在使用任何OpenGL函数之前必须创建上下文.这并不难,但还有其他一些不那么直观的DllImports需要完成.
我在VS2012中创建了一个示例C#项目,几乎是在Windows上运行OpenGL所需的最低限度.它只将窗口涂成蓝色,但它应该足以让你开始.该示例可以在http://www.glinos-labs.org/?q=programming-opengl-csharp找到.在底部查找No Wrapper示例.