VS2019下的GAMES101作业环境配置

很久很久以前,好像看过这个: 

GAMES101-现代计算机图形学入门-闫令琪_哔哩哔哩_bilibili

里面好像还有一个实验,当时只是看了看视频里的热闹,并没有写实验。

现在想想,还是写一写的好,万一以后用上了呢?

虽然是个24K纯小白,估计也学不会,但是,我可以自我感动式学习。

 为什么要自我感动式学习?因为正儿八经的学习我不会啊……智力有限。

一些相关的链接:

环境配置的视频:

计算机图形学-GAMES101作业-在Visual Studio中搭建Eigen和OpenCV的环境_哔哩哔哩_bilibili

按这个视频来的话,需要配置两个环境,opencv和eigen。 

【eigen,我猜测它是用来进行与矩阵有关的计算的;opencv,我猜它是用来显示软光栅的渲染结果的】

课程主页:

GAMES101: 现代计算机图形学入门 (ucsb.edu)

作业的合集链接:

往期作业汇总帖 – 计算机图形学与混合现实在线平台 (games-cn.org) 

作业0链接:

作业0发布公告 – 计算机图形学与混合现实在线平台 (games-cn.org)

作业0好像是配置虚拟机的。。

主要就用了eigen库。。没用opencv。

#include
#include
#include
#include

 上面那个视频里是用作业1配置的环境,作业1配置了eigen和opencv,它的环境包括了作业0的环境,所以直接跳过这个作业0吧。

作业1链接:

作业1发布公告 – 计算机图形学与混合现实在线平台 (games-cn.org)

 大概是这么些代码

VS2019下的GAMES101作业环境配置_第1张图片

用了eigen和opencv库 

#include "Triangle.hpp"
#include "rasterizer.hpp"
#include 

#include 
#include 

配置的过程,我觉得和配置GLFW的过程应该差不多。

【编译——链接——运行】分别对应【include——lib——dll】

所以,按上面那个视频来吧

环境配置

原来头文件什么的,可以直接拖……

VS2019下的GAMES101作业环境配置_第2张图片

然后,把窗口搞乱了,就恢复了默认的窗口布局,但是意外的出现了一个什么制表符

VS2019下的GAMES101作业环境配置_第3张图片 怎么关的还不知道……

 百度了一下,明白了

(37条消息) 【VS】s2019左侧栏 制表符是什么 怎么关闭制表符栏_gongfpp的博客-CSDN博客_vs制表符怎么关

它就类似,浏览器的tab栏,平常是在上边而不是左边。再次放到上边就可以了。

 小插曲完了,那末,它俩怎么配置?

VS2019下的GAMES101作业环境配置_第4张图片

 跟着报错来吧

首先,报的错是关于eigen的,那末,先配置eigen吧

VS2019下的GAMES101作业环境配置_第5张图片

 Eigen的配置

(37条消息) VS2019正确的安装Eigen库,解决所有报错(全网最详细!!)_MaybeTnT的博客-CSDN博客_vs2019配置eigen

大概是,先下载下来,然后,include一下,就完了。

官网在这里:

Eigen

然后,单纯的下载一下:

VS2019下的GAMES101作业环境配置_第6张图片 然后解压到一个include文件夹里,解压了以后应该还要改个名字

VS2019下的GAMES101作业环境配置_第7张图片

 改名字,设置包含目录为上面的include文件夹

VS2019下的GAMES101作业环境配置_第8张图片

 编译,正常了

VS2019下的GAMES101作业环境配置_第9张图片

 OpenCV的配置

首先,如何下载这个opencv?

Releases - OpenCV

VS2019下的GAMES101作业环境配置_第10张图片

除了上面那个视频,还有配置的教程吗?有的

(37条消息) OpenCV配置教程_杨大熊的代码世界的博客-CSDN博客_opencv配置

首先,啥教程也不看,按着感觉来。下载提取以后:

编译——include

直接设置一下include目录路径:

VS2019下的GAMES101作业环境配置_第11张图片

链接——lib 

 这个报错,显示的不大对劲……

VS2019下的GAMES101作业环境配置_第12张图片

 按这个链接里的方法设置一下:

为什么我的vs2010 的没有错误列表_百度知道 (baidu.com)

VS2019下的GAMES101作业环境配置_第13张图片

 错误列表就出现了,看着就正常了

VS2019下的GAMES101作业环境配置_第14张图片

有了错误列表,就可以点击跳转了。 这个错,链接时的错误,可能是lib的错。也说明编译用的include已经正常了。

链接器工具错误 LNK2019 | Microsoft Docs

VS2019下的GAMES101作业环境配置_第15张图片

 可能是少这个路径下的这个lib,加上试一试

VS2019下的GAMES101作业环境配置_第16张图片

VS2019下的GAMES101作业环境配置_第17张图片 VS2019下的GAMES101作业环境配置_第18张图片

注意这个lib是X64的,而之前都是在win32下设置的。。不兼容的,调成x64重新设置一下就可以了,路径还是那些路径,不麻烦的,但是下次要注意。

运行——dll

加上lib以后,报错:

VS2019下的GAMES101作业环境配置_第19张图片

dll,是运行时用的呐,说明链接正常了。

它少的那个dll,是不是这个?

VS2019下的GAMES101作业环境配置_第20张图片

 拷过去试一试就好了嘛……

VS2019下的GAMES101作业环境配置_第21张图片

 虽然我不知道这个程序在做什么(我是纯小白),但它正常运行了

说明这两个环境都配置成功了

VS2019下的GAMES101作业环境配置_第22张图片

一些疑问

网页1

有的网友说,配置opencv,需要设置环境变量,我没设置,也正常运行了。

那末,这个环境变量,到底是干什么的?

按这个链接里的说法,配置.DLL文件有两种方法

  1. 复制粘贴大法。64位的dll放在C:\Windows\System32,32位的dll放在C:\Windows\SysWOW64
  2. 设置环境变量【可能就是你那个问题的答案】

VS2019下的GAMES101作业环境配置_第23张图片

 引用自:

(37条消息) OpenCV环境变量配置_风吹夏天的博客-CSDN博客_设置opencv环境变量

 网页2

 关于那个32位和64位dll为什么看着像反的,解释在这里:

为什么一个明明叫System32的文件夹装的是64位的系统文件,而一个明明叫SysWow64的文件夹装的却是32位的系统文件呢?既然是64位的系统,为什么不能有System64和System32这样的文件夹呢?

这个问题问得很好。答案也很简单:人在江湖,身不由己。

如果你写了一个很牛的32位的应用程序,现在,你想把它变成64位的应用程序,以更充分地利用64位处理器所带来的新的处理能力。你肯定觉得,这不就是让64位编译器编译一遍就完了的事儿么?可能你发现,这并不是骨感的现实。你突然发现,你的程序里,为了某些你已经想不起来的原因,把System32这个文件夹,写死在了你的程序里。而这个System32中的32,让你很不安。你尝试着运行了你的程序,却发现一切正常。为什么呢?这是Windows系统的另一个兼容性方面的努力:让一个已有的32位应用程序,不加修改或者尽可能少地加以修改,便可以被编译成64位应用程序并在64位Windows上运行。其实,把System32这样的路径,写死在程序里,并不是一个个案。所以,为了保证这些写死了路径的应用程序可以顺利地过渡到64位,Windows最后还是决定让64位的系统文件放在System32的文件夹下。而让32位的系统文件,搬到了SysWow64中去。

你肯定会想,那让32位搬到SysWow64中去以后,那些写死在32位应用程序中的System32怎么办?答:Windows会给他们转向到SysWow64中去。那让64位中的System32转向到System64不也是一样么?真的一样么?不一样么?真的一样么?不一样么?真的不一样。

作为64位Windows操作系统,当然是希望能充分发挥64位处理器的潜力,让应用程序更有效率地运行。如果在运行64位应用程序时,总要检查是否需要转向,势必影响程序运行效率。所以,不能给64位应用程序做没有必要的转向,如果说必须要转,那就只能转32位应用程序了。是的,没有办法,在64位操作系统中,32位应用程序要做一些小的牺牲。

此外,为了保证32位应用程序不与64位应用程序相冲突,除了System32文件夹外,注册表也需要为32位和64位提供两套,也需要让32位的应用程序在必要时重定向。

所以SysWow64文件夹,是64位Windows,用来存放32位Windows系统文件的地方。

 VS2019下的GAMES101作业环境配置_第24张图片

VS2019下的GAMES101作业环境配置_第25张图片

VS2019下的GAMES101作业环境配置_第26张图片

VS2019下的GAMES101作业环境配置_第27张图片

 引用自:

syswow64_百度百科 (baidu.com)

System32_百度百科 (baidu.com)

(20 封私信 / 31 条消息) 64位windows为什么不把system32改成system64 ? - 知乎 (zhihu.com)

 (37条消息) 什么是SysWow64_congwulong的博客-CSDN博客

网页3

关于环境变量

 VS2019下的GAMES101作业环境配置_第28张图片

 引用自:

环境变量 | 白月黑羽 (byhy.net)

网页4

 关于DLL的搜索顺序

VS2019下的GAMES101作业环境配置_第29张图片

 MSDN里也有的:

VS2019下的GAMES101作业环境配置_第30张图片

这个GetSystemDirectory函数,和上面关于兼容性与32与64的吐槽,好像还呼应上了…… 

引用自:

(20 封私信 / 31 条消息) 为什么dll文件放在别的程序目录就能被加载? - 知乎 (zhihu.com)

动态链接库搜索顺序 - Win32 apps | Microsoft Docs

你可能感兴趣的:(软光栅,计算机图形学,GAMES101)