LearnOpenGL CN学习笔记(二)
前言
最近公司一直在弄将Unity 作为一款渲染引擎进行开发,在以前一直将Unity作为开发引擎,没有做过渲染引擎的案例,所以需要进行一个技术储备就是OpenGL,或者后期需要去进行学习Vulkan,这个笔记仅仅是我个人学习的笔记,没有商业性价值,仅供参考,如有错误望谅解,毕竟在渲染这里我也是个小白。
提示:以下是本篇文章正文内容,下面案例可供参考
一、我们的第一个工程
首先,打开Visual Studio,创建一个新的项目。如果VS提供了多个选项,选择Visual C++,然后选择Empty Project(空项目)(别忘了给你的项目起一个合适的名字)。由于我们将在64位模式中执行所有操作,而新项目默认是32位的,因此我们需要将Debug旁边顶部的下拉列表从x86更改为x64。(这个就不用多说了,如果不会创建空模块的C++工程建议去搜索一下:vs如何创建C++的空项目)。
二、链接
为了使我们的程序使用GLFW,我们需要把GLFW库链接(Link)进工程。这可以通过在链接器的设置里指定我们要使用glfw3.lib来完成,但是由于我们将第三方库放在另外的目录中,我们的工程还不知道在哪寻找这个文件。于是我们首先需要将我们放第三方库的目录添加进设置。
1.要添加这些目录(需要VS搜索库和include文件的地方),我们首先进入Project Properties(工程属性,在解决方案窗口里右键项目),然后选择VC++ Directories(VC++ 目录)选项卡(如下图)。在下面的两栏添加目录:
这里的属性,不是解决方案的属性。
然后将自己在第一节中随便创建的两个文件夹Lib和Include进行绑定,想问如何操作的自己双击。双击后不明白的搜索一下吧。(lll¬ω¬) 要么在这里也有教程,可以看一下。我就尽量的去简介不那么官方的写出来。
三、OpenGL库
Windows上的OpenGL库:
如果你是Windows平台,opengl32.lib已经包含在Microsoft SDK里了,它在Visual Studio安装的时候就默认安装了。由于这篇教程用的是VS编译器,并且是在Windows操作系统上,我们只需将opengl32.lib添加进连接器设置里就行了。值得注意的是,OpenGL库64位版本的文件名仍然是opengl32.lib(和32位版本一样),虽然很奇怪但确实如此。
Linux上的OpenGL库:(如果你不是Linux系统并且不想用暂时可以不用看,像我这种操作指令都记不住的人我就没看。哈哈哈哈~~~~)
在Linux下你需要链接libGL.so库文件,这需要添加-lGL到你的链接器设置中。如果找不到这个库你可能需要安装Mesa,NVidia或AMD的开发包,这部分因平台而异(而且我也不熟悉Linux)就不仔细讲解了。
(这个一定要配置)
最后需要在Linker(链接器)选项卡里的Input(输入)选项卡里添加glfw3.lib这个文件
![在这里插入图片描述](https://img-blog.csdnimg.cn/c112ed809ca6448c8126c4d051daa638.png
将glfw3.lib;和opengl32填写进去()
这样写就行。
接下来,如果你已经添加GLFW和OpenGL库到连接器设置中,你可以用如下方式添加GLFW头文件。
#include <GLFW\glfw3.h>
就是自己新创建一个脚本,然后在脚本中写这个看看包不报错,如果不报错没用红色下滑波浪线,恭喜你,以上的步骤如果不换电脑应该不用再动了。GLFW的安装与配置就到此为止。
三、GLAD
到这里还没有结束,我们仍然还有一件事要做。(后面的解释我就不放出来了,肯就是就为了谁谁谁能更好的兼容啥啥啥,没办法也不是创造者只用听话的命,人咋说咱咋做还得配置一个东西叫GLAD。其实这个东西在我看来就是帮这处理指针的一个东西,举例就是大家每个人的家庭住址都很复杂,有的到街道,有的到社区,这个东西统一帮我们进行管理,然后只要在他这去获取就行,他给你指路并把你送到你想去的地方,,嘻嘻 不知道对不对。)
配置GLAD
这个配置是在线上哦,不是本地。
线上地址 <----------点这里哟
打开GLAD的在线服务,将语言(Language)设置为C/C++,在API选项中,选择3.3以上的OpenGL(gl)版本(我们的教程中将使用3.3版本,但更新的版本也能用)。之后将模式(Profile)设置为Core,并且保证选中了生成加载器(Generate a loader)选项。现在可以先(暂时)忽略扩展(Extensions)中的内容。都选择完之后,点击生成(Generate)按钮来生成库文件。
GLAD现在应该提供给你了一个zip压缩文件,包含两个头文件目录,和一个glad.c文件。将两个头文件目录(glad和KHR)复制到你的Include文件夹中(或者增加一个额外的项目指向这些目录),并添加glad.c文件到你的工程中。(注意看这个glad.c文件,接下来我讲操作步骤的时候很烦这个文件,原文当中像我这小白根本就不知道他要放在哪很郁闷,还连累了同组的老师帮忙解决。)
看这里 -------->
前面的那些复制文件加的操作都没问题 ,这个glad.c文件需要在源文件中右键添加现有项
然后进来了才可以。
#include <glad/glad.h> //<------------------这个是头文件 可以实验一下看看成功与否
然后就可以创建我们的第一窗口了。 哎本地环境就是麻烦。 下一节再说吧。
总结
这节就是利用上一节下载和安装的东西去进行一些配置保证自己的本地环境是可用的,然后又线上配置了一个GLAD。最后将GLAD下载下来的东西配置进工程,是不是感觉到现在和OpenGL没有什么关系,代码呢,渲染呢,啥啥呢。。。。。这是必走的路,现在网上流传这一句话就是,现在写代码很简单了,因为各种各样的库都很多,完成一个需求可能几行代码就搞定了,但是要配置运行环境那可就麻烦了,就是这个道理。得认,谁叫咱不是开发者呢。要是我开发,哼~ ,绝对一个exe走天下。(做梦中。。。。 哈哈哈哈哈哈哈哈哈)