实验一 OpenGL图形编程入门
一、实验目的
1、了解和掌握OpenGL的安装;
2、掌握一个简单的基于OpenGL的C++程序结构; 3.掌握win32程序框架;
4、掌握OpenGL中若干基本图形的绘制。 二、实验环境 硬件要求:
PC机,主流配置,最好为独立显卡,显存512M以上。 软件环境:
操作系统:Windows 7/Windows8
语言开发工具:Microsoft Visual studio 2010,Visual C++。 程序框架:
win32应用程序 三、实验内容与要求
? 要求: 实验所有步骤所生成的效果截图拷贝到实验报告文档里备查,并附上相应的代
码。 WORD文档命名方式:学号姓名-实验序号-实验名称。
? 内容:
1、准备好OpenGL库文件
? Glut32.dll 路径 %system root%\\ SysWOW64 ? Glut32.lib in PATH\\lib ? Glut.h in PATH\\Include
? system root为windows7或windows8安装路径 ? path为 Visual studio 2010的安装路径
2、建立一个工程文件,并运行样本程序my_first_program.cpp,观看结果。
(1)启动Microsoft Visual studio 2010,在菜单栏中点击“文件”选项,选择“新建”“项目”。如图1-1.
图1-1 新建项目
(2)在新建项目的窗口中选择“Visual C++的Win32项目”,然后输入项目名称(例如lab1_basis),选择项目的保存位置(或者使用默认保存路径),单击“确定”。如图1-2所示。
图1-2 Win32项目
(3) 将工程文件中Sources Files中的C++源文件(lab1_basis.cpp)替换成以下样本程序:
图1-3 替换成样本程序
//样本程序My_first_program.cpp #include \#include
glClearColor(0.0f, 0.0f, 0.0f, 1.0f); //设置清屏颜色
glClear(GL_COLOR_BUFFER_BIT); //刷新颜色缓冲区;
glFlush(); //用于刷新命令队列和缓冲区,使所有尚未被执行的OpenGL命令得到执行; }
int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow) {
UNREFERENCED_PARAMETER(hPrevInstance); UNREFERENCED_PARAMETER(lpCmdLine);
char *argv[] = {\, \};
int argc = 2; // must/should match the number of strings in argv
glutInit(&argc, argv); //初始化GLUT库;
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); //设置显示模式;(缓冲,颜色类型)
glutInitWindowSize(500, 500); //绘图窗口大小
glutInitWindowPosition(1024 / 2 - 250, 768 / 2 - 250); //窗口左上角在屏幕的位置
glutCreateWindow(\); //创建窗口,标题为“hello”; glutDisplayFunc(display); //用于绘制当前窗口;
glutMainLoop(); //表示开始运行程序,用于程序的结尾; return 0; }
运行结果:
创建一个名称是“hello”的窗口。如图1-4所示。
图1-4 Hello窗口
2、认真阅读以上样本程序,理解每个函数的作用,并修改窗口标题,显示为“我的第一个OpenGL程序”。 运行结果:如图1-5所示。
图1-5 我的第一个OpenGL程序
3、窗口的设置。
在默认情况下,窗口的位置出现在屏幕的左上角,默认大小为300*300。 要求:
(1)修改窗口位置,使之处于屏幕正中央; (2)将窗口大小改为整个屏幕大小; (3)修改窗口大小为其他尺寸。 参考函数:
glutInitWindowPosition(int x, int y);
//为窗口指定初始位置,窗口左上角在屏幕上的位置为(x,y) //如果不写该函数,或者glutInitWindowPosition(0,0);均表示窗口的位置出现在屏幕的左上角
glutInitWindowSize(int width, int height); //设置窗口大小 //如果不写该函数,表示窗口的大小为默认大小300*300
4、背景色的设置。
在默认情况下背景色是黑色。 要求:
(1)将窗口背景设置为白色,如图1-6所示。
(2)将窗口背景设置为其他颜色,如图1-7所示。 参考函数:
glClearColor(r,g,b,alpha);//设置背景颜色,此函数放在display()中,
并且放在glClear(GL_COLOR_BUFFER_BIT);
语句的前面。
其中r,g,b取值范围是[0,1],可以是浮点数,alpha取值范围为0~1,在这里其值不起作用,以后再讨论该参数。
例如glClearColor (0,0,0,0)为黑色背景,glClearColor3f(1,1,1,0)为白色背景,其他颜色应该如何设置?
相关推荐: