百人计划学习 图形 1.2.1 向量基础

百人计划学习 图形 1.2.1 向量基础

这是个人学习笔记,有错欢迎指出

基本定义

向量:有大小方向有向线段
没有位置,只有大小和方向
箭头是向量的结束,尾是向量的开始
表示:三维(ax,ay,az) 二维(ax,ay)

  • 向量和标量的区别:

向量:有大小和方向的有向线段
标量:只有大小,没有方向的量

  • 点:

点:有位置,没有实际的大小和方向
向量:无位置,有实际的大小和方向
注意:可以将点看做是从原点出发的向量

  • 零向量:

唯一大小为零的向量,唯一一个没有方向的量,不是一个点
表示的是没有位移

  • 标准化向量:

单位向量,大小为1的向量,仅需知道方向而不关心其大小如法线
运算法则:将向量除以它的大小
标准向量 ( − 12 , 5 ) = ( − 12 / 13 , 5 / 13 ) (-12,5) =(-12/13,5/13) (12,5)=(12/13,5/13)

计算

几何解释:向量乘以标量的效果是以标量的大小缩放向量的长度,负值则方向相反

向量的模长:勾股定理 ( − 12 , 5 ) = ( − 12 ) 2 + 5 2 = 13 (-12,5) =\sqrt{(-12)^2 + 5^2} = 13 (12,5)=(12)2+52 =13

距离公式

l e n ( a , b ) = ( a x − b x ) 2 + ( a y − b y ) 2 len(a,b) = \sqrt{(ax-bx)^2 + (ay-by)^2} len(a,b)=(axbx)2+(ayby)2

在这里插入图片描述

点积

·几何解释:点乘结果描述了两个向量的“相似”程度,点乘结果越大,夹角角度越小,两个向量越接近。
计算公式 a ⋅ b = a x ∗ b x + a y ∗ b y a\cdot b =a_{x}*b_{x} +a_{y}*b_{y} ab=axbx+ayby
点积满足交换律
a ⋅ b = ∣ a ∣ ∣ b ∣ c o s θ a\cdot b =|a||b|cos\theta ab=abcosθ

在这里插入图片描述

投影的解释

这部分不好理解,直接按高中所学理解即可
在这里插入图片描述

叉积

仅用于3D向量,不满足交换律,满足逆交换律

在这里插入图片描述

左手坐标系判断方向

在这里插入图片描述

兰伯特光照模型

在这里插入图片描述

使用shader graph实现
在这里插入图片描述

作业

使用shader graph实现兰伯特效果和半兰伯特效果

在这里插入图片描述

实现步骤

1.在场景中创建两个球体,创建如下材质
在这里插入图片描述
2.Lambert连连看

  • 创建custom funtion,获取Main Light,与vector1(-1)相乘得到光源反方向
    在这里插入图片描述
  • 创建normal vector,获取物体表面的法向量,negate归一化
    在这里插入图片描述
  • 上述得到的结果,进行点积,再clamp得到0-1之间的值在这里插入图片描述
半兰伯特

将兰伯特点积后的结果*0.5+0.5即可

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

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值