当前位置: 移动技术网 > IT编程>开发语言>.net > OpenGL环境配置

OpenGL环境配置

2020年07月28日  | 移动技术网IT编程  | 我要评论

前言

VS2015 的OpenGL 环境搭配

1、glew

地址:https://sourceforge.net/projects/glew/
(1) …\include\ 下全部文件移动到 你的VS目录\VC\include
(2) …\lib\Release\x64 下全部文件移动到 你的VS目录\VC\lib\amd64
(3) …\bin\Release\x64下全部文件移动到 你的VS目录\VC\bin\amd64

2、freeglut

地址:https://sourceforge.net/projects/freeglut/
(1)cmake
在这里插入图片描述
填写完两个路径后
点击 Configure
这里我的VS版本是2015,我选的是2015WIN64
等待一段时间
在这里插入图片描述
再点击 Generate
在这里插入图片描述
此时 Open Project可用,点击之后,便进入VS中
我们把选项改为
在这里插入图片描述
之后生成解决方案即可。
下面将编译后的文件移动至VS目录
(1) 下载的压缩包\include\ 下全部文件移动到 你的VS目录\VC\include
(2) VS工程下\lib\Release 下相关lib移动至 你的VS目录\VC\lib\amd64
(3) VS工程下\bin\Release下相关dll移动至 你的VS目录\VC\bin\amd64

3、gltools

地址:https://github.com/HazimGazov/GLTools
下载后新建一个VS静态链接库空的工程
并将相关源码移动至工程内
在这里插入图片描述
该工程内有几个WIN32宏,将其改为_WIN32,并且修改发布类型
在这里插入图片描述
生成
(1) 下载的压缩包\include\ 内全部文件移动到 你的VS目录\VC\include
(2) VS工程下\x64\Release\工程名字.lib 移动至 你的VS目录\VC\lib\amd64

项目属性设置

项目属性设置
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

OK,属性设置完毕,接下来给出我的第一个OpenGL程序代码

我的第一个OpenGL程序

新建一个空的控制台程序
新建main.cpp文件

main.cpp

#include <iostream>
#include <GL/GLTools.h>
#include <GL/GLShaderManager.h>

#ifdef _WIN32
#define FREEGLUT_STATIC
#include <GL/glut.h>
#endif

GLBatch		triangleBatch;
GLShaderManager	shaderManager;

void changed_size(int w, int h) {
	// 修改视窗size
	glViewport(0, 0, w, h);
}

// 初始化渲染环境
void setup_rc() {

	// 蓝色背景
	glClearColor(0.f, 0.f, 1.f, 1.f);

	// 初始化shader
	shaderManager.InitializeStockShaders();

	// 定义三角形的定点
	GLfloat	vertex[] = {	-.5f,0.f,0.f,
							0.5f,0.f,0.f,
							0.f,.5f,0.f};

	// 加载三角形
	triangleBatch.Begin(GL_TRIANGLES, 3);
	triangleBatch.CopyVertexData3f(vertex);
	triangleBatch.End();
}

// 渲染
void render_scene(void) {

	// 清除颜色缓冲、深度缓冲、模板缓冲
	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);

	// 红色 RBGA
	GLfloat red []= { 1.f,0.f,0.f,1.f };
	
	// 使用默认shader
	shaderManager.UseStockShader(GLT_SHADER_IDENTITY, red);

	// 绘制
	triangleBatch.Draw();

	// 交换缓冲区
	glutSwapBuffers();
}

int main(int argc, char**argv) {

	gltSetWorkingDirectory(*argv);
	
	glutInit(&argc,argv);
	glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA | GLUT_DEPTH | GLUT_STENCIL);
	glutInitWindowSize(800, 600);
	glutCreateWindow("Triangle");
	glutReshapeFunc(changed_size);
	glutDisplayFunc(render_scene);

	GLenum err = glewInit();
	if (GLEW_OK != err) {
		std::cerr << "GLEW Error : " << glewGetErrorString(err) << std::endl;
		return 1;
	}

	setup_rc();

	glutMainLoop();

	return 0;
}

效果如图
在这里插入图片描述

本文地址:https://blog.csdn.net/u011760195/article/details/85886213

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网