学习网站链接:
LearnOpenGL英文站点: https://learnopengl.com
LearnOpenGL中文站点:https://learnopengl-cn.github.io/
BiliBili视频教程:[傅老師/OpenGL教學 第一章] OpenGL自製3D遊戲引擎 (已更畢)_哔哩哔哩_bilibili
学习所用软件: Microsoft Visual Studio 2017 community 版本 (以下简称VS)
大一新生学习,水平很菜,仅作为个人学习笔记所用,有错误欢迎指导
预先配置 0.1
下载完成安装 VS,并且下载 glew,glfw 放在文件夹中,完成vscode配置其余选项
配置使用静态编译器
// 告诉编译器 GLEW使用static(静态)版本
#define GLEW_STATIC
配置第一个窗口 1.1
首先初始化glfw函数
glfwInit();
提示OpenGL使用的版本,OpenGL使用的预设
//提示函数使用哪个版本的openGL MAJOR主版本号 3 MINROR 次版本号 也给3。
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
//提示OPENGL使用什么预设
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
使用造窗函数创立一个窗口对象
//glfwCreateWindow 是GLFW的造窗函数 有三个参数 分别为 width 宽度 height 高度 和 窗口名字
GLFWwindow* window = glfwCreateWindow(800, 600, "My First OpenGL Window",NULL,NULL);
检验是否成功建立窗口对象
if (window == NULL) //如果返回一个空指针 代表开设窗口失败,提示失败 返回返回-1
{
printf("Open window failed");
//终止GLFW
glfwTerminate();
return -1;
}
glfwMakeContextCurrent(window);
初始化glew
//初始化 GLEW
glewExperimental = true;
if (glewInit() != GLEW_OK )
{
printf("Init GLEW failed.");
//终止GLFW
glfwTerminate();
return -1;
}
调用glViewport函数来设置窗口的大小
// 这个函数 前两个参数 右上角的坐标值 后面两个参数是窗口大小
glViewport(0, 0, 800, 600);
// glfwWindowShouldClose 这个函数可以探测 参数中的窗体是否要被程序关闭
while (!glfwWindowShouldClose(window)) {
//渲染指令
//为了测试一切都正常工作,我们使用一个自定义的颜色清空屏幕。在每个新的渲染迭代开始的时候我们总是希望清屏
//我们可以通过调用glClear函数来清空屏幕的颜色缓冲
//GL_COLOR_BUFFER_BIT 颜色缓存,GL_DEPTH_BUFFER_BIT 深度缓存 和GL_STENCIL_BUFFER_BIT 3D缓存
glClearColor(0, 1.0, 0, 1.0f); //RGBA四个参数值
glClear(GL_COLOR_BUFFER_BIT);
//swapbuffer 会交换两个色彩暂存区块 就是双缓冲
//double buffer 双缓冲可以解决闪烁问题 所以在显示一张图片 要开始绘制下一张图片
glfwSwapBuffers(window);
//接受用户输入
glfwPollEvents();
}
释放GLFW分配的内存
//清空我们配置上去资源
glfwTerminate();
现在我们应该可以看到一个绿色的窗口。