很久很久以前,好像看过这个:
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)
大概是这么些代码
用了eigen和opencv库
#include "Triangle.hpp"
#include "rasterizer.hpp"
#include
#include
#include
配置的过程,我觉得和配置GLFW的过程应该差不多。
【编译——链接——运行】分别对应【include——lib——dll】
所以,按上面那个视频来吧
原来头文件什么的,可以直接拖……
然后,把窗口搞乱了,就恢复了默认的窗口布局,但是意外的出现了一个什么制表符
百度了一下,明白了
(37条消息) 【VS】s2019左侧栏 制表符是什么 怎么关闭制表符栏_gongfpp的博客-CSDN博客_vs制表符怎么关
它就类似,浏览器的tab栏,平常是在上边而不是左边。再次放到上边就可以了。
小插曲完了,那末,它俩怎么配置?
跟着报错来吧
首先,报的错是关于eigen的,那末,先配置eigen吧
(37条消息) VS2019正确的安装Eigen库,解决所有报错(全网最详细!!)_MaybeTnT的博客-CSDN博客_vs2019配置eigen
大概是,先下载下来,然后,include一下,就完了。
官网在这里:
Eigen
然后,单纯的下载一下:
然后解压到一个include文件夹里,解压了以后应该还要改个名字
改名字,设置包含目录为上面的include文件夹
编译,正常了
首先,如何下载这个opencv?
Releases - OpenCV
除了上面那个视频,还有配置的教程吗?有的
(37条消息) OpenCV配置教程_杨大熊的代码世界的博客-CSDN博客_opencv配置
首先,啥教程也不看,按着感觉来。下载提取以后:
直接设置一下include目录路径:
这个报错,显示的不大对劲……
按这个链接里的方法设置一下:
为什么我的vs2010 的没有错误列表_百度知道 (baidu.com)
错误列表就出现了,看着就正常了
有了错误列表,就可以点击跳转了。 这个错,链接时的错误,可能是lib的错。也说明编译用的include已经正常了。
链接器工具错误 LNK2019 | Microsoft Docs
可能是少这个路径下的这个lib,加上试一试
注意这个lib是X64的,而之前都是在win32下设置的。。不兼容的,调成x64重新设置一下就可以了,路径还是那些路径,不麻烦的,但是下次要注意。
加上lib以后,报错:
dll,是运行时用的呐,说明链接正常了。
它少的那个dll,是不是这个?
拷过去试一试就好了嘛……
虽然我不知道这个程序在做什么(我是纯小白),但它正常运行了
说明这两个环境都配置成功了
有的网友说,配置opencv,需要设置环境变量,我没设置,也正常运行了。
那末,这个环境变量,到底是干什么的?
按这个链接里的说法,配置.DLL文件有两种方法
- 复制粘贴大法。64位的dll放在C:\Windows\System32,32位的dll放在C:\Windows\SysWOW64。
- 设置环境变量【可能就是你那个问题的答案】
引用自:
(37条消息) OpenCV环境变量配置_风吹夏天的博客-CSDN博客_设置opencv环境变量
关于那个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系统文件的地方。
引用自:
syswow64_百度百科 (baidu.com)
System32_百度百科 (baidu.com)
(20 封私信 / 31 条消息) 64位windows为什么不把system32改成system64 ? - 知乎 (zhihu.com)
(37条消息) 什么是SysWow64_congwulong的博客-CSDN博客
关于环境变量
引用自:
环境变量 | 白月黑羽 (byhy.net)
关于DLL的搜索顺序
MSDN里也有的:
这个GetSystemDirectory函数,和上面关于兼容性与32与64的吐槽,好像还呼应上了……
引用自:
(20 封私信 / 31 条消息) 为什么dll文件放在别的程序目录就能被加载? - 知乎 (zhihu.com)
动态链接库搜索顺序 - Win32 apps | Microsoft Docs