GAMES101 现代计算机图形学入门 Assignment 0:环境配置

目录

  • 前言
  • Assignment 0
    • 环境配置
      • CMake
      • Eigen
        • Windows
        • Linux
      • OpenCV
        • Windows
          • VCPKG的安装
    • 作业实现
  • Assignment1

前言

GAMES101 真的是一门神课,上次让我感觉到这么棒的还是翁恺老师的C语言入门。其实早就在给那位wisc小姐姐代作业的时候就刷完了这门课程,今天想起来把作业做一下,就来写点笔记吧,也不知道自己能不能做完hhh。
视频链接
作业链接

Assignment 0

这个作业是环境的搭建,作业要求的是VBox下建个Ubuntu,VBox自从帮那个英硕姐姐写完了作业后我都好久没开过了= =,直接在阿里云服务器上做吧,正好闲着也是闲着,只拿来当个挂卡脚本太浪费了,物尽其用嘛。不过由于作业里是直接给的硬盘文件,这里就要我自己配一些东西了。

环境配置

首先给个总结,我自己用的环境是windows visual studio 2022 preview,搭配windows terminal连接阿里云服务器Ubuntu,前置环境可以自己酌情选择。库环境这里有Eigen、OpenCV。

CMake

我服务器上面是没有配CMake的,以前在VBox上也是makefile一把梭,这里需要配一下。
这个简单,直接sudo apt install cmake完事。安装完了后用which cmake检查一下,出现路径说明配置完成了。

Eigen

Eigen是这个课程的作业用的一个C++库,专门搞数值计算的,官网链接。这里我在本地VS和云端都配置一下,本地方便我写。

Windows

  1. 官网下载 latest 的zip后解压到D盘,是单个文件夹,放心解压。为了跟他作业匹配,在解压目录下建立一个叫eigen3的文件夹,然后把Eigen文件夹拖进去。
  2. VS创建一个叫GAMES101的项目,以后就在这里面敲代码咯。
  3. 项目属性里,全局设置附加包含目录里把解压目录加进去,链接器里也加进去。
    GAMES101 现代计算机图形学入门 Assignment 0:环境配置_第1张图片
    GAMES101 现代计算机图形学入门 Assignment 0:环境配置_第2张图片 4. 测试例程,顺利运行
#include
#include
#include
#include

int main() {

    // Basic Example of cpp
    std::cout << "Example of cpp \n";
    float a = 1.0, b = 2.0;
    std::cout << a << std::endl;
    std::cout << a / b << std::endl;
    std::cout << std::sqrt(b) << std::endl;
    std::cout << std::acos(-1) << std::endl;
    std::cout << std::sin(30.0 / 180.0 * acos(-1)) << std::endl;

    // Example of vector
    std::cout << "Example of vector \n";
    // vector definition
    Eigen::Vector3f v(1.0f, 2.0f, 3.0f);
    Eigen::Vector3f w(1.0f, 0.0f, 0.0f);
    // vector output
    std::cout << "Example of output \n";
    std::cout << v << std::endl;
    // vector add
    std::cout << "Example of add \n";
    std::cout << v + w << std::endl;
    // vector scalar multiply
    std::cout << "Example of scalar multiply \n";
    std::cout << v * 3.0f << std::endl;
    std::cout << 2.0f * v << std::endl;

    // Example of matrix
    std::cout << "Example of matrix \n";
    // matrix definition
    Eigen::Matrix3f i, j;
    i << 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0;
    j << 2.0, 3.0, 1.0, 4.0, 6.0, 5.0, 9.0, 7.0, 8.0;
    // matrix output
    std::cout << "Example of output \n";
    std::cout << i << std::endl;
    // matrix add i + j
    // matrix scalar multiply i * 2.0
    // matrix multiply i * j
    // matrix multiply vector i * v


    /*
    * PA 0
    */
    // TO DO: Define point P
    // TO DO: Define rotation matrix M
    // TO DO: M * P
    return 0;
}

Linux

然后我们在服务器上配置,一句sudo apt-get install libeigen3-dev搞定。然后创立个文件夹
GAMES101 现代计算机图形学入门 Assignment 0:环境配置_第3张图片

scp文件到服务器。
GAMES101 现代计算机图形学入门 Assignment 0:环境配置_第4张图片
编译测试一下,运行成功

mkdir
cd build
cmake ..
make
./Transformation

GAMES101 现代计算机图形学入门 Assignment 0:环境配置_第5张图片

OpenCV

这次作业其实是用不到OpenCV的,不过后面的都要,这里一并配了

Windows

本来我是打算自己撸的,安了半天太吉尔折磨了,索性直接删了,上vcpkg!!!

VCPKG的安装

windows terminal打开你想安装的文件夹
GAMES101 现代计算机图形学入门 Assignment 0:环境配置_第6张图片
直接git clone一下,没有git环境的自己装。

git clone https://github.com/microsoft/vcpkg

GAMES101 现代计算机图形学入门 Assignment 0:环境配置_第7张图片
执行.\bootstrap-vcpkg.bat编译vcpkg

.\bootstrap-vcpkg.bat

GAMES101 现代计算机图形学入门 Assignment 0:环境配置_第8张图片
这个时候我们输入.\vcpkg.exe search opencv测试一下,可以看到给你列了一大堆出来

运行下载,这里可能会很慢,可以尝试使用一些神秘力量

.\vcpkg.exe install opencv

作业实现

最后assignment0要求做一个简单的旋转平移计算,很简单
GAMES101 现代计算机图形学入门 Assignment 0:环境配置_第9张图片

定义一个Tool.h,方便以后调用,别的直接按公式写就完事了。

main.cpp里调用。
GAMES101 现代计算机图形学入门 Assignment 0:环境配置_第10张图片
运行结果
在这里插入图片描述

Assignment1

你可能感兴趣的:(GAMES101,现代计算机图形学入门,作业笔记,图形渲染)