当前位置:  开发笔记 > 编程语言 > 正文

在C#中使用OpenGl?

如何解决《在C#中使用OpenGl?》经验,为你挑选了6个好方法。

C#有免费的OpenGL支持库吗?如果是这样,我使用哪一个,在哪里可以找到样本项目?

C#是否为OpenGL提供类?



1> 小智..:

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#.


没错,这些功能将从核心配置文件中删除.但这些论点仍然有效."OpenTK是对Tao API的改进,因为它使用惯用的C#样式,包含重载,强类型枚举,异常和标准.NET类型"
我不认为这些功能非常具有代表性,因为它们都已弃用并从OpenGl核心配置文件中删除.

2> Jeff Mc..:

我认为@korona的意思是因为它只是一个C API,你可以直接使用C#直接消费它,如下所示:

[DllImport("opengl32")]
public static extern void glVertex3f(float x, float y, float z);

不幸的是,您需要为您调用的每个OpenGL函数执行此操作,这基本上就是Tao为您所做的事情.



3> Ólafur Waage..:

陶应该是一个很好的框架.

从他们的网站:

Tao Framework for .NET是一组绑定,用于利用.NET和Mono平台促进跨平台媒体应用程序开发.



4> dharmatech..:

SharpGL是一个允许您在Windows窗体或WPF应用程序中使用OpenGL的项目.



5> Oliver..:

我也会推荐Tao Framework.但还有一点需要注意:

看看这些教程:http: //www.taumuon.co.uk/jabuka/



6> 小智..:

你可以在没有包装器的情况下使用OpenGL,并在C#中原生使用它.正如Jeff Mc所说,你必须使用DllImport导入你需要的所有功能.

他遗漏的是在使用任何OpenGL函数之前必须创建上下文.这并不难,但还有其他一些不那么直观的DllImports需要完成.

我在VS2012中创建了一个示例C#项目,几乎是在Windows上运行OpenGL所需的最低限度.它只将窗口涂成蓝色,但它应该足以让你开始.该示例可以在http://www.glinos-labs.org/?q=programming-opengl-csharp找到.在底部查找No Wrapper示例.


你的链接已经死了,请你分享你的项目.谢谢.
推荐阅读
喜生-Da
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有