Games101学习笔记1

这篇具有很好参考价值的文章主要介绍了Games101学习笔记1。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

2023-08-10开始接触图形学

参考博客:GAMES101 梳理 / 个人向图形学笔记_games101笔记_river_of_sebajun的博客-CSDN博客

Lecture 01--Overview of Computer Graphics

Lecture 02 Review of Linear Algebra

复习线性代数

Games101学习笔记1,图形学,Games101

  •  向量的长度
  • 向量的单位化

Games101学习笔记1,图形学,Games101

  •  向量的点乘

点乘结果是一个数字,叉乘结果是垂直已知向量的向量

Games101学习笔记1,图形学,Games101

  •  b向量投影到a向量上

Games101学习笔记1,图形学,Games101

Games101学习笔记1,图形学,Games101

  •  矩阵的乘法

Lecture 03 Transformation  变换

Lecture 04 Transformation Cont 

二维变换

线性变换

Games101学习笔记1,图形学,Games101

 Games101学习笔记1,图形学,Games101

  •  切边

Games101学习笔记1,图形学,Games101

  •  旋转变换

Games101学习笔记1,图形学,Games101

三维变换

model:把模型从本地坐标转换成世界坐标。
view:把世界坐标转换成观察坐标。先把相机放到某一位置,在保持相机的方向,把相机移动到原点。

相机从一个坐标变换到世界坐标原点了,为了保持相机视图的图像不变,model也要跟着相机一起运动,相机变换到世界坐标的矩阵,就是model的变换矩阵,也就是MVP


projection:包括正交投影和透视投影。正交投影:无视z坐标,移动到原点;透视投影:把平截头体压缩成立方体,再进行正交投影。经过这一步得到标准化坐标。

Games101学习笔记1,图形学,Games101

Games101学习笔记1,图形学,Games101

 

绕任意坐标轴旋转

旋转矩阵:旋转矩阵(Rotation Matrix)的推导及其应用 - meteoric_cry - 博客园 (cnblogs.com)

Games101学习笔记1,图形学,Games101

 

 罗德里格斯公式附图推导,理解_罗德里的公式_霜桥月馆的博客-CSDN博客

 *在一般的图形学渲染管线里,mvp都是发生在几何阶段的,具体过程是,先进行mv矩阵变换,然后对顶点进行着色(包括法向量、纹理坐标、颜色等),之后投影矩阵变换,得到一个标准化立方体(正交投影得到标准立方体好理解,但其实透视投影得到的也是标准立方体,经过压缩之后的),之后经过视锥剔除这一步操作,避免不必要的时间消耗,此时得到的还是标准化立方体,顶点的坐标还是三维的,然后经过视口变换,得到对应屏幕大小的二维图像,此时的顶点包括所有需要的信息(包括法向量、纹理坐标、颜色等)。然后进入光栅化阶段,先进行三角形处理,对顶点与顶点之间做插值,然后做光栅化,对应到像素,然后做shadding(包括纹理映射),对像素着色,之后做可视化处理、alpha测试、模板测试等,上屏到显示设备。
*矩阵相乘的顺序是从右往左,矩阵变换的顺序应该是——缩放、旋转、平移。

 

为什么引入齐次坐标

区分向量和点,更易于表示仿射变换
*仿射变换就是线性的几何变换加上一个平移,包括旋转、缩放、平移、切变。

Games101学习笔记1,图形学,Games101

Games101学习笔记1,图形学,Games101

 point + point 的答案是两个点的中点

仿射变换:

Games101学习笔记1,图形学,Games101文章来源地址https://www.toymoban.com/news/detail-642029.html

