VS2019下的GAMES101作业环境配置

2023-11-19

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

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<cmath>
#include<eigen3/Eigen/Core>
#include<eigen3/Eigen/Dense>
#include<iostream>

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

作业1链接:

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

 大概是这么些代码

用了eigen和opencv库 

#include "Triangle.hpp"
#include "rasterizer.hpp"
#include <iostream>

#include <eigen3/Eigen/Eigen>
#include <opencv2/opencv.hpp>

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

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

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

环境配置

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

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

 怎么关的还不知道……

 百度了一下,明白了

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

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

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

 跟着报错来吧

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

 Eigen的配置

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

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

官网在这里:

Eigen

然后,单纯的下载一下:

 然后解压到一个include文件夹里,解压了以后应该还要改个名字

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

 编译,正常了

 OpenCV的配置

首先,如何下载这个opencv?

Releases - OpenCV

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

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

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

编译——include

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

链接——lib 

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

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

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

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

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

链接器工具错误 LNK2019 | Microsoft Docs

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

 

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

运行——dll

加上lib以后,报错:

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

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

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

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

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

一些疑问

网页1

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

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

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

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

 引用自:

(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系统文件的地方。

 

 引用自:

syswow64_百度百科 (baidu.com)

System32_百度百科 (baidu.com)

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

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

网页3

关于环境变量

 

 引用自:

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

网页4

 关于DLL的搜索顺序

 MSDN里也有的:

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

引用自:

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VS2019下的GAMES101作业环境配置 的相关文章

  • 左手坐标系与右手坐标系(转)

    转自 http www cnblogs com mythou p 3327046 html 1 空间直角坐标系 下面摘录一段百科的解析 这些都是数学基础 过空间定点O作三条互相垂直的数轴 它们都以O为原点 具有相同的单位长度 这三条数轴分别
  • 无法解析的外部符号__imp__AlphaBlend@44

    使用Win32 API函数AlphaBlend编译时出现一个错误 无法解析的外部符号 imp AlphaBlend 44 解决办法是在使用得地方包含Msimg32 lib 具体是在文件头部添加代码 pragma comment lib Ms
  • FBX与Opengl骨骼系统

    转自 http blog csdn net mink365 article details 6328033 FBX是Autodesk提供的一个三维模型格式 由于AutoDesk已经收购了Maya 3D max等流行三维建模软件 FBX可以说
  • Games101:作业3(管线分析、深度插值、libpng warning、双线性插值等)

    目录 0 作业介绍 1 0 0 管线分析 1 1 0 main函数 1 2 0 draw函数 1 3 0 rasterizer triangle函数 1 3 1 重心坐标 computeBarycentric2D 1 3 2 深度插值 2
  • 路径追踪原理及实现

    路径追踪 Path Tracing 原理及实现 一 渲染方程 L o p w o
  • Games101,作业7(多线程提速)

    多线程 多线程的相关信息可根据我的另一个blog查看 多线程处理提速方式 将像素width height分隔为多份 每一份交给一个线程处理 分隔方式有 网格分隔 代码中使用了这种分隔方式 条形分隔 每一列 或 每一行 为一个线程 更利于编程
  • GDI和GDI+的应用场合思考

    GDI是微软公司的著名的二维图形引擎 GDI 则是微软公司为了提高显示效果而推出的一种新型图形引擎 下面我就我的一些使用经验阐述二者适用的应用场合 GDI基本能满足一般的绘图要求 我觉得GDI最令人诟病的是它画出来的线显示的锯齿实在比较厉害
  • 基于QT绘制可交互性的Bezier曲线

    前言 因为项目需要 要做一款类似AI里面的曲率工具出来 其实也类似Photoshop里面的钢笔工具 所以写了个demo来演练一番 之前是不懂Bezier的 但是网上找到的源码都是固定点的 但无论是钢笔工具还是曲率工具都是要能与鼠标键盘交互的
  • 《计算机图形学》微课版 孔令德 三、填充多边形 期末复习

    多边形的定义 多边形是由折线段组成的平面封闭图形 凸多边形 含有凸点的多边形称为凸多边形 凸点对应的内角小于180度 多边形上任意两顶点间的连线都在多边形之内 凹多边形 至少有一个凹点的多边形称为凹多边形 凹点对应的内角大于180度 多边形
  • 渲染方程的一点介绍

    来自 GAMES101 现代计算机图形学入门 闫令琪 哔哩哔哩 bilibili 反射方程 入射 反射 出射 没毛病 光线只弹射一次 入射光都来自光源 没毛病 但是 光线可能弹射的不止一次 这个入射 除了来自光源 还可能来自其它物体的反射
  • Games101 Lecture16 Ray Tracing 4笔记

    直接用大佬笔记 不重复造轮子 当然我也写不出这么详细的笔记 理论 从零开始学图形学 写一个光线追踪渲染器 一 渲染方程与BxDF 从零开始学图形学 写一个光线追踪渲染器 二 微表面模型与代码实现 代码实现 GAMES101 现代计算机图形学
  • BRDF详解(包括:irradiance,radiance,intensity,立体角)

    BRDF BRDF是双向反射分布函数 Bidirectional Reflectance Distribution Function BRDF 用来定义给定入射方向上的辐射照度 irradiance 如何影响给定出射方向上的辐射率 radi
  • GAMES101 作业3(附三角形重心坐标,Blinn-Phong光照模型及法线贴图推导)

    目录 写在前面 第一题 三角形重心坐标 第二题 Blinn Phong光照模型 第三题 纹理贴图 第四题 凹凸贴图实现及法线贴图推导 第五题 位移贴图 写在前面 main 函数中 std function
  • 基于GPU的三维体素化

    详情请看我的个人博客的体素化Voxelization 基于GPU的三维体素化
  • BRDF

    前言 现实世界中的表面绝大多数都是凹凸不平的 在这种情况下 可以把表面看成是大量朝向各异的微小光学平面的集合 我们肉眼可见的每个点都包含了很多个这样的微小光学平面 光线照射到这些微小表面上时 同样一部分在表面发生反射 这些朝向不同的微表面把
  • GAMES101: 现代计算机图形学入门(2)几何、光线追踪

    GAMES101 现代计算机图形学入门 链接 GAMES101 1 几何 1 1 几何的表示 隐式几何 通过一个函数表达式来表示的几何体 即 f x y z 0 优点 很容易判断一个点在不在几何体上 缺点 很难通过表达式看出几何体的形状 显
  • 计算机图形学GAMES101(十五)光线追踪(蒙特卡洛积分与路径追踪)

    本节涉及内容 蒙特卡罗积分 路径追踪 蒙特卡罗积分 蒙特卡罗积分的核心思想还是求一个不规则图形的面积 它的做法是 首先在a和b之间找一个值xi然后求f x 接着以f x 为高 ab为宽求矩形的面积 最后将所有的值求平均 当采样数量xi趋于无
  • 62.[GIS基础]笛卡尔坐标系

    文章目录 笛卡尔坐标系 多坐标系 坐标系的嵌套 坐标变换 坐标系转换 转载请注明原始链接 http blog csdn net a464057216 article details 54578069 后续此博客不再更新 欢迎大家搜索关注微信
  • OpenGL超级宝典 纹理(一)

    文章目录 纹理 创建并且初始化纹理 更新纹理数据 从着色器中读取数据 采样器类型 控制纹理数据的读取方式 创建采样器对象和绑定到纹理单元 纹理过滤 设置过滤器 加载纹理 完整代码展示 shader vertex shader fragmen
  • GDI+学习笔记四-双缓冲图形类

    双缓冲图形 问题 当在窗体中绘制较为复杂的图形对象时 常会出现闪烁的问题 NET Framework解决方案 提供了双缓冲功能 原理是 当启用双缓冲时 所有绘制操作首先呈现到内存缓冲区 而不是屏幕上的绘图图面 所有绘制操作完成后 内存缓冲区

随机推荐

  • 如何判断服务器在国内还是海外?

    已知晓网站或是已知晓IP 如何判断该服务器是国内的还是海外的呢 在已知网站域名的情况下 可以通过ping网站域名来获得服务器的IP 当然有些网站是做了禁ping的 不知道IP的情况下是无法判断是国内还是海外的机器 比如咱们已知晓IP是103
  • Java响应式编程

    Java响应式编程 一 lambda表达式 1 1 lambda简介 1 2 lambda语法 1 3 FunctionalInterface 1 4 方法引用 1 5 类型推断 1 6 变量引用 1 7 级联表达式和柯里化 二 Strea
  • RFID桌面一体机在珠宝管理中的应用

    1 产品 铨顺宏 FU M6 USB N是一款以Thingamgic优异的M6e NANO模组为核心集成桌面式RFID一体机 RFID桌面工作台外观轻薄时尚 便于安装同时不影响美观 适用于进行RFID标签的读取 写入等绑定操作 同时 设备具
  • 【华为OD统一考试B卷

    华为OD统一考试A卷 B卷 新题库说明 2023年5月份 华为官方已经将的 2022 0223Q 1 2 3 4 统一修改为OD统一考试 A卷 和OD统一考试 B卷 你收到的链接上面会标注A卷还是B卷 请注意 根据反馈 目前大部分收到的都是
  • oracle清除试图的数据,ORACLE大表中删除部分数据最佳方案

    如果业务无法停止的话 主要有这三种思路 思路1 根据ROWID分片 再利用Rowid排序 批量处理 回表删除 在业务无法停止的时候 选择这种方式 的确是最好的 一般可以控制在每一万行以内提交一次 不会对回滚段造成太大压力 我在做大DML时
  • Python+Selenium安装及环境配置

    转自 https www cnblogs com sandysun p 7838113 html 一 Python安装 Window系统下 python的安装很简单 访问python org download 下载最新版本 安装过程与其他w
  • 摄像头网络模组的使用

    摄像头和网络模组尾线如上图所示 利用上面两个模组 打算自己做一个简单的网络摄像头 在上面的模组网站上找到对应模组的接口定义资料 因为我们要自己将对应的网线接口等接好 本模组的接口如下 具体的该模组的接线如上所示 该网络模组尾线总共有 根 根
  • B07_NumPy 高级索引(整数数组索引,布尔索引,花式索引)

    NumPy高级索引 NumPy 比一般的 Python 序列提供更多的索引方式 除了之前看到的用整数和切片的索引外 数组可以由整数数组索引 布尔索引及花式索引 整数数组索引 以下实例获取数组中 0 0 1 1 和 2 0 位置处的元素 实例
  • 文储研习社第17期

    文储研习社是文储区块链技术人员自发组织的学习交流社区 旨在于追踪区块链时下最新热点 解码热点蕴含的未知领域 享受思想交流的碰撞 欢迎志同道合的小伙伴加入我们 共同学习与成长 第17期 为了提高考证通过率 不小心搭了条链 作者 Bingo 你
  • java springboot 8080端口号冲突时 修改当前项目端口号

    背景 springboot 项目启动时报错 Web server failed to start Port 8080 was already in use 报错原因 端口被占用 解决方案 修改项目application properties
  • SpringCloud整合Eureka出现“Error creating bean with name ‘configurationPropertiesBeans‘ defined in......“

    笔者在实现SpringCloud整合Eureka注册中心时出现如下报错 org springframework beans factory BeanCreationException Error creating bean with nam
  • C++ 类:类相关的非成员函数、构造函数

    前提 仍有 Sales data 类的代码 struct Sales data std string isbn const return bookNo 返回 isbn 编号 Sales data combine const Sales da
  • cpplint在VS Code中的安装及使用

    目录 前言 Python环境的配置 在VS Code中安装相应插件 补充 如何将VS Code默认的格式化风格改为Google风格 相关链接 前言 cpplint是一款Google的代码检查工具 确定一种编码风格对于我们有非常大的帮助 也可
  • Qt视频播放器[QMediaPlayer+QVideowidget]

    目录 参考 一 安装K Lite 解码器 二 Qt代码结构 VideoPlayer pro main cpp videoplayer h 播放器 videoplayer cpp 播放器 videoplayer ui 播放器 playersl
  • Python爬虫抓取经过JS加密的API数据的实现步骤

    随着互联网的快速发展 越来越多的网站和应用程序提供了API接口 方便开发者获取数据 然而 为了保护数据的安全性和防止漏洞 一些API接口采用了JS加密技术这种加密技术使得数据在传输过程中更加安全 但也给爬虫开发带来了一定的难度 在面对经过J
  • 常用集成运放电路合集(简洁易懂,附Multisim仿真文件)

    电赛初试培训整理的常用的集成运放电路集合 尽可能地追求全面 本文省略繁琐的推导过程 直接给出电路及其功能 以便读者使用时进行查阅 由于每个电路的介绍可能相对简略 实际使用或学习时可在站内查阅资料 网上资料丰富 在此不再赘述 本文目的是提供一
  • 树莓派体验3 - SSH登录树莓派

    如果没有HDMI转接线 显示器 USB转TTL串口线 那么可以通过网络SSH远程登录的方式访问树莓派 无显示器使用SSH访问 开启SSH服务 首先 通过镜像版本号确认一下SSH是否默认开启 树莓派官网的release note中说明 201
  • SQL的使用规范

    高程序运行效率 优化应用程序 在SP编写过程中应该注意以下几点 a SQL的使用规范 i 尽量避免大事务操作 慎用holdlock子句 提高系统并发能力 ii 尽量避免反复访问同一张或几张表 尤其是数据量较大的表 可以考虑先根据条件提取数据
  • 小程序主体为个人的教育类小程序备案——教育APP备案问题

    今天微信小程序后台发了通知 看了一下 我的小程序选择了 教育分类 思考了一下 虽然我选择了 教育 但是我的小程序是属于字典工具类的 与教育备案没什么关联 解决的办法 删除教育分类 老老实实备案 我选择了 因为我想了解下个人主体的小程序能不能
  • VS2019下的GAMES101作业环境配置

    序 很久很久以前 好像看过这个 GAMES101 现代计算机图形学入门 闫令琪 哔哩哔哩 bilibili 里面好像还有一个实验 当时只是看了看视频里的热闹 并没有写实验 现在想想 还是写一写的好 万一以后用上了呢 虽然是个24K纯小白 估