OpenGL环境配置
OpenGL环境配置
前言
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