最近开始学习OpenGL,主要是看NeHe的教程和OpenGL的红宝书,笔记就写到这边~
一 OpenGL 简介
OpenGL 是图形硬件的一种软件接口。
OpenGL 能够做什么:
(1)根据几何图元创建形状, 从而建立物体的数学描述。(OpenGL把点、直线、多边形和位图作为基本的图元)
(2)在三维空间中排列物体,并选择视角去观察它
(3)计算所有物体的颜色
(4)光栅化(rasterization),把物体信息转换为屏幕上的像素(似乎就是渲染的意思?)
二 下载并安装 glut 库
glut - OpenGL Utility Toolkit因为OpenGL是独立于硬件的接口,因此没有提供执行窗口人物或者获取用户输入之类的函数,用户需要自己进行在不同平台的窗口实现,glut 为OpenGL提供了一个独立与窗口系统的工具库,使得学习OpenGL变得更加容易,我们可以用它来轻易的实现跨平台的OpenGL程序。
下载地址:
https://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip
一共会有上面这么几个文件
把 glut.h 复制到include目录下,如果用默认的话就是 C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\GL (GL 目录要自己建)
把 glut.lib 和 glut32.lib 复制到lib目录下,默认是 C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\lib
把 glut32.dll 和 glut.dll 复制到 C:\Windows\System32 目录下
三 创建一个工程测试一下~
建立一个控制台的空项目,内容选 empty
在source code新建文件 01_BasicFrame.cpp
文件内容是一个OpenGL程序的基本框架,也是这里测试一下环境的代码
#include <GL/glut.h>
#pragma comment(linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"")
void initScene (void)
{
glClearColor (0.2, 0.2, 0.2, 0.0); // display-window color
glMatrixMode (GL_PROJECTION); // projection methods
gluOrtho2D (0.0, 200.0, 0.0, 150.0);
}
void display (void)
{
glClear (GL_COLOR_BUFFER_BIT); // clear buffer
glColor3f (0.2, 0.2, 1.0); // triangle color : blue
glBegin (GL_TRIANGLES);
glVertex2i (130, 15);
glVertex2i (15, 130);
glVertex2i (15, 15);
glEnd ();
glFlush (); // Force Execute drawings
}
void main (int argc, char** argv)
{
glutInit (&argc, argv);
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
glutInitWindowPosition (50, 100);
glutInitWindowSize (400, 300);
glutCreateWindow ("Hine Basic Frame Window");
initScene ();
glutDisplayFunc (display);
glutMainLoop ();
}
编译完成后执行一下,看到上面的运行结果,OpenGL环境搭建就成功了~