Games101笔记-模型、视图、投影

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

在旋转点,旋转矩阵的逆等于矩阵的转置
Games101笔记-模型、视图、投影,图形学,Games101,笔记,图形学,games101

视图变换和投影变换

Games101笔记-模型、视图、投影,图形学,Games101,笔记,图形学,games101

三维变换

Games101笔记-模型、视图、投影,图形学,Games101,笔记,图形学,games101
左边3*3是线性变换,右边一列是仿射变换(平移)
Games101笔记-模型、视图、投影,图形学,Games101,笔记,图形学,games101
先线性再平移

缩放、旋转、平移

Games101笔记-模型、视图、投影,图形学,Games101,笔记,图形学,games101
Games101笔记-模型、视图、投影,图形学,Games101,笔记,图形学,games101
x叉乘y得到z,y叉乘z得到x, xyz给任何两个可以得到另一个
(循环对称) z叉乘x得到y,所以y是反的

3D旋转

Games101笔记-模型、视图、投影,图形学,Games101,笔记,图形学,games101
任意绕3d轴旋转可以分解为绕x,y,z轴旋转。三个角为欧拉角
罗德里格斯旋转公式
绕n单位向量方向旋转α角。
推导过程
Games101笔记-模型、视图、投影,图形学,Games101,笔记,图形学,games101
N的矩阵和把叉乘转成矩阵时的矩阵是一样的

View/Camera Transformation

MVP变换:
拍照:
找一个位置,人站好。相当于模型变换
找一个好的角度放相机。相当于视图变换
拍照。相当于投影变换
Games101笔记-模型、视图、投影,图形学,Games101,笔记,图形学,games101
相机的位置,相机的朝向,定义相机向上的方向
Games101笔记-模型、视图、投影,图形学,Games101,笔记,图形学,games101
相机默认放在原点,朝向-z,向上为y
Games101笔记-模型、视图、投影,图形学,Games101,笔记,图形学,games101
从e平移到原点,把观察轴g旋转成-z,旋转t到y,g*t自然就是x轴方向
Games101笔记-模型、视图、投影,图形学,Games101,笔记,图形学,games101
原始旋转Rview不好求,可以反过来求从原点旋转到相机角度,即x旋转到g叉乘t,y旋转到t,z旋转到-g
==>> (1,0,0)转到 ( x g × t , y g × t , z g × t ) (x_{g{\times}t},y_{g{\times}t},z_{g{\times}t}) (xg×tyg×tzg×t), (0,1,0)转到 ( x t , y t , z t ) (x_t,y_t,z_t) (xt,yt,zt), (0,0,1)转到 ( x − g , y − g , z − g ) (x_{-g},y_{-g},z_{-g}) (xg,yg,zg)
==>> R v i e w − 1 ⋅ ( 0 , 1 , 0 ) = ( x t , y t , z t ) R^{-1}_{view} · (0,1,0) = (x_t,y_t,z_t) Rview1(0,1,0)=(xt,yt,zt)
==>> 矩阵中间一列是 [ x t , y t , z t ] [x_t,y_t, z_t] [xt,yt,zt]

再做逆变换 (旋转矩阵是正交矩阵,所以旋转矩阵求逆等于将其转置)

逆矩阵:矩阵的逆是指对于一个可逆矩阵 A,存在一个矩阵 B,使得 A 乘以 B 等于单位矩阵。B为A的逆矩阵
转置矩阵:将矩阵的行和列互换得到的新矩阵

如果是反向旋转一个角度,最终得到的旋转矩阵其实是正向旋转矩阵的 逆矩阵 ,由于这个矩阵是正交阵 ,所以逆矩阵就是转置矩阵

总结:物体和相机做一样的变换,相机变换到原点,向上为y,朝向-z。即模型视图变换(ModelView Transformation)

Projection transformation

Games101笔记-模型、视图、投影,图形学,Games101,笔记,图形学,games101
正交投影:不会有近大远小的现象
透视投影
Games101笔记-模型、视图、投影,图形学,Games101,笔记,图形学,games101
正交投影相当于相机离的无限远,则近平面与远平面几乎一样大小

正交投影

Games101笔记-模型、视图、投影,图形学,Games101,笔记,图形学,games101
相机归位原点后,扔掉z坐标,不管x,y范围多到,转换到[-1,1], 得到的结果就是正交投影
Games101笔记-模型、视图、投影,图形学,Games101,笔记,图形学,games101
定义空间中的一个立方体(空间中要做正交投影的范围),定义立方体的左右在x轴上是多少,下上在y轴是多少,远近在z轴是多少。将立方体映射到标准立方体[-1,1]
如何映射:把立方体的中心移到原点,把xyz轴分别拉成 -1到1。
f、n代表了远近,越远,z值越小,即 n > f。因为是沿着-z方向。为了保证右手坐标系。
在一些api如openGL等是左手系,但是x叉乘y不再等于z

Games101笔记-模型、视图、投影,图形学,Games101,笔记,图形学,games101
先平移再缩放

透视变换

Games101笔记-模型、视图、投影,图形学,Games101,笔记,图形学,games101
近大远小,平行线不再平行,相较于一点
Games101笔记-模型、视图、投影,图形学,Games101,笔记,图形学,games101
(1,0,0,1)和(2,0,0,2)在3D里代表同一个点
Games101笔记-模型、视图、投影,图形学,Games101,笔记,图形学,games101
从一个点往外看,同样定义一个近平面和远平面。
先将远平面的4个点挤到近平面,再做正交投影
注意:

  1. 近平面永远不变
  2. 挤完之后,远平面z值不变
  3. 挤完之后,中心点仍为中心
    Games101笔记-模型、视图、投影,图形学,Games101,笔记,图形学,games101
    Games101笔记-模型、视图、投影,图形学,Games101,笔记,图形学,games101

