下面将对VS2010中配置OpenGL进行简单介绍。
学习OpenGL前的准备工作
第一步,选择一个编译环境
现在Windows系统的主流编译环境有Visual Studio,Broland C++ Builder,Dev-C++等,它们都是支持OpenGL的。
我选择Visual Studio 2010和VC6++作为学习OpenGL的环境。
第二步,安装GLUT工具包
GLUT不是OpenGL所必须的,但它会给我们的学习带来一定的方便,推荐安装。
Windows环境下的GLUT下载地址:(大小约为150k)
http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip
无法从以上地址下载的话请使用下面的连接:
http://upload.programfan.com/upfile/200607311626279.zip
Windows环境下安装GLUT的步骤:
1、将下载的压缩包解开,将得到5个文件,分别是glut.h,glut.lib,glut32.lib,glut.dll,glut32.dll
2、将其中的glut.h放到C:\Program Files\Microsoft SDKs\Windows\v7.0A\Include\gl里面,VS2010会自动搜索这个路径。
3. 将glut.lib和glut32.lib复制到F:\vs2010\VC\lib下,根据VS2010的具体安装路径确定。
4. 将glut.dll和glut32.dll复制到C:\WINDOWS\system32下。
至此,环境已经配置好了。
下面来开发一个简单的c++程序,环境vs2010中的vc
1. 新建->项目->win32控制台应用程序。
2. 输入项目名:simpleGL,其他默认即可。
3. 输入源代码:
1. #include "stdafx.h"
2. #include <gl/glut.h>
3. #include <stdio.h>
4. #include <time.h>
5.
6. // 太阳、地球和月亮
7. // 假设每个月都是12天
8. // 一年12个月,共是360天
9. static int day = 200; // day的变化:从0到359
10.
11. double CalFrequency()
12. {
13. static int count;
14. static double save;
15. static clock_t last, current;
16. double timegap;
17.
18. ++count;
19. if( count <= 50 )
20. return save;
21. count = 0;
22. last = current;
23. current = clock();
24. timegap = (current-last)/(double)CLK_TCK;
25. save = 50.0/timegap;
26. return save;
27. }
28.
29. void myDisplay(void)
30. {
31. double FPS = CalFrequency();
32. printf("FPS = %f\n", FPS);
33.
34. glEnable(GL_DEPTH_TEST);
35. glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
36.
37. glMatrixMode(GL_PROJECTION);
38. glLoadIdentity();
39. gluPerspective(75, 1, 1, 400000000);
40. glMatrixMode(GL_MODELVIEW);
41. glLoadIdentity();
42. gluLookAt(0, -200000000, 200000000, 0, 0, 0, 0, 0, 1);
43.
44. // 绘制红色的“太阳”
45. glColor3f(1.0f, 0.0f, 0.0f);
46. glutSolidSphere(69600000, 20, 20);
47. // 绘制蓝色的“地球”
48. glColor3f(0.0f, 0.0f, 1.0f);
49. glRotatef(day/360.0*360.0, 0.0f, 0.0f, -1.0f);
50. glTranslatef(150000000, 0.0f, 0.0f);
51. glutSolidSphere(15945000, 20, 20);
52. // 绘制黄色的“月亮”
53. glColor3f(1.0f, 1.0f, 0.0f);
54. glRotatef(day/30.0*360.0 - day/360.0*360.0, 0.0f, 0.0f, -1.0f);
55. glTranslatef(38000000, 0.0f, 0.0f);
56. glutSolidSphere(4345000, 20, 20);
57.
58. glFlush();
59. glutSwapBuffers();
60. }
61.
62. void myIdle(void)
63. {
64. ++day;
65. if( day >= 360 )
66. day = 0;
67. myDisplay();
68. }
69.
70. int main(int argc, char *argv[])
71. {
72. glutInit(&argc, argv);
73. glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE);
74. glutInitWindowPosition(100, 100);
75. glutInitWindowSize(400, 400);
76. glutCreateWindow("太阳,地球和月亮");
77. glutDisplayFunc(&myDisplay);
78. glutIdleFunc(&myIdle);
79. glutMainLoop();
80.
81. return 0;
82. }
4. 选择项目属性,选择C/C++->预处理器,在右侧的“预处理器定义”处,删除“_CONSOLE“,如图
5. 在项目属性中,切换到“链接器”->系统,右侧窗口的子系统选择:窗口 (/SUBSYSTEM:WINDOWS)
6. 在项目属性中,再切换到“链接器”->命令行,在“其他选项”中输入:/ENTRY:mainCRTStartup (可以去除程序运行时出现的dos窗口)
编译运行,就能看到“太阳、地球和月亮的动态运行图”了!
手动卸载 Visual Studio
1. 删除 Visual Studio 2010 产品的所有实例。
2. 按下列顺序卸载任何支持产品。使用非英语安装时,还必须删除列出的某些产品的语言包。在您删除列表上的最后一个包之前,没有必要重新启动。
a. Microsoft Visual Studio 2010 ADO.NET 实体框架工具
b. Microsoft SQL Server 2008 R2 Transact-SQL 语言服务
c. Microsoft SQL Server 2008 R2 数据层应用程序项目
d. Microsoft SQL Server 2008 R2 数据层应用程序框架
e. Microsoft Sync Framework SDK 1.0 版 SP1
f. Microsoft Sync Framework Services 1.0 版 SP1
g. Microsoft Sync Framework Runtime 1.0 版 SP1
h. Microsoft Silverlight 3 SDK
i. Microsoft ASP.NET MVC 2
j. Microsoft ASP.NET MVC 2 - Visual Studio 2010 工具
k. Microsoft .NET Framework 4 Multi-Targeting Pack
l. Microsoft TFS 对象模型
m. Microsoft Visual F# 2.0 运行时
n. Microsoft Visual Studio x64 系统必备