学习网站链接:
LearnOpenGL英文站点: https://learnopengl.com
LearnOpenGL中文站点:https://learnopengl-cn.github.io/
BiliBili视频教程:[傅老師/OpenGL教學 第一章] OpenGL自製3D遊戲引擎 (已更畢)_哔哩哔哩_bilibili
学习所用软件: Microsoft Visual Studio 2017 community 版本 (以下简称VS)
下载完成安装 VS,并且下载 glew,glfw 放在文件夹中,完成vscode配置其余选项
配置使用静态编译器
// 告诉编译器 GLEW使用static(静态)版本 #define GLEW_STATIC
首先初始化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();
现在我们应该可以看到一个绿色的窗口。