C#+csgl库进行OpenGL编程

C#+csgl库进行OpenGL编程

ID:39547179

大小:29.00 KB

页数:4页

时间:2019-07-06

C#+csgl库进行OpenGL编程_第1页
C#+csgl库进行OpenGL编程_第2页
C#+csgl库进行OpenGL编程_第3页
C#+csgl库进行OpenGL编程_第4页
资源描述:

《C#+csgl库进行OpenGL编程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、C#+csgl库进行OpenGL编程    OpenGL是图形硬件的一个软件接口,是一种快速、高质量的3D图形软件。它提供了近120个绘制点、线点多边形等3D图形的命令,可以完成绘制物体、变换、光照处理、着色、反走样、融合、雾化、位图和图像、纹理映射、动画等基本操作,通过把这一系列基本操作进行组合,可以构造更复杂的3D物体和描绘丰富多彩、千变万化的客观世界。      C#是以Microsoft.NET运行库为基础的一种编程语言,它几乎集中了所有关于软件开发和软件工程研究的最新成果,如面向对象、类型安全等,并被寄希望成为微软发布的用于企业编写基于COM+和视窗

2、系统的程序语言中的最好的一种。与C++相比,C#的语法更加简洁,调试更加容易,且应用程序开发周期短。把C#和OpenGL结合起来开发3D应用程序和软件,将显著提高开发效率。       在C#中,程序间的依赖项通过符号而不是文本来控制,因而不使用头文件,而且opengl32.dll以及opengl32.lib等文件也不能像在C++中那样进行部署和引用,所以,无法直接使用OpenGL所提供的图形库。       在C#中通过调用OpenGL动态链接库文件:csgl.dll和csgl.native.dll实现OpenGL所提供的强大的图形功能。这2个文件可以从cs

3、gl.sourceforge.net网页上获取。       csgl.dll中定义了4个名称空间,即CsGL,CsGL.OpenGL,CsGL.Pointers,CsGL.Util,其中,CsGL.OpenGL定义的4个类OpenGL、GL、GLU、GLUT中封装了几乎所有的OpenGL函数、用户库函数、辅助库函数和实用库函数及常量;类OpenGLControl中定义了OpenGL场景绘制函数,如场景的初始化、场景的绘制函数等;类OpenGLContext中定义了OpenGL环境控制命令,如像素格式、调色板的创建等命令。CsGL.Util定义了键盘、鼠标事件

4、及异常处理等。         为了能够使用这2个文件,先将这2个文件拷贝到系统文件夹%systemroot%╲system32中,然后在项目的属性页对话框中将"引用路径"设置为系统文件夹%systemroot%╲system32,这样C#就可以找到运行/调试应用程序所需要的库文件。          下面是如何在VS2005环境下实现OpneGL建模:1、usingCsGL.OpenGL;2、新建一个类派生于OpenGLControl类的控件类,类OpenGLControl中还定义了设备初始化函数InitGLContext、场景绘制函数glDraw、双缓存交

5、换函数SwapBuffers以及窗口大小改变时的重绘函数OnSizeChanged等。3、重写控件类的方法classClass_GL_View:CsGL.OpenGL.OpenGLControl{       //重写绘图函数       publicoverridevoidglDraw()       //初始化OpenGl控件       protectedoverridevoidInitGLContext()       //当控件大小改变时候       protectedoverridevoidOnSizeChanged(EventArgse)   

6、    //OpenGL控件鼠标事件       protectedoverridevoidOnMouseMove(MouseEventArgse)       ..........................}4、在窗口中调用OpenGL控件类,即将控件添加到窗口上面       publicControl_GL_View=newControl_GL();       publicForm_main()       {           InitializeComponent();           this.timer1.Start();     

7、      this.ClientSize=newSystem.Drawing.Size(600,400);           view.Parent=this;           view.BringToFront();           view.Dock=DockStyle.Fill;           this.Controls.Add(view);       }C#不直接支持openGL,但可以利用第三方插件CsGL.dll实现.现在和大家分享一下我的小程序:创建project"testOpenGL";然后添加一个继承OpenGLContr

8、ol的类MyView,代码如下,nam

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。