阅读此专栏你需要点的技能有:会使用Windows正常安装软件,接触过C/C++,有畅通无阻的网络连接。
这学期选修课程 “计算机图形学与可视化”,需要编程,用到OpenGL库。这里为萌新们详细介绍一下该如何使用Visual Studio 2019 Community(以下简称VS)配置环境以使用OpenGL.

1. 确保电脑为Windows 10系统,up这里是Windows 10, version 1903.
Windows10系统更新我就不赘述了,默认大家都会

2. 安装Visual Studio 2019.
首先从Visual Studio官网下载Community 2019
链接为https://visualstudio.microsoft.com/zh-hans/vs/


这里下载的是一个官方的VS组件安装管理器。下载完成后直接运行,会出现

之后会出现一个选项界面如下,由于up在写该专栏之前已下载过VS,所以这里显示的是更新。

电脑从来没装过VS的同学可以在“可用”里找到“Visual Studio Community 2019”,并点击安装(假装“可用”这里面有Community 2019)

如果需要设置安装路径可以自己修改,对于OpenGL的使用,安装组件勾选C/C++

然后记得要在“单个组件”中把NuGet包管理器也勾选上,然后安装

然后就是漫长的等待ing,由于它是联网下载,可能需要等一段时间,这会儿可以喝喝茶去

安装完成后需要重启,建议就在这会儿直接重启 以免出现奇奇怪怪的问题

显示如下界面并且在Windows开始菜单中可以找到Visual Studio 2019,那么恭喜你已完成第一大步

3. 在Visual Studio 2019中配置OpenGL环境.
先介绍下Glut库(OpenGL Utility Toolkit,OpenGL实用工具包):GLUT最初由MarkKilgard编写,因为其简单、可用性广、可移植性强,被广泛应用于各种OpenGL实际应用中。Glut最新版本为3.7版,大致在1998年8月停止维护和更新,同时其代码也没有开源。
Freeglut是Glut库的免费开源替代品。它是由Pawel W. Olszta在1999年12月创建,最新版本为2019年9月的3.2.1版本。官网链接 http://freeglut.sourceforge.net/index.php
主要有两种配置环境的方法,分别为 使用NuGet自动配置 和使用freeglut的库文件头文件等进行手动配置,本专栏仅演示使用NuGet配置,手动配置如果需要可以私戳我,我看情况再更新
打开Visual Studio 2019,新建一个项目或者打开一个已有的.sln文件(解决方案文件。为解决方案资源管理器提供显示管理文件的图形接口所需的信息,从而在每次继续开发任务时,不会因开发环境而分散精力)

选择空项目,下一步

然后自己指定工作目录和项目名称,点击创建

创建完成后界面如下

在最右侧资源管理器找到源文件,右键-添加-新建项

选C++文件,命名文件名。up这里改成testopengl.cpp,然后添加

现在就是一个空的cpp文件,我们在网上随便找自己写一段OpenGL的测试代码贴进去

一片飘红,说明没有找到相应的库和函数。别慌,下面才开始配置。这时候在最上方导航栏点击项目-管理NuGet程序包

NuGet实际上就是一个软件包的托管平台。一个大的项目不可能所有的功能都要自己去实现,有句话说的好:“不要轻易造轮子”,最简单直接的办法就是使用别人造好的“轮子”。通常引用一个类库到我们的项目中要先下载或找到类库,然后复制到项目目录,最后添加引用。
如果我们引用的类库有更新的版本并且我们想使用的话又要重新添加引用,一两个倒还好,如果引用数量较多的话重复添加引用是比较麻烦和枯燥的,并且要卸载引用的时候还是要经过几个步骤。(摘自 https://www.cnblogs.com/it-tsz/p/10739661.html)简单来说就是对于每个项目我们可以轻易配置只属于这个项目的开发环境,并会易于实时更新。
这里选择“浏览”,并搜索nupengl.core然后点击第一个,安装就行

可以看到这个包已经不再更新维护了,但是对于我们图形学的课应该是绰绰有余

这里弹出的对话框,点击确定,然后就安装完成了。我们在切换回刚刚写的那个cpp文件,发现一片飘红消失不见!

然后调试代码,点击“本地Windows调试器”

这里就可以运行出结果啦!(我之前写在cpp文件里的代码是绘出一个矩形,所以这里图窗里是一个矩形)
至此,你已经完成了基本的OpenGL环境配置~
Tips 1. 每次用VS打开一个新的.sln文件都需要重复使用NuGet配置OpenGL环境,因为每个项目是不共享NuGet软件包的。你可以理解为,每个.sln文件都是一个单独的虚拟环境,互不干扰。
Tips 2. NuGet真的挺好用,其实不仅配置OpenGL可以用它,使用VS配置其他啥的也是同理,比如OpenCV

剩下的如果有兴趣就需要大家自己探索啦~