最近开始学习OpenGL,主要是看NeHe的教程和OpenGL的红宝书,笔记就写到这边~
OpenGL 是图形硬件的一种软件接口。
OpenGL 能够做什么:
(1)根据几何图元创建形状, 从而建立物体的数学描述。(OpenGL把点、直线、多边形和位图作为基本的图元)
(2)在三维空间中排列物体,并选择视角去观察它
(3)计算所有物体的颜色
(4)光栅化(rasterization),把物体信息转换为屏幕上的像素(似乎就是渲染的意思?)
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环境搭建就成功了~