这里是一个想要从事游戏行业的平平无奇大学生,之前学过的东西没有记录一会儿就忘了,从现在开始记录博客,巩固自己学习的东西。

一、什么是openGl?

openGl是一个API,而API在百度上的定义是:
API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。

本人粗略理解openGl就是一个方便软件开发者使用各显卡厂商(如英伟达,AMD)制作的显卡来绘制图形的接口,使得软件开发者无需了解底层硬件,只需使用预留的接口便可以制作出图形。

openGl并不开源,它的实现是在各显卡厂商的显卡驱动里,很明显,厂商们并不会将自己的显卡驱动给开源。同时openGl并不是一个库,也不是引擎或者框架,它是一种规范,就类似于c++11这种规范一样。各厂商因为有着不同的显卡驱动,可能不同显卡的openGl有略微差别。

二、glfw的下载与在vs2022进行开发环境搭建

1、glfw的下载

官网地址:https://www.glfw.org/

ollama num_gpu如何设置_c++


因为目的仅仅只是学习openGl而不是进行大型项目的开发,所以下载如下图的版本即可(已经转化为二进制文件,无需自己手动编译)

ollama num_gpu如何设置_c++_02


下载结束后解压,接下来进行开发环境的配置。

2、开发环境的配置

使用vs2022进行学习,别的版本应该大同小异。

创建一个空的c++工程文件,并选择显示所有文件。

ollama num_gpu如何设置_c++_03


新建一个文件夹src,并在其中添加源文件cpp。

ollama num_gpu如何设置_ollama num_gpu如何设置_04


在glfw官网https://www.glfw.org/中点击右上角的documentation,并将其中的文档复制到vs2022中。

ollama num_gpu如何设置_c++_05


ollama num_gpu如何设置_ollama num_gpu如何设置_06

ollama num_gpu如何设置_ollama num_gpu如何设置_07


可以看见很多红色的报错,这是因为还没有配置环境。打开项目的文件夹与解压后的glfw文件夹,在项目文件夹里新建一个dependencies文件夹

ollama num_gpu如何设置_开发语言_08


ollama num_gpu如何设置_学习_09


将glfw文件夹里的include与lib_vc2022拖入dependencies\GLFW中

ollama num_gpu如何设置_学习_10


接下来进入工程界面,打开属性

ollama num_gpu如何设置_c++_11

ollama num_gpu如何设置_ollama num_gpu如何设置_12


solutiondir为项目文件所在的路径,也就是dependencies文件夹所在的路径

ollama num_gpu如何设置_学习_13


ollama num_gpu如何设置_开发语言_14


链接器中库的配置如法炮制

ollama num_gpu如何设置_ci_15


ollama num_gpu如何设置_ollama num_gpu如何设置_16


注意属性页最上面的配置一定是“所有配置”与“win32”。

如果一切配置完成后依然标红,打不开头文件的话,点击vs2022的上方,选择X86。

ollama num_gpu如何设置_c++_17

三、开始编译连接,并通过返回的消息进行debug

开始编译

ollama num_gpu如何设置_学习_18


出现这么多的error是因为我们删掉了很大一部分的.lib依赖项,添加opengl32.lib便可消除图中标出的glClear的error。

ollama num_gpu如何设置_c++_19


再次编译链接该错误消除。

ollama num_gpu如何设置_ci_20


复制图中标出的RegisterDeviceNotificationW,并在游览器中搜索

ollama num_gpu如何设置_学习_21


ollama num_gpu如何设置_ollama num_gpu如何设置_22


可看出缺乏的依赖项为User32.lib,就如同添加opengl32.lib一样将其添加进依赖项里便可消除大部分的错误。

ollama num_gpu如何设置_ollama num_gpu如何设置_23


如法炮制,在游览器中搜索几个error所缺乏的依赖项且添加,即可成功运行。

ollama num_gpu如何设置_开发语言_24

4、使用古典openGl的方式绘制三角形

添加如下代码

glBegin(GL_TRIANGLES);
        glVertex2f(-0.5f, -0.5f);
        glVertex2f(0.0f, 0.5f);
        glVertex2f(0.5f, -0.5f);
        glEnd();

ollama num_gpu如何设置_ci_25


ollama num_gpu如何设置_ci_26


运行后得到一个三角形。