从透视到正交:从侧面看,是相似三角形。求出远平面的y点在近平面的y点,x同理。
根据齐次坐标都乘以z
Games101笔记-模型、视图、投影,图形学,Games101,笔记,图形学,games101
注意第4行是(0,0,1,0)而不是(0,0,0,z)因为z不是常量
Games101笔记-模型、视图、投影,图形学,Games101,笔记,图形学,games101
任何一个点在近平面都不变,任何点在近平面和远平面的z值不变,近平面的z值定义为n
近平面的(x,y,n,1)经过0000投影变换仍是(x,y,n,1)
Games101笔记-模型、视图、投影,图形学,Games101,笔记,图形学,games101
远平面的中心点经过变换仍是中心点,远平面的z值为f
远平面的(0,0,f,1)经过投影变换仍是(0,0,f,1)
Games101笔记-模型、视图、投影,图形学,Games101,笔记,图形学,games101
透视矩阵的参数:
fov:视场角
aspect:宽高比
far:远平面
near:近平面

提问/作业

问题:对于中间的任何一个点,某一个z,如 z = n + f 2 {n+f}\over{2} 2n+f,经过变换后,z会如何变换。是变大(更接近于n)还是变小(更接近于f):
x,y影响忽略,带入(0,0, n + f 2 {n+f}\over{2} 2n+f, 1)到投影变换方程
==>> (0,0, n 2 + f 2 2 {n^2+f^2}\over{2} 2n2+f2, n + f 2 {n+f}\over{2} 2n+f)
==>> (0,0, n 2 + f 2 n + f {n^2+f^2}\over{n+f} n+fn2+f2, 1)
==>> n 2 + f 2 n + f {n^2+f^2}\over{n+f} n+fn2+f2 - n + f 2 {n+f}\over{2} 2n+f
==>> ( n − f ) 2 2 ( n + f ) {(n-f)^2}\over{2(n+f)} 2(n+f)(nf)2
==>> 镜头朝向-z,分母为负,分子为正。 小于0
==>>变换后的z值小于变换前的z值,更接近与远平面
==>>近大远小

显示三角形并控制旋转
Games101笔记-模型、视图、投影,图形学,Games101,笔记,图形学,games101
绕任一向量旋转
绕(1,1,-1)
Games101笔记-模型、视图、投影,图形学,Games101,笔记,图形学,games101
github 作业地址文章来源地址https://www.toymoban.com/news/detail-841395.html

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

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

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

相关文章

  • 计算机图形学-GAMES101-3

    缩放变换示意图 图形每个像素对应坐标的计算公式 写成缩放矩阵的形式 非均匀缩放 镜面变换示意图 图形每个像素对应坐标的计算公式 写成镜像矩阵的形式 切变变换示意图 写成切片矩阵的形式 旋转变换示意图 旋转默认以原点为旋转中心,旋转方式为逆时针旋转。 旋转矩

    2024年02月06日
    浏览(37)
  • Games101学习笔记1

    2023-08-10开始接触图形学 参考博客:GAMES101 梳理 / 个人向图形学笔记_games101笔记_river_of_sebajun的博客-CSDN博客  向量的长度 向量的单位化  向量的点乘 点乘结果是一个数字,叉乘结果是垂直已知向量的向量  b向量投影到a向量上  矩阵的乘法 二维变换 线性变换    切边  旋转

    2024年02月13日
    浏览(35)
  • 17 - Games101 - 笔记 - 材质与外观

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

    2024年04月10日
    浏览(39)
  • Games101学习笔记 - 变换矩阵基础

    缩放变换 : 1均匀缩放 2不均匀缩放 注意:上图是默认二维旋转的是以远点为圆转重心,并且逆时针旋转 旋转矩阵推导原理: 引入原因: 上面说了ax + by 的方式都可以写成矩阵的形式,但是平移的操作的公式如下,不能写成矩阵的形式。 只能写成如下: 为了同意变换,让他

    2024年02月15日
    浏览(29)
  • 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日
    浏览(31)
  • games101-3 BRDF101

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

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

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

    2024年02月09日
    浏览(33)
  • Games101作业5解读

    在scene中加入两个球一个地板和两个点光源 在Render中我们从eye_pos向屏幕打出一根一根的ray与场景相交 第一步先与场景的求交,如果光线打到了物体,就继续判断打到的物体的材质,根据不同的材质进行不同的处理,这里重点说下REFLECTION和default 在REFLECTION中,这一段代码有点问

    2024年02月09日
    浏览(31)
  • GAMES101作业2

    在屏幕上画出一个实心三角形, 换言之,栅格化一个三角形。上一次作业中,在视口变化之后,我们调用了函数 rasterize_wireframe(const Triangle t)。但这一次,你需要自己填写并调用 函数 rasterize_triangle(const Triangle t)。 该函数的内部工作流程如下: 创建三角形的 2 维 bounding box。

    2024年02月16日
    浏览(41)
  • GAMES101:作业7记录

    在之前的练习中,我们实现了 Whitted-Style Ray Tracing 算法,并且用 BVH等加速结构对于求交过程进行了加速。在本次实验中,我们将在上一次实验的基础上实现完整的 Path Tracing 算法。至此,我们已经来到了光线追踪版块的最后一节内容。 请认真阅读本文档,按照本文档指示的流程完成

    2024年02月01日
    浏览(45)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包