随笔 - 741  文章 - 0  评论 - 260  阅读 - 416万

OpenTK学习笔记

 最近要在C#的语言环境下开发OpenGL程序,参考了网上的博客论坛http://www.cnblogs.com/hanyonglu/archive/2012/06/12/2546581.html,总结如下:

       1.在C#中直接调用OpenGL函数比较费事,一般不直接使用;

       2.一般的开发方法是借助第三方开源库,比如SharpGL、CsGL、OpenTK、Tao框架等。

       下面比较一下SharpGL、CsGL、OpenTK这三种开发框架:

       1.SharpGL

       SharpGL的主页:http://sharpgl.codeplex.com/

 

     只需要在下载页面中下载SharpGL Visual Studio Extension文件,解压之后点击直接安装,就会在Visual Studio 2010中集成SharpGL的项目模板,如下图所示:

     在新建一个SharpGL Windows Forms Application工程后,将自动建立一个工程,可以直接运行,运行效果如下:

 

     对SharpGL的总结如下:

    (1)安装部署方便,可以非常容易的集成到Windows Forms和WPF中去使用;

    (2)存在内存泄露的问题,即使运行一个简单的程序,内存在不断增长,当增长到了一定时就不会有太多的增长,由于例程都有这样的问题,对于我们自己编写程序,应作适当考虑;

    (3)目前SharpGL已经支持到OpenGL4.2(http://sharpgl.codeplex.com/discussions/431042),在所有的第三方库中,其支持的OpenGL版本应该是最高的;

    (4)不支持Linux和Mac平台(http://sharpgl.codeplex.com/discussions/356490

 

      2. CsGL

     CsGL的主页:http://csgl.sourceforge.net/

     CsGL也是一个比较方便的库,运行时占用资源较少,响应速度较快。在下载了之后只需要将csgl.dll和csgl.native.dll这两个库拷贝至system32文件夹内即可。但在运行程序时,会报以下错误:

 

     解决的方法是将csgl.native.dll拷贝至程序运行路径下。

     对CsGL的总结如下:

     (1)是一个较为轻量级的库,运行时占用资源少,响应速度快;

     (2)官方已经至少十年没有更新,原因是官方认为CsGL已经足够稳定,能够支持大多数的程序了,不需要继续更新了(Development of CsGL has essentially stopped. CsGL has proven to be stable and good enough for most applications),正因为如此,CsGL支持的OpenGl版   本最低;

     (3)CsGl只支持32位的程序,无法支持64位,网上并没有提供64位的dll,这在很大程度上影响了其使用。

 

     3.OpenTK

      OpenTK的主页:http://www.opentk.com/

 

     在下载了OpenTK的安装文件后,直接安装OpenTK就可以使用了。

     对OpenTK的总结如下:

     (1)安装部署方便,在程序中可以直接引用;

     (2)可以支持跨平台的开发,特别是支持OpenGL ES;

     (3)支持64位的Windows程序开发;

     (4)在资源占用和响应速度上虽然比不上CsGL,但是优于SharpGL;

     (5)对OpenGL的版本支持在3.3以上。

posted on   莫水千流  阅读(873)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示