虽然写这个博客主要目的是为了给我自己做一个思路记忆录,但是如果你恰好点了进来,那么先对你说一声欢迎。我并不是什么大触,只是一个菜菜的学生,如果您发现了什么错误或者您对于某些地方有更好的意见,非常欢迎您的斧正!
学习来源:https://learnopengl-cn.github.io/01%20Getting%20started/01%20OpenGL/
还是老话吧,为了学过就忘,准备写点东西,或者摘抄点东西。
目录
❶前提需知:
●需求:有一点基础的C++水平。
●绿色方框是一些注释或者是对于OpenGL或讨论主题有用的特性/提示。
●红色方框是一些警告或者一些你需要特别注意的特性。
●蓝色方框是翻译时为了帮助读者理解附加的一些信息。
❷扩展
●OpenGL的一大特性就是对扩展(Extension)的支持:(学习过程很少需要碰到)
if(GL_ARB_extension_name) { // 使用硬件支持的全新的现代特性 }else { // 不支持此扩展: 用旧的方式去做 } |
❸OpenGL本身就是个状态机
OpenGL自身是一个巨大的状态机(State Machine):一系列的变量描述OpenGL此刻应当如何运行。OpenGL的状态通常被称为OpenGL上下文(Context)。我们通常使用如下途径去更改OpenGL状态:设置选项,操作缓冲。最后,我们使用当前OpenGL上下文来渲染。(这里大概看到这里就够了)
●个人理解:状态机就是根据不同的上下文改变到不同的状态。比如我现在的状态是学习,如果有家长打电话给我,我的状态就是接电话;如果中午要吃饭,那么我的状态就变成了吃饭。就是这样根据条件改变状态的一种状态转移图的感觉。
❹对象(没记录)
这里一开始看比较懵逼,我们先开始正式学习!
❶环境配置
VS2017下载
●我找了一篇文章:OpenGL 开发环境配置:Visual Studio 2017 + GLFW + GLEW
https://www.cnblogs.com/AnKen/p/8057000.html
●啊如果你还没有VS,那么就去官网下个免费的。你要是打不开这个链接,那么百度搜索microsoft,点进入就好了。
https://www.microsoft.com/zh-cn/
点进去找到这个Visual Studio
下这个community就好了。
●文章里提到了:“2017版本在安装界面里注意要勾选c++相关选项,否则默认不安装c++组件。”那么我记得我安装的时候就是默认安装的,所以就找到“控制面板”,在里面找到Visual Studio,然后右键点击更改。
后来感觉这篇文章自己看不下去,不知道他要干什么,于是我又多找了几篇,这篇不错:
【PT君的OpenGL】第一天【VS2017+OpenGL环境的配置(固定管线+可编程管线)】
https://blog.csdn.net/qq_19003345/article/details/76098781/
环境搭建
①...\VC\Tools\MSVC\14.15.26726\include\gl(你自己的VS路径,没有gl就自己新建一下)
里面存放glut.h
②...\VC\Tools\MSVC\14.15.26726\lib\x86里面存放glut.lib与glut32.lib
③C:\Windows\SysWOW64里面存放glut.dll与glut32.dll(32位系统放在system32)
根据这篇博客(这篇博客真的好!)的测试代码测试一下,大概就会出现一个白色的矩形。(代码是他文章里的)
#include <GL/glut.h>
void Show()
{
glClear(GL_COLOR_BUFFER_BIT);
glRectf(-0.1f, -0.1f, 0.5f, 0.5f);
glFlush();
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
glutInitWindowPosition(100, 100);
glutInitWindowSize(400, 400);
glutCreateWindow("OpenGL");
glutDisplayFunc(Show);
glutMainLoop();
return 0;
}
GLFW
下载GLFW(管理窗口:它就是在你画画的时候给你一块画布)
下载地址:https://www.glfw.org/download.html
下载32-bit Windows binaries(我下的这个)
●然后我们去VS,右击OpenGL(我创立的这个程序叫做OpenGL,你哪怕创建“老子天下第一”也没事),打开属性(最后一个)。
●然后我们就要改东西了,当然你也可以学习我推荐那个博主的机智方法。
“包含目录”<—include
“库目录”<—vc2015
●再改一个地方:opengl32.lib;glfw3.lib;%(AdditionalDependencies)
GLAD
●下载GLAD:使用OpenGL函数
●下载地址:https://glad.dav1d.de/
●然后在右下角点击GENRATE,下载这个glad.zip
●解压后得到两个文件夹
①把include里的东西都复制到刚刚的lib-vc2015里面
②把src里面的glad.c加到我们的程序文件夹中。比如我的是OpenGL:
●然后右击“源文件”—>“添加”—>“现有项”
测试
●输入以下代码(也来自那个大佬的博客:向大佬致敬)
#include "glad\glad.h"
#include "glfw3.h"
#include <iostream>
int main()
{
glfwInit();
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
GLFWwindow* window = glfwCreateWindow(800, 600, "OpenGLShader", NULL, NULL);
if (window == NULL)
{
std::cout << "创建窗口失败" << std::endl;
glfwTerminate();
return -1;
}
glfwMakeContextCurrent(window);
if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress))
{
std::cout << "初始化GLAD失败" << std::endl;
return -1;
}
while (!glfwWindowShouldClose(window))
{
glfwSwapBuffers(window);
glfwPollEvents();
}
glfwTerminate();
return 0;
}
最后出现什么都没有的黑框框:we win!
那今天就到这里吧,感谢您的阅读,希望对您的有所帮助!
参考博客:
【PT君的OpenGL】第一天【VS2017+OpenGL环境的配置(固定管线+可编程管线)】
https://blog.csdn.net/qq_19003345/article/details/76098781/