
1. openGL简介: 基于OpenGL标准开发的应用程序需要动态链接库OpenGL32.DLL和Glu32.DLL才能运行. 在安装Windows NT时opengl环境搭建,这两个文件会自动加载到C中: \ WINDOWS \ SYSTEM32目录(假定用户在C驱动器上安装了Windows NT). OpenGL图形库函数封装在动态链接库OpenGL32.DLL中. 要开发基于OpenGL的应用程序,您必须首先了解OpenGL库功能. OpenGL函数命令方法非常常规. 每个库函数都有前缀gl,glu,aux,这表明该函数属于OpenGL基本库,实用库或辅助库. Windows NT下的OpenGL包含100多个核心函数,全部以gl开头,并且还支持其他四种类型的函数: OpenGL实用程序库函数: 43以glu为前缀; OpenGL辅助库功能: 31以aux作为前缀; Windows特定的库函数(WGL): 6以wgl作为前缀; Win32API函数(WGL): 5,无前缀. 2.安装GLUT工具包GLUT对于OpenGL并不是必需的,但是它将为我们的学习带来一些便利. 建议安装. Windows环境中的GLUT下载地址: (大小约为150k)GLUT代表OpenGL Application Toolkit. 英文名称是OpenGL Utility Toolkit. 它是与窗口系统无关的软件包. 它是Mark Kilgard在SGI期间撰写的.

作为AUX库的更强大替代方案,它用于隐藏不同窗口系统API的复杂性. 这是学习OpenGL编程的良好开端. 备注: SGI是硅谷一家知名的图形公司. 3.VS环境配置将解压缩下载的压缩包,并将获得5个文件(glut.dll,glut32.dll,glut.lib,glut32.lib,glut.h)(1)将glut.h复制到x: \程序文件\ Microsoft \ Visual Studio 10.0 \ VC \ include \ gl文件夹. 如果没有gl文件夹,则可以自己创建一个新文件夹. (X是安装VS的磁盘的符号)(2)将glut.lib和glut32.lib解压缩到静态函数库所在的文件夹中(即,lib文件夹与include并排放置) ). (3)将解压缩的glut.dll和glut32.dll放入操作系统目录下的system32文件夹中. (典型位置是: C: \ Windows \ System32)(注意: 如果在开发应用程序时使用OpenGL辅助库函数,则还需要下载相应的动态链接库,包括glaux.dll,glaux.lib,glaux.h( 4.示例第一个OpenGL程序首先创建一个项目,步骤如下: (1)创建Win32控制台应用程序.

(2)链接OpenGL库. 右键单击Visual C ++中的项目,选择“属性”,找到链接器标签,最后将opengl32.lib glut32.lib glu32.lib添加到输入中的其他依赖库中. 现在您可以将以下示例复制到项目中,编译并运行. 您可以看到一个三角形. 1. #include“ stdafx.h” 2. 3. #include 4. 5. //#include//glut.h自动包含glu.h和gl.h 6. 7. // //#include 8. 9. 10 . 11. voidrenderScene(void)12. 13. {14. 15. glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); 16. 17. glLoadIdentity(); 18. 19. glBegin(GL_TRIANGLES); 20. 21. glVertex3f(-0.5,-0.5,0.0); 22. 23. glVertex3f(0.5,0.0,0.0); 24. 25. glVertex3f(0.0,0.5,0.0); 26. 27. glEnd(); 28. 29. glutSwapBuffers(); 30. 31.} 32. 33. 34. 35. int_tmain(intargcopengl环境搭建,_TCHAR * argv [])36. 37. {38. 39. glutInit(&argc,(字符**)argv); 40. 41. glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA); 42. 43. glutInitWindowPosition(100,100); 44. 45. glutInitWindowSize(320,320); 46. 47. glutCreateWindow(“ HelloOpenGL”); 48. 49. glutDisplayFunc(renderScene); 50. 51. glutMainLoop(); /进入GLUT事件处理循环. 52. 53. return0; 54. 55.}主函数中以glut开头的函数包含在glut.h中.

GLUT库的功能主要执行诸如处理多窗口绘图,处理回调驱动的事件,生成级联弹出菜单,绘制位图字体和笔触字体以及管理各种窗口等任务. GlutInit用于初始化GLUT库并与窗口系统协商. GlutInitDisplayMode用于确定创建的窗口的显示模式. 参数GLUT_SINGLE指定单个缓存窗口. 这也是默认模式. 对应的模式是GLUT_DOUBLE双缓存窗口. 参数GLUT_RGB指定颜色RGBA模式,这也是默认模式. 对应的模式是GLUT_INDEX颜色索引模式窗口. ·GlutInitWindowSize初始化窗口的大小. 第一个参数是窗口的宽度,第二个参数是窗口的高度,以像素为单位. ·GlutInitWindowPosition设置初始窗口的位置. 第一个参数是窗口左上角的x坐标,第二个参数是窗口左上角的y坐标(以像素为单位). 屏幕左上角的坐标为(0,0),横坐标向右逐渐增大,纵坐标向下逐渐增大. ·GlutCreateWindow创建一个顶层窗口,该窗口的名称作为扩展名中的参数. ·GlutDisplayFunc注册当前窗口的显示回调函数. 当需要重绘窗口的图像层时,GLUT将调用该窗口的显示回调函数.

此示例中的Mydisplay是显示回调函数. display回调函数不带任何参数,并负责绘制整个图像层. 我们的大部分工作将重点放在此功能上. ·GlutMainLoop进入GLUT事件处理循环. 在GLUT程序中,glutMainLoop函数最多只能调用一次. 一旦被调用,它将不再返回并调用已注册的回调函数. 因此,此函数必须放在注册回调函数之后,在这种情况下为glutDisplayFunc. 4.遇到的问题该程序粘贴在Internet上,不能解决某些问题. 通常,如果发生链接错误,则基本上是链接库配置问题. 您需要检查是否有project-linker-input-additional库的属性. 这几个lib文件已加载,另一个是遇到“ stdafx.h”头文件,自己创建一个新的头文件,添加以下单词解决它并成功测试: // stdafx.h: 标准系统包括文件的包含文件,//或经常使用但未更改的特定于项目的包含文件,// #pragma一旦#include #include //待办事项: 在此处引用程序所需的其他头文件
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-157463-1.html
而不是大陆