《Shader 入门到精要》 Reading Note - Chapter 4

三维坐标轴的三个坐标轴被称为该坐标系的基矢量(basis vector)
三个坐标轴相互垂直,长度为1,这样的基矢量被称为标准正交基(orthogonal basis)
旋向性(handedness)

在模型空间和世界空间中 Unity使用的是左手坐标系/在观察空间中,Unity使用的是右手坐标系

矢量的存在意义是为了和标量区分开来
矢量是指n维空间中一种包含了膜和方向的有向线段 (矢量的膜表示的是矢量的长度)
标量只有膜没有方向

矢量和标量可以进行乘除法运算

几何意义上: 矢量加法的 三角形定则

图形学中的矢量通
常用于描述位置偏移(简称位移)

单位矢量(unit vector)指的是膜为1 的矢量 — 也被称为被归一化的矢量(normalized vector)

把非零矢量转成单位矢量的过程称为归一化。 矢量的膜除以矢量得到 单位矢量

矢量的承法:
点积(dot product)也称为内积(inner product)和叉积(cross product)也被称为外积(outer product)
点积:a·b 是把a的矢量与b的矢量对应分量相乘再取和 —— 结果是一个标量

点积的几何意义很重要,其中一个重要意义就是投影(projection)
一个单位矢量a 和另一个长度不限的矢量b,现在希望得到b在平行于a的一条直线上的投影 就可以使用点击a·b
任何两个矢量的点积a·b等同于b在a方向上的投影值,再乘以a的长度点积的性质:
1.点积可结合标量乘法

2.点积可结合矢量加法和减法

3.一个矢量和本身进行点积,是该矢量的膜的平方

4.两个矢量的点积可以 表示为两个矢量的膜想乘,再乘以它们之间夹角的余弦值

5.矢量的叉积 cross product 结果是一个矢量

叉积满足负交换律 a X b = -(b X a)

矢量 · 矢量 = 对应的分量相乘 相加。= 标量
矢量 X 矢量 = 是一个矢量 a b c
d e f 对应顺序相乘 得到一个是矢量

方块矩阵 简称方阵是指哪些行和列数目相等的矩阵
对角矩阵 如果一个矩阵除了对角元素外所有元素都为0 则称为对角矩阵
单位矩阵 MI = IM = M
转制矩阵 转制的转制等于原来的矩阵
一个矩阵可逆的前提是他是个方阵,
正交矩阵 一个方阵M和它转制矩阵的乘积是单位矩阵的话,就是说这个矩阵是正交的
如果是正交矩阵,那么他的转制矩阵也是正交 矩阵
如果一个矩阵是正交的,他的转制矩阵和逆矩阵是相同的

要理解shader入门精要,首先需要了解shader是指令代码,需要关联材质才能赋予游戏对象以特定的效果。材质按照关联的shader的规则,处理贴图等输入信息,达到特定的画面效果。 在Unity中,有几种类型的shader可供选择。一种是表面着色器(Surface Shader),它是对顶点/片断着色器的封装,更符合人类的思维模式,可以以极少的代码来实现不同的光照模型和不同平台下的需求。在表面着色器的开发中,我们直接在Subshader层次上编写代码,系统会将代码编译成适当的Pass。而顶点/片断着色器是更基础的shader类型,能够实现更多的效果,但表面着色器不一定能实现这些效果。还有一种被淘汰的固定管线着色器(Fixed Function Shaders),它在硬件上执行基本的命令,速度很快,但功能有限,不再推荐使用。 不同图形API都有各自的shader语言。在DirectX中,顶点shader叫做Vertex Shader,像素shader叫做Pixel Shader。而在OpenGL中,顶点shader也叫做Vertex Shader,但像素shader叫做Fragment Shader或者片断Shader。这些shader语言有不同的语法和特性,需要根据使用的图形API选择适当的语言来编写shader。 总结起来,要入门shader,首先需要了解shader是指令代码,需要关联材质才能实现效果。在Unity中,可以选择使用表面着色器、顶点/片断着色器或固定管线着色器来实现不同的效果。此外,不同图形API有不同的shader语言,需要根据使用的API选择合适的语言来编写shader
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值