`

C#的OpenGL开发

 
阅读更多
用第三方插件是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画面的窗口)找到就行了 

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1791625
分享到:
评论

相关推荐

    C#下的opengl开发库

    标题中的"C#下的opengl开发库"指的是在C#编程环境中用于与OpenGL交互的库。这个库可能包含了封装好的类和方法,使得C#开发者可以轻松地调用OpenGL的功能,进行图形渲染、场景建模、动画处理等任务。这些库通常会处理...

    CSharp-OpenGL.rar_C#OPENGL_C#开发OPENGL_CSharp opengl_c# opengl 等高

    C# OpenGL 三维立体图绘制 源码 用C#实现调用opengl实现三维图的绘制。

    C#的OpenGL开发库源代码

    在C#中,为了利用OpenGL的功能,开发者通常会使用一个名为CSGL(C# OpenGL)的开发库。这个库提供了C#语言的绑定,使得.NET开发者能够方便地访问和使用OpenGL的API。 CSGL(C# OpenGL)是标题中提到的核心知识点,...

    c# opengl 绘制三维球型

    总的来说,通过C#和CSGL库,开发人员能够轻松地在.NET环境中实现OpenGL的3D图形绘制。虽然这里我们只讨论了绘制80面球体的基本步骤,但这个基础可以扩展到更复杂的3D场景和几何形状。深入学习OpenGL和CSGL,你可以...

    C#+OpenGL开发的三维旋转四面体

    学习OpenGL一段时间了,这里分享一下入门的小例子,帮助大家入门,C#+OpenGL开发的三维旋转四面体

    C#+OpenGL绘制正方体

    在本项目"C#+OpenGL绘制正方体"中,我们探讨了如何利用Microsoft的Visual Studio 2012集成开发环境(IDE)以及开源图形库OpenGL,来创建一个可交互的3D正方体模型。OpenGL是一种强大的跨平台图形库,广泛应用于游戏...

    csgl C#Opengl插件

    csgl是c#结合opengl进行3d开发的插件 虽然有些老了但是依然很实用 欢迎C# opengl爱好者交流心得 一共两个文件 记得下在另一个 要一起用 还有个配套的例子

    C#+OpenGL开发3D小行星游戏源码.zip

    用c# 和OPenGl开发的小飞机躲避小星星的游戏,可以学习和参考,里面有具体的代码实现.希望帮到你们哦.

    C# opengl 的一个三维球 VS2008

    标题 "C# OpenGL 的一个三维球 VS2008" 指的是使用C#编程语言结合OpenGL图形库,在Visual Studio 2008开发环境中创建的一个三维球体渲染示例。OpenGL是一个跨语言、跨平台的编程接口,用于渲染二维和三维图形,而C#...

    C#+OpenGL绘图实例

    C#是微软开发的一种面向对象的编程语言,它具有现代化的特性和语法,使得与OpenGL交互变得更加便捷。 首先,"C#+OpenGL绘图实例"可能包含了使用.NET Framework或.NET Core的OpenTK库,这是一个C#的OpenGL绑定,允许...

    数值模拟实时三维可视化的C#与OpenGL实现

    6. **关键技术挑战与解决方案**:在.NET环境下利用C#与OpenGL进行三维可视化开发,面临的挑战主要包括API的适配、性能优化、以及跨平台兼容性问题。解决方案通常涉及深度学习OpenGL的底层机制,熟练掌握C#的高级特性...

    C# OpenGL类库

    C#,作为.NET框架的一部分,通常与Windows应用程序和游戏开发相关联,但其本身并不直接支持OpenGL。然而,通过第三方类库,如"C# OpenGL类库",C#开发者也能利用OpenGL的强大功能。 这个类库可能是将OpenGL的功能...

    CSharpOpenGL开发_openglc#_opengl_CsharpOpenGL_csharp_

    这个项目为初学者提供了一个基础的C# OpenGL开发环境,通过阅读和理解源代码,开发者可以深入学习C#与OpenGL的结合使用,进一步提升图形编程能力。同时,项目中的测试数据和使用说明也是实践和调试的重要参考资料。

    C#下开发OpenGL应用工具包

    C#下开发OpenGL应用工具包,支持跨平台,openal opangl opencl

    OpenGL c#学习例子

    在C#中,通过OpenGL接口可以实现这些功能,为游戏开发、科学可视化、数据可视化等领域提供强大的图形渲染能力。 NeHe教程是OpenGL编程的经典入门资源,由Jeffrey Ventrella创建,提供了许多逐步教学的实例,涵盖了...

    C# OPENGL贴图

    OpenGL是跨语言、跨平台的2D和3D图形库,它被...总的来说,"C# OpenGL贴图"这个实例程序涵盖了3D图形编程的基础,通过学习和实践,你可以创建出具有真实感的3D场景,这在游戏开发、科学模拟和艺术创作中都有广泛应用。

    C#与opengl的连接程序

    2. **win7_vs2010环境下OPENGL配置.doc**:这是一个文档,很可能是指导如何在Windows 7和Visual Studio 2010环境下配置OpenGL开发环境的步骤。可能包括安装必要的库、设置项目属性以及链接OpenGL和GLUT库等内容。 3...

    C#+opengl实例

    OpenGL是一个跨语言、跨平台的编程接口,用于渲染2D和3D图形,而C#则是一种广泛用于开发桌面应用、游戏和图形界面的语言。通过结合两者,开发者可以利用C#的易用性和强大的类库,以及OpenGL的高性能图形处理能力。 ...

    OpenGL.rar_CSharp opengl_OpenGL CSharp_csgl.native.d_opengl

    总的来说,这个压缩包提供了一个完整的C# OpenGL开发环境,包括必要的库文件和示例代码,帮助初学者快速入门OpenGL编程。通过运行提供的示例和理解源码,开发者可以深入理解OpenGL的工作原理以及如何在C#项目中集成...

Global site tag (gtag.js) - Google Analytics