现代图形学入门

全文作为入门图形学的笔记 学习跟踪GAMES101-现代计算机图形学入门-闫令琪
https://www.bilibili.com/video/BV1X7411F744?p=2
首先强调一点 齐次坐标这个w坐标轴,用以表示这个点是一个向量还是点。
0表示向量 1表示点
在变换时应该优先考虑旋转 再考虑平移
在这里插入图片描述

学习之前了解一些基本的线性代数知识
只有当左边的列数=右边的行数(n=n)时矩阵可以相乘

这是一个三行两列的矩阵乘以两行四列的矩阵=三行四列的矩阵

9=1x3+2x3 27=1x6+3x7 33=1x9+3x8 13=1x4+3x3
19=5x3+2x2 44=5x6+2x7 61=5x9+2x8 26=5x4+2x3
8=0x3+2x4 28=0x6+4x7 32=0x9+4x8 12=0x4+4x3

需要第几行第几列就去找第几行第几列
结果的第三行第一列数字8 只需要去找 左边第三行右边第一列对应相乘相加即可

切变变换

在这里插入图片描述

可以发现在底下这条边的水平方向是没有变化的
在顶上那条边的水平方向都是移动了a
最左边的那条边中间的位置移动了1/2个a
则任何的x在水平方向上的移动都是a乘以y

对于旋转变化

在这里插入图片描述

这个Rθ就是旋转变换公式
这个公式怎么推导出来的
在这里插入图片描述
相当于是取两个特殊点比如,设置边长为1 (1,0)这个点和(0,1)这个点如果说这个这个经过变化后的xy坐标是一个变换矩阵乘以原来的坐标列向量 设这四个数为ABCD 带入其中一个点可以得到两个参数的值 带入两个点可以得到全部参数苏

齐次坐标在图形学中的使用

在这里插入图片描述
通过齐次坐标可以通过增加一个数的方式来吧空间的平移变化变成矩阵乘以坐标的形式
在这里插入图片描述
其中点和点加起来是什么呢 是两个点的中电 其中当W=2 x,y都除以w等于都除以2
在这里插入图片描述
不管是平移还是旋转都可以写成这个齐次坐标的形式

最后一行永远是001 然后abcd是变换矩阵 最后一列是平移坐标tx ty 1

在这里插入图片描述
三维坐标下一样可以使用齐次坐标来表示三维坐标下的变换

在这里插入图片描述齐次坐标这个w坐标轴,用以表示这个点是一个向量还是点。

Scale 缩放 对于缩放来说没有平移就是001
Rotation 旋转 对于旋转来说没有平移就是001
Translation 平移

总之用其次坐标可以很方便的吧各种变化写成矩阵的形式

在c++中三角函数的运算采用弧度制
sin(30)=sin(30/180*acos(-1))
acos(-1)=π 为cos(π)的反函数 cos(π)=-1

在c++中使用矩阵时需要指定矩阵的类型
在定义时指定(m,n)来确定矩阵是一个行和列那种矩阵

点积 叉积 及其用法

点积(内积):

a向量 b向量
a·b=|a|x|b|cosθ 两个向量的模 乘以夹角余弦
一般用于判断两个向量的位置关系
两个向量的单位向量点乘结果表示这两个向量有多相像。则点乘结果为1,相反则为-1,而两个向量互相垂直则为0。
在这里插入图片描述

因此当光线照到一个模型上面时,我们便可以问:”光线方向与法线方向的点乘结果是什么?“如果L的向量与N一样(N Dot L=1),那么表示模型的这个点正对着光源,应该最亮,相反,如果两个向量呈相反方向(N Dot L=-1),那么则表示这个点背对光源,应该最暗
有同学可能会问,L是光照方向,为什么它指着光源啊?光不应该是从光源发出来的么?
没错但是图形学的世界里,光照方向指的是从每一个世界坐标出发,指向光源的向量,图形学中的光照方向与它在物理上的意义一点关系都没有。这样做并没有什么高深的原理,只是因为从数学上来讲,计算点乘会方便一点而已。
在这里插入图片描述
当点乘积为负数结果时,它实际上是用不着的,因为渲染负方向的光照并没有什么意义,所以我们可以直接无视它。shader提供了一个saturate()方法来达成这一点,当saturate方法传入的参数为负数时,直接返回0。

叉积(外积):

点积表示 的是一个值 而叉积表示一个向量 即垂直于这两个向量的向量
这里就用ab代表ab向量 因为那个符号不好打
axb 即a叉乘b 他的模值=|a|·|b|·sinθ
在这里插入图片描述在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值