openGl学习

OpenGL(Open Graphics Library)定义了一个跨编程语言,跨平台的编程接口规格的专业的程序接口,用于三维图像(二维也可以),功能强大切调用方便的底层图形库。

OpenGL的特性:

  1. 与C语言紧密结合:

    OpenGL命令最初就是用C语言函数进行描述的,对于学习过C语言的人来讲,OpenGL是容易理解和学习的。

  2. 强大的可移植性:

    微软的Direct3D虽然也是十分强大的图形API,但是只用于自家的系统,而OpenGL是可以跨平台的,OpenGL编程与硬件无关,具有强大的移植性。

  3. 高性能的图形渲染:(还没有学到那么深)

    OpenGL是一个工业标准,紧跟时代,各大厂家都对OpenGL提供支持。

OpenGL官网:http://www.opengl.org

我的学习从这篇博文开始:http://www.cppblog.com/doing5552/archive/2009/01/08/71532.html

我将在windows平台下学习OpenGL,在学习OpenGL之前,我们需要搭建我们的学习环境。

学习OpenGL前的准备工作:

  1. 选择一个编译环境

    我用的windows系统的主流编译器为Visual Studio 2013,所以我将VS2013作为学习环境。

  2. 安装GLUT工具包

        windows环境下的GLUT下载地址:http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip

windows下安装GLUT步骤:

  1. 解压刚才下载的文件可以得到五个文件,分别为glut.dll、glut.h、glut.lib、glut32.dll、glut32.lib

  2. 将glut.dll,glut32.dll这两个动态库文件放到操作系统目录下面的C:\Windows\system32文件夹内(32位系                    统)或‪C:\Windows\SysWOW64(64位系统)。为了兼容性考虑,最好在这两个目录下都复制相应的文件。

  3. 将得到的glut.lib和glut32.lib这两个静态函数库复制到文件目录的lib文件夹下 X:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\lib

  4. 将解压得到的头文件glut.h复制到目录如下目录下:X:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\GL 提示:如果在incluce目录下没有GL文件夹,则需要手动创建(其中X为VS的安装盘符)

第一个OpenGL程序:

打开VS2013新建一个控制台工程,向工程中添加一个代码文件取名“OpenGLTest.c”现在我们可以向代码文件中编写代码了。

#include <GL/glut.h>
const GLfloat d = 0.04;
void myDisplay(void)
{
	glClear(GL_COLOR_BUFFER_BIT);
	for (int i = -25; i < 25; i++)
	{
		for (int j = -25; j < 25; j++)
		{
			if (j%2==0)
			{
				if (i%2==0)
				{
					glRectf(j*d , d *i, (j + 1)*d , d *(i + 1));
				}
			}
			else
			{
				if ((i+200)%2==1)
				{
					glRectf(j*d , d *i, (j + 1)*d , d *(i + 1));
				}
			}
		}
	}
	glFlush();
}
int main(int argc, char *argv[])
{
	glutInit(&argc,argv);
	glutInitDisplayMode(GLUT_RGB|GLUT_SINGLE);
	glutInitWindowPosition(0,0);
	glutInitWindowSize(600,600);
	glutCreateWindow("我的第一个Open GL程序-byChengLove530");
	glutDisplayFunc(&myDisplay);
	glutMainLoop();
	return 0;
}

这个程序运行出来的效果:

openGl学习

程序代码解析:

#include <GL/glut.h>

程序需要导入OpenGL的头文件

glutInit(&argc,argv);

这是对GLUT进行初始化的操作,这个函数一般必须要使用其他GLUT函数之前调用,格式死板。

glutInitDisplayMode(GLUT_RGB|GLUT_SINGLE);

设置显示方式(暂时不懂)

glutInitWindowPosition(0,0);

很好理解就是窗口在屏幕的位置

glutInitWindowSize(600,600);

窗体的大小

glutCreateWindow("我的第一个Open GL程序-byChengLove530");

设置窗体的标题

glutDisplayFunc(&myDisplay);

执行窗体绘图程序

glutMainLoop();

进行一次消息循环(不太明白,照写就是)。

作图函数解析:

glClear(GL_COLOR_BUFFER_BIT);

清除,相当与我们在一个黑板上作画需要把黑板擦干净一样

glFlush();

执行画图函数。

glRectf();

画一个矩形。

你可能感兴趣的:(OpenGL)