- 计算机图形学
- OpenGL的使用
首先给VS2015配置OpenGL环境就花了很大的力气
然而到最后发现我一直改的都是以前安装遗留的vs2013
使用的缺失vs2015
泪奔。。。
配置OpenGL环境
- vs2015 + OpenGL
- 理论上来讲vs的各个版本之间对OpenGL的配置差异不大
所需材料
- 下载一套OpenGL的.h、.lib、.dll文件
- 某一个版本的Visual Studio
配置
- 所有的.h放在vs目录/VC/include/GL文件夹下,一般没有GL则需要自己新建。
- 所有的.lib放在vs目录/VC/lib文件夹下
- 所有的.dll在C:\Windows\System32和C:\Windows\syswow64各放一份。已经存在的话跳过。(不过估计替换也没什么问题…不保证)
- 打开vs在C++下创建一个空项目。右击项目-属性-连接器(Linker)-输入(Input)-附加依赖项(Additional Dependencies)。在后面的下拉框中选择<编辑>。每行一个添加上glaux.lib、glu32.lib、opengl32.lib、glut32.lib、glut.lib。
- 搞定
示例程序
#include <gl/glut.h>
void display(void)
{
/* clear window */
glClear(GL_COLOR_BUFFER_BIT);
/* draw unit square polygon */
glBegin(GL_POLYGON);
glVertex2f(-0.5, -0.5);
glVertex2f(-0.5, 0.5);
glVertex2f(0.5, 0.5);
glVertex2f(0.5, -0.5);
glEnd();
/* flush GL buffers */
glFlush();
}
void init()
{
/* set clear color to black */
/* glClearColor (0.0, 0.0, 0.0, 0.0); */
/* set fill color to white */
/* glColor3f(1.0, 1.0, 1.0); */
/* set up standard orthogonal view with clipping */
/* box as cube of side 2 centered at origin */
/* This is default view and these statement could be removed */
/* glMatrixMode (GL_PROJECTION);
glLoadIdentity ();
glOrtho(-1.0, 1.0, -1.0, 1.0, -1.0, 1.0); */
}
int main(int argc, char** argv)
{
/* Initialize mode and open a window in upper left corner of screen */
/* Window title is name of program (arg[0]) */
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(500, 500);
glutInitWindowPosition(0, 0);
glutCreateWindow("simple");
glutDisplayFunc(display);
init();
glutMainLoop();
}
- 成功者可看到一个白色的正方形作为奖励
OpenGL的结构
- OpenGL采用C的语法和风格,不过既然是建立在C++下自然也可以使用面向对象的特点,但OpenGL本身是不具备面向对象的特点。你喜欢也未尝不可。
- 只需要引入头文件glut.h即可。glut.h中又引入了gl.h和glu.h。
- 很多函数都是以gl、glu、glut开头的
#include<GL/glut.h>//引入头文件。
void display()//显示回调函数。描述绘制的对象。
{
glClear(GL_COLOR_BUFFER_BIT);//CLear缓存 接受GLbirdield参数来指示。GL_COLO