返回
Featured image of post 第一个OpenGL程序

第一个OpenGL程序

配置glut环境

  1. 使用VS创建一个C++控制台应用项目

  2. 下载glut3.7版,再项目目录下新建文件夹,并解压到该文件夹。总共包含5个文件:glut.dll、glut32.dll、glut.lib、glut32.lib、glut.h

  3. 将文件夹中的两个动态链接库glut.dll, glut32.dll都拷贝到C:\Windows\System32C:\Windows\SysWOW64中(注意不是分别拷贝,是将两个文件在两个文件夹中都保存一份)

  4. 在VS中打开属性管理器(视图-》其他窗口-》属性管理器),右击Debug|Win32文件夹,点击属性。

  5. 点击VC++目录,配置包含项目于库目录,指向前面解压到的文件夹

  6. 点击连接器/输入,修改附加依赖项:glut32.lib;glut.lib

代码测试

新建文件OpenGL.cpp,输入以下代码,然后启动VS调试器

#include <glut.h>
#include <stdio.h>

/// <summary>
/// 错误检测
/// </summary>
/// <returns></returns>
GLenum errorCheck() {
	GLenum code;
	const GLubyte *string;
	code = glGetError();
	if (code != GL_NO_ERROR)
	{
		string = gluErrorString(code);
		fprintf(stderr, "OpenGL error:%s\n", string);
	}

	return code;
}

void init(void) {
	glClearColor(1, 1, 1, 0);//设定背景为白色

	glMatrixMode(GL_PROJECTION);//设置投影类型
	gluOrtho2D(0, 200, 0, 150);//世界坐标系二维矩形区域(超出该区域的物体不会被渲染)
}

void lineSegment(void) {
	glClear(GL_COLOR_BUFFER_BIT);//创建显示窗口

	glColor3f(1, 0.4, 0.2);//对象颜色

	glBegin(GL_LINES);//绘制二维线段
	glVertex2i(200, 150);
	glVertex2i(0,0);
	glEnd();

	glFlush();//尽快处理所有opengl例程
}

void main(int argc, char** argv)
{
	glutInit(&argc, argv);//GLUT初始化
	glutCreateWindow("第一个OpenGL实例");//标题

	glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);//设定窗口缓存与颜色

	glutInitWindowPosition(50, 100);//窗口位置
	glutInitWindowSize(400, 300);//窗口宽与高


	init();
	glutDisplayFunc(lineSegment);//将线段描述送到显示窗口
	glutMainLoop();//激活窗口与图形内容
}

效果如下:

Licensed under CC BY-NC-SA 4.0
0