到了这里,关于Games101学习笔记1的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 计算机图形学-GAMES101-11

    使用一系列点表示物体的表面。 理论上可以表达空间中任何物体。 如物体扫描会得到空间中一系列点,但在建模时我们要提取出大量多边形的面。 点云对密度要求很高,因此不常使用。 使用三角形表示物体。 涉及三角形之间的连接关系。  obj模型文件格式:  v表示按顺

    2024年02月05日
    浏览(35)
  • Games101笔记-模型、视图、投影

    在旋转点,旋转矩阵的逆等于矩阵的转置 左边3*3是线性变换,右边一列是仿射变换(平移) 先线性再平移 x叉乘y得到z,y叉乘z得到x, xyz给任何两个可以得到另一个 (循环对称) z叉乘x得到y,所以y是反的 任意绕3d轴旋转可以分解为绕x,y,z轴旋转。三个角为欧拉角 罗德里格斯旋

    2024年03月19日
    浏览(52)
  • 17 - Games101 - 笔记 - 材质与外观

    自然界中的材质:丝绸、头发、蝴蝶翅膀表面、寿司表面等等 图形学中的材质:同一个模型之所以渲染出不同结果的原因就是因为材质。在图形学中是给不同的物体指定不同的材质,知道它们如何和光线作用后就能正确的渲染。 漫反射材质:光线打到一个点上后均匀分散到

    2024年04月10日
    浏览(40)
  • GAMES101笔记 Lecture02 线性代数基础

    Garphics’ Dependencies(图形学的依赖) Basic mathematics(基础的数学) Linear alrebra, calculus, statistics Basic physics(基础的物理) Optics, Mechanics Misc(杂项) Signal processing Numerical analysis And a bit of asethetics(以及一点美学) Vectors(向量) 通常写成 a ⃗ vec a a 或者加粗的 a ; 或者使用起点或者重点来表示

    2024年02月09日
    浏览(32)
  • games101-3 BRDF101

    本文基于知乎Maple对brdf的文章,在此基础又收集了一些其它来源的关于brdf的文章,希望能够完全理解记忆相关知识 关于Jakub Boksansky的文章,看的过程中又去搜集了很多其它文章来理解,发现已经超出了我目前的知识厚度,因此只会简单的翻译一下我能理解的部分,感兴趣的

    2024年04月25日
    浏览(32)
  • GAMES101:作业3

    附其他所有作业超链接如下: Games101 作业0: 作业0 Games101 作业1: 作业1 Games101 作业2: 作业2 Games101 作业3: 作业3 Games101 作业4: 作业4 Games101 作业5: 作业5 Games101 作业6: 作业6 Games101 作业7: 作业7 完整代码获取途径: https://github.com/liupeining/Games_101_homework 照旧把这段代码

    2024年02月04日
    浏览(40)
  • 【GAMES101】03 Transformation

    1、Scale(缩放)  2、Reflection Matrix(反射矩阵)  3、Shear Matrix(剪切矩阵)  4、Rotation Matrix(旋转矩阵) 推导过程:     5、Translation Matrix(平移矩阵) 平移操作不属于线性变换的范畴。 引入 齐次坐标 ,通过增加维度,来将平移坐标写成同样的矩阵形式。 很显然,平移无

    2024年02月02日
    浏览(43)
  • games101 作业3

    1.项目才打开时无法运行。 解决方法: 切换成c++17 解决方法引用: Games101 作业3 环境问题 - 知乎  注:知乎里面的关于越界限制的控制不适用,虽然可以解决部分作业的问题,但是在bump里面依然会出现越界错误。应该用以下大佬的代码。  2.出现越界错误   解决方法: 在头

    2023年04月25日
    浏览(38)
  • GAMES101 作业1

    作业pa1对应的是GAMES101课程Lecture02到Lecture04这三节课的内容,主要是用于巩固空间中的物体投影到相机平面的整个过程。 说在前面,本文是在左手系下进行讨论的。 粗略地看一遍我们可以知晓main函数的流程: ①设定一些基本的初始参数并初始化源代码给出的 光栅化类raste

    2024年02月09日
    浏览(34)
  • GAMES101 作业0

    课上提供的环境是Linux, 还需要安装Vitrual Box和创建虚拟机,省事就直接在Windows系统下Visual Studio下操作了。 简单的环境配置: 下载Eigen 的库 在工程属性中添加目录: 2处地方 注意: 刚添加完后,我新建main.cpp后, 引入头文件 路径也没有设置错啊,但是就是找不到。 直到看

    2024年02月16日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包