OPENGL 学习笔记 仅作个人学习参考用
2021/5/30 18:20:19
本文主要是介绍OPENGL 学习笔记 仅作个人学习参考用,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
学习网站链接:
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();
现在我们应该可以看到一个绿色的窗口。
这篇关于OPENGL 学习笔记 仅作个人学习参考用的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-05小米13T Pro系统合集:性能与摄影的极致融合,值得你升级的系统ROM
- 2024-10-01基于Python+Vue开发的医院门诊预约挂号系统
- 2024-10-01基于Python+Vue开发的旅游景区管理系统
- 2024-10-01RestfulAPI入门指南:打造简单易懂的API接口
- 2024-10-01初学者指南:了解和使用Server Action
- 2024-10-01Server Component入门指南:搭建与配置详解
- 2024-10-01React 中使用 useRequest 实现数据请求
- 2024-10-01使用 golang 将ETH账户的资产平均分散到其他账户
- 2024-10-01JWT用户校验课程:从入门到实践
- 2024-10-01Server Component课程入门指南