C#使用OpenGL

原创 2007年09月19日 16:46:00
这里不是OpenGL的教程,只是说说怎样在C#里面使用    我用的第三方插件是CSGL,其官方网站为:http://csgl.sourceforge.net/
    关键是使用其提供的两个DLL:csgl.dll  和 csgl.native.dll,csgl.dll是开发使用的,在一个C#工程中,用“项目”->“添加引用”->“浏览”找到csgl.dll 引用。然后把两个dll都放到程序目录在运行时使用。
      在需要使用OpenGL函数的cs文件的using声明中,加上:using CsGL.OpenGL命名空间,就可以使用静态GL类调用OpenGL函数和变量了,比如GL.glRotatef
       而对于显示OpenGL窗口,需要自己建立一个从CsGL.OpenGL.OpenGLControl类继承的控制类,并至少做以下重构:
 
  protected override void OnCreateControl()
  {
   GL.glClearDepth(1.0f);
   GL.glDepthFunc(GL.GL_LEQUAL);
   GL.glEnable( GL.GL_DEPTH_TEST );
  }
 
protected override void OnSizeChanged(EventArgs e)
  {
   base.OnSizeChanged(e);
 
   Size s = Size;
   double aspect_ratio = (double)s.Width /(double) s.Height;
   ViewCtrl.VIEWSIZE_WIDTH  = s.Width;
   ViewCtrl.VIEWSIZE_HEIGHT = s.Height;
   GL.glMatrixMode(GL.GL_PROJECTION);
   GL.glLoadIdentity();
   GL.gluPerspective(63.0f, aspect_ratio, 1f, 4000.0f);
 
   GL.glMatrixMode(GL.GL_MODELVIEW);
   GL.glLoadIdentity();
  }
 
public override void glDraw()
  {
   GL.glClearColor(0.1f,0.1f,0.2f,1.0f);
   GL.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);
   GL.glLoadIdentity();
    }
 
(在glDraw()中动态绘制想画的东西)
 
然后捆绑到一个Form窗体上显示就可以:
如:声明:public class csglViewer : OpenGLControl
在窗体中实例化:csglViewer myview;
myview = new csglViewer();
myview.dock = DockStyle.Fill;
Form1.Controls.Add(myview);
 
OK~其实C#里面使用OpenGL跟C++没有太大区别,OpenGL毕竟是所谓平台无关的,那些函数基本上都是一致的。重点其实就是学OpenGL而不是什么语言的OpenGL,只要把接口(或者可以说显示OpenGL画面的窗口)找到就行了  
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

.NET(C#) 中使用 CsGL-OpenGL .NET

.NET(C#) 中使用 CsGL-OpenGL .NET 转载自:http://blog.csdn.net/ewyetc/article/details/6665403   最近才发现,很久...

C# OpenGL(SharpGL)Begin函数End函数使用

Begin函数: 函数功能: 绘制图形起始函数,参数表示图元的类型。 函数原型: void Begin(mode M);  (mode为unit类型,其值为在OpenGL类下定义的常数值)。...

OpenGL In C# 02 使用FBO的方式绘制OpenGL窗体 并在XP下实现全透明

FBO即是Frame Buffer Object 帧缓冲区,使用它可以在一个不显示的显存上进行OpenGL图形的绘制,然后根据需要把图形数据从显存中提取出来,也可以直接当做纹理使用。     如果将...

c#中使用OpenGL

  • 2015-08-12 11:27
  • 28KB
  • 下载

NEHE的C#使用OPENGL的例子

  • 2007-07-11 10:43
  • 47KB
  • 下载

OpenGL In C# 04 Nehe 第二课 绘制多边形

从本文起,将开始将Nehe的OpenGL教程使用C#来进行一次实现。     本实现都是以第三课的框架为基础,能够调用OpenGL函数、并能够进行字符串的绘制,以方便程序的显示。具体的字符串显示过程...

tao.opengl + C#

tao.opengl + C#

C#添加Tao控件来调用opengl

1. 先安装tao软件,路径默认的是C:Program Files\TaoFramework\bin 2. 直接添加引用, 3.选择刚才安装的那个路径C:ProgramFiles\TaoFra...
  • gzp007
  • gzp007
  • 2014-10-05 03:10
  • 1520
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)