网课:GAMES101-homework pa0

Games101环境配置和作业答案:pa0 引言 这一节的作业主要是为了引导大家配置环境,并学习Eigen库的矩阵、向量等操作。本篇帖子用来记录一下我的心路历程和最终代码。 环境配置 ①先来说一下我在环境配置上吃的苦,我本身装有VMware虚拟机,内核用的是Ubuntu,考虑到Linux在搞开发上的优越性,我打算用这个完成图形学作业,但是真的太太太麻烦了!闫老师那边已经给了Virtual Box和内核,所以真正用Linux并且配置环境的帖子很少!比较有参考性的一个博主的博客我放在这里,该博主的配置时间比较新,对于以后还想尝试环境... 阅读详情

作业1还是挺简单的,把课上一些基本的概念写成代码即可。
在这里插入图片描述

#include<cmath>
#include<eigen3/Eigen/Core>
#include<eigen3/Eigen/Dense>
#include<iostream>

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;
    std::cout << "test the precision of pi:" << std::acos(-1.0) << 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
    // homework pa0
    Eigen::Vector3f p,res;
    p << 2,1,1;
    Eigen::Matrix3f rotation,translation;
    translation << 1,0,1,0,1,2,0,0,1;
    rotation << std::cos(45.0/180.0*acos(-1)),-1*std::sin(45.0/180.0*acos(-1)),0,
                std::sin(45.0/180.0*acos(-1)), std::cos(45.0/180.0*acos(-1)),0,
                0,0,1;
    res = translation*rotation*p;
    std::cout << "this is the res point:" << std::endl;
    std::cout << res << std::endl;

    return 0;
}

结果如下:
在这里插入图片描述

GAMES101-现代计算机图形学学习笔记(作业02) GAMES101-现代计算机图形学学习笔记(作业02) 1. 修改函数 rasterize_triangle(const Triangle& t) in rasterizer.cpp: 在此 处实现与作业 2 类似的插值算法,实现法向量、颜色、纹理颜色的插值。 2. 修改函数 get_projection_matrix() in main.cpp: 将你自己在之前的实验中 实现的投影矩阵填到此处,此时你可以运行./Rasterizer output.png normal 来观察法向量实现结果。 3. 修改函数 phong_fragment_shader() in main.cpp: 实现 Blinn-Phong 模型计算 Fragment Color. 4. 修改函数 texture_fragment_shader() in main.cpp: 在实现 Blinn-Phong 的基础上,将纹理颜色视为公式中的 kd,实现 Texture Shading Fragment Shader. 5. 修改函数 bump_fragment_shader() in main.cpp: 在实现 Blinn-Phong 的基础上,仔细阅读该函数中的注释,实现 Bump mapping. 6. 修改函数 displacement_fragment_shader() in main.cpp: 在实现 Bump mapping 的基础上,实现 displacement mapping. 7. 双线性纹理插值: 使用双线性插值进行纹理采样, 在 Texture 类中实现一个新方法 Vector3f getColorBilinear(float u, float v) 并 通过 fragment shader 调用它。为了使双线性插值的效果更加明显,你应该 考虑选择更小的纹理图。请同时提交纹理插值与双线性纹理插值的结果,并 进行比较。 立即下载

相关推荐

GAMES202homework:主要是学习闫老师的GAMES202高质量实时渲染完成的大作业

GAMES202homework 主要是学习闫老师的GAMES202高质量实时渲染完成的大作业 RenderDoc调试webgl: 用到了webgl所以需要webgl抓帧调试,但是当前shader的调试暂时不支持~ homework0 作业0主要是实现的Blinn-Phong 着色模型 ,最主要是的环境搭建测试熟悉202的框架等等; homework1 作业1主要是在Blinn-Phong 着色模型基础上实现阴影,通过shadow map实现硬阴影、Soft 阴影PCF算法过滤、软硬阴影PCSS;

GAMES101_pa0_Homework

简单记录一下GAMES101_PA

ShenH_Note的博客 441

校招总结—FPGA从入门到放弃

校招总结—FPGA从入门到放弃 感谢咸鱼FPGA的授权转发,原文地址为https://www.cnblogs.com/xianyufpga/ 其实 offer 早就定下来了,最近忙着入党考试,现在才腾出时间来写个总结。我校招开始于 7 月底,算是比较晚了,后面加了各大校招交流群,发现很多同学都是过完年后就开始打磨项目、复习基础、寻找实习。对比之下我这准备确实仓促,不过结果还算满意。 ...

qq_31515205的博客 8604

GAMES101 作业3(提升) 详细注释版本

实验内容:使用不同的方法对模型表面进行了贴图,包括法线贴图,凹凸贴图,位移贴图,纹理贴图和blinn-phong光照贴图。凭借一些个人的理解对大多数代码加上了注释,有些地方肯定会有理解不到位或者不对的情况,欢迎大佬留言指正。作业3需要对main.cpp进行修改,这里就主要贴出main.cpp的代码。

优快云_Yuchen的博客 371

【最全选型攻略-盘点篇】市面上有哪些靠谱的工业3D相机品牌?(双目、结构光、TOF、激光三角)

选工业3D相机,选最靠谱的品牌,选最Match你的产品,看这一篇就够了!

jiqishijueyingdi的博客 1万+

ESP32-S3 SPI接口实战:从引脚分配到高速通信配置

本文详细解析了ESP32-S3的SPI接口配置与高速通信优化技巧,从引脚分配到软件配置,再到DMA传输和时钟优化,帮助开发者快速掌握SPI通信技术。特别针对ESP32-S3的SPI2接口进行了实战演示,包括硬件连接和常见问题排查,适用于各类嵌入式开发项目。

weixin_29189373的博客 675

[GAMES101] homework1:Transformation

GAMES101 笔记

weixin_56721215的博客 316

Ubuntu下NVIDIA驱动安装全攻略:从报错到完美运行nvidia-smi的完整流程

本文提供了在Ubuntu系统中安装NVIDIA驱动的完整解决方案,重点解决因驱动版本冲突、内核模块未加载或Secure Boot安全启动导致的`nvidia-smi`报错问题。通过彻底清理旧驱动、处理Secure Boot、选择兼容版本并正确安装,最终确保驱动完美运行。

weixin_29196891的博客 364

Games101Homework【2】Triangles and Z-buffering

Games101Homework【2】Triangles and Z-buffering

weixin_61943345的博客 845

数字IC后端面试题目汇总含解析,ICer上岸必备!

今天IC修真院为大家带来了数字IC后端的面试题目,希望大家能够用得上。

coachip的博客 2447

从UE4到Unity:双叶高光技术在角色皮肤渲染中的移植全流程

本文详细解析了将UE4中的双叶高光技术移植到Unity引擎的全流程。该技术通过模拟皮肤油脂层和真皮层的不同反射特性,能显著提升角色皮肤渲染的真实感。文章从核心原理、贴图资产处理、Shader代码重构到参数调校,提供了完整的跨引擎移植实战指南,帮助开发者实现高质量的皮肤质感还原。

alice7model的博客 476

计算机图形学games101作业二 ---- 三角形光栅化 超采样抗锯齿 黑边处理

本文主要基于games101作业二,通过编写几个函数实现了三角形光栅化、抗锯齿操作,解决了黑边问题,并且给出了全部的代码,附有详细的解释,对初学者十分友好

m0_63669388的博客 659

深度强化学习在足式机器人中的应用 (一):基础原理与仿真环境

我们将首先深入探讨其背后的核心挑战与技术栈,然后详细推导机器人学和强化学习的基本数学原理,特别是剖析在机器人控制领域表现卓越的PPO算法。下面的独立Python脚本展示了Isaac Gym的基本API用法,加载一个Go1机器人(假设URDF已准备好),并让它执行一个简单的预设动作(正弦波运动),以此来熟悉仿真流程。:代码的核心是直接操作GPU上的PyTorch张量,避免了CPU和GPU之间的数据拷贝,这是实现高性能的关键。:所有计算(如伪策略中的正弦波计算)都应该是向量化的,一次性为所有。

VectorShift的博客 228

Games101Homework【6】Acceleration structure(Including framework analysis)

Games101Homework【6】Acceleration structure(Including framework analysis)

weixin_61943345的博客 1038

RK3399外设驱动之MIPI

RK3399外设驱动之MIPI 文章目录RK3399外设驱动之MIPIMIPI命令解析入口代码mipi显示配置实例rk3399mipi驱动rk mipi驱动注册过程rk32_mipi_dsi.c解析 内核版本 Linux4.4 平台 rk3399 作者 nineyole MIPI命令解析入口代码 MIPI的入口代码如下:kernel\drivers\video\rockchip\screen\lcd_mipi.c static int __init rk_mipi_screen_in

学无止境 2227

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Games101Homework【0】Build an environment

Games101Homework【0】Build an environment

weixin_61943345的博客 430

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

GAMES101作业(08)- 质点弹簧系统(编译坑)

这个比较坑,卡了好长时间,作业PDF里面不全。总之在运行之前,我在终端运行了以下代码来安装各种库。 若出现下载不了的情况,可以`sudo apt-get update`更新一下列表。

weixin_43399489的博客 2709

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

GAMES101 完结篇(笔记和作业)

我已经把笔记和作业代码放在了GitHub上,欢迎访问GAMES101笔记及作业 (github.com),如果对你有帮助,欢迎fork or star下面我想简单介绍一下这里面的东西GAMES101的学习就告一段落了,我现在处于边学习边寻找方向的阶段,以后还不一定用的上图形学,如果涉及这方面的东西估计会回头把那些公式再跟着老师推一下🆗那本专栏也就暂时到这里了。

2301_79799657的博客 5172

网课:GAMES101-homewor1

本次作业主要是补充两个函数,实现的目标是一个三角形绕着一个轴旋转.主要是使用课上PPT4里面涉及的内容. 主要讲解了三个矩阵,MVP. 对应在计算机里的拍照,实际上是这三步: Model:把要成像的物体摆好位置。 View:摆好照相机的位置,对准。 Projection:成像! 它们分别对应着三种变换,这就是 MVP transformation,我们目前要做的,就是搞清楚它们是怎么变换的。 第一个模型的变化矩阵的旋转矩阵是最简单的,直接从2维度的情况推演过来就可以了. Eigen::Matrix4f g

dlvector的博客 389

GAMES101 作业0 环境配置 超详细小白教程

使用chrome直接点击连接(如下图所示)什么都打不开,这时候需要右键→复制链接,再粘贴到地址栏即可(或者直接复制此链接 http://games-cn.org/wp-content/uploads/2020/02/pa0.zip ,去往该地址之后浏览器会自动下载)......

onion23的博客 5120

GAMES101 现代计算机图形学入门项目教程

GAMES101 现代计算机图形学入门项目教程 1. 项目介绍 GAMES101 是一个专注于现代计算机图形学入门的开源项目,由 Quanwei1992 在 GitHub 上维护。该项目旨在通过一系列作业和教程,帮助学习者全面了解和掌握现代计算机图形学的四大组成部分:光栅化成像、几何表示、光的传播理论以及动画与模拟。 GAMES101 项目不仅提供了丰富的理论知识,还通过实际编程作业,让学习者能够...

gitblog_00996的博客 1175

GAMES101:作业3记录

GAMES101:作业3记录

subtitle_的博客 1888

GAMES 101 pa0

std::cout << "旋转并平移后的结果" << std::endl << T * R * p << std::endl;std::cout << "旋转并平移后的结果" << std::endl << T * R * p << std::endl;std::cout << "旋转后的结果" << std::endl << R * p << std::endl;std::cout << "旋转后的结果" << std::endl << R * p << std::endl;

weixin_63543073的博客 765

【GAMES101闫令琪图形学】作业1(配置opencv4.5.4,并解决常见错误)

宿主机:Windows10;虚拟机:Ubuntu20.04。 作者:hans774882968 下载 opencv4.5.4:https://opencv.org/releases/ opencv_contrib4.5.4:https://github.com/opencv/opencv_contrib/releases/tag/4.5.4 unzip opencv-4.5.4.zip unzip opencv_contrib-4.5.4.zip 注意,两个文件夹要放在同一个文件夹(我命名为openc

hans774882968的博客 4616

LAVIS教育资源包:教师与学生使用指南

LAVIS语言-视觉智能库为教育领域提供了强大的AI工具,帮助教师创建互动教学内容,让学生体验前沿的多模态人工智能技术。本指南将详细介绍如何将LAVIS应用于教学实践,从基础安装到实际应用场景,为教育工作者和学生提供完整的LAVIS教育资源包使用方案。 ## 🎯 LAVIS在教育中的核心价值 LAVIS是一个一站式的语言-视觉智能研究与应用库,专门为教育场景设计。它支持**10+种多模态任务

gitblog_00049的博客 513

光学:数值孔径

其中,NA = n * sin α,其中 n 是被观察物体与物镜之间介质的折射率;α 是物镜孔径角(2α)的一半。

dlvector的博客 2万+
上一篇: Anaconda瘦身_清理相关存储
下一篇: dataset探索:花的类别
dlvector
博客等级 码龄10年 85粉丝 142原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值