3192人加入学习
(17人评价)
Unity Shader入门(Unity2018.3)

完成与2019-03-31

价格 ¥ 380.00
该课程属于 Unity - A计划(一年有效期) 请加入后再学习

矩阵的转置及标量乘法

--------------------------

矩阵的转置,更换行和列

e.g.

┌ a b c ┐ T             ┌ a d h ┐ 

│ d e g │      >>      │ b e g │ 

└ h k o ┘                └ c g o ┘  

 

e.g.2

                       ┌ x ┐  

[ x y z ] T   =   │ y │ 

                       └ z ┘  

e.g.3

┌ x ┐ T

│ y │     =     [ x y z ] 

└ z ┘  

 

对于对角矩阵 MT = M

 

==============

标量与矩阵的乘法

        ┌ m11  m12  m13 ┐ 

M =  │ m21  m22  m23 │ 

        └ m31  m32  m33 ┘ 

 

          ┌ Km11  Km12  Km13 ┐ 

KM =  │ Km21  Km22  Km23 │ 

          └ Km31  Km32  Km33 ┘ 

[展开全文]

矩阵与向量

--------------------------

列向量:n x 1 矩阵

行向量:1 x n 矩阵

注意⚠️:向量与矩阵进行运算时,需要注意是行向量还是列向量

[展开全文]

方阵-对角矩阵-单位矩阵

--------------------------

方阵:在矩阵中,行=列

e.g. 

      ┌ 8  3  2 ┐

      │ 8  9  6 │

      └ 2  9  5 ┘ 

 

对角矩阵: 在方阵中如果对角线以外点数都是零

e.g. 

      ┌ 8  0  0 ┐

      │ 0  9  0 │

      └ 0  0  5 ┘ 

单位矩阵: 在对角矩阵中,如果对角线全为1

e.g. 

      ┌ 1  0  0 ┐

      │ 0  1  0 │

      └ 0  0  1 ┘ 

[展开全文]

三维向量叉乘

--------------------------

Vector3D a,b;

数值:|a x b| = |a| |b| Sinθ

方向:坐标系不同,判断不同

意义:判断三角面片

 

|a x b| = (a.y b.z - a.z b.y, a.z b.x - a.x b.z, a.x b.y - a.y b.x);

 

[展开全文]

三维向量点乘

--------------------------

Vector3D a(x_1,y_1,z_1),b(x_1,y_1,z_1);

a · b = x_1 x_2 + y_1 y_2 + z_1 z_2;

 

a · b = |a| |b| Cosθ = √(x_1^2 y_1^2 z_1^2) √(x_2^2 y_2^2 z_2^2) Cosθ;

 

θ = arcCos(ab);

 

a·b > 0 向量夹角为锐角;

a·b = 0 向量夹角为直角;

a·b < 0 向量夹角为钝角;

 

 

[展开全文]

三维向量基本运算

--------------------------

Vector3D a(x,y,z);

|a| = √(x^2 + y^2 + z^2);

λa = (λx_1, λy_1, λz_1);

[展开全文]

二维坐标系旋转和平移

--------------------------

原坐标系o,点p(x,y),与x轴夹角θ

目标坐标系 o',点(x',y'), o - o' = (a,b)

 

p' = (xCosθ + ySinθ + a, yCosθ - xSinθ + b)

 

向量计算必须在同一坐标系

[展开全文]

二维坐标系平移

--------------------------

已知坐标系o和一在其上的点p(x,y),和另一坐标系o',用p'(x',y')来表示点p在o'上点坐标。

o' - o  = (a,b);

x' = x + a;

y' = y + b;

[展开全文]

二维坐标系旋转

--------------------------

已知 x,y 旋转坐标系得到 x',y'

 x' = xCosθ + ySinθ;

 y' = yCosθ - xSinθ;

 θ 为正:逆时针旋转

 θ 为负:顺时针旋转

[展开全文]

二维单位向量

--------------------------

单位向量是指模等于1的向量

零向量是任意方向的向量

 

[展开全文]

二维向量叉乘

--------------------------

叉乘 = 向量积 = 外积 = 叉积 => 向量

 

Vector2D a, b, c;

模长:|c| = |a · b| = |a| |b| Sinθ //θ为 a 与 b的夹角

方向:c 方向垂直于a, b所在的平面 (右手定则来确定方向)

 

[展开全文]

二维向量点乘

--------------------------

Vector2D a,b;

a · b = x_1 x_2 + y_1 y_2 = 标量(数值) 

==================

Vector2D a,b;

c^2 = a^2 + b^2 - 2 |a| |b| Cosθ

===================

Vector2D a, b;

a·b > 0 向量夹角为锐角

a·b = 0 向量夹角为直角

a·b < 0 向量夹角为钝角

[展开全文]

向任意向量投影的投影矩阵

1-Nx*Nx    -Ny*Nx

-Nx*Ny       1-Ny*Ny

向任意平面投影的3D投影矩阵

1-Nx*Nx        -Ny*Nx        -Nz*Nx

-Nx*Ny          1-Ny*Ny      -Nz*Ny

-Nx*Nz          -Ny*Nz         1-Nz*Nz

 

 

[展开全文]

三维任意轴N缩放K的缩放矩阵:

(K-1)*Nx*Nx+1  (k-1)*Ny*Nx     (K-1)*Nz*Nx

(K-1)*Nx*Ny     (K-1)*Ny*Ny+1  (K-1)*Nz*Ny

(K-1)*Nx*Nz    (K-1)*Ny*NZ     (K-1)*Nz*Nz+1

[展开全文]

矩阵相乘条件:r-n  * n-p = r-p

[展开全文]

坐标系平移(a,b)

x1 = x+a

y1 = y+b

[展开全文]

Pass 通道

Name = “Pass通道名称”

Unity Pass 中的Tags特有设置:

"LightMode” = "ForwardBase"//定义该Pass通道在Unity渲染流水的角色

“RequireOptions”="SoftVegetation"//满足某些条件时才进行渲染

 

Fallback 定义在SubShader只外

Fallback  “路径”/ Off

[展开全文]

Render设置

Cull off/back/front  //选择渲染面

ZTest Always/Less/Grater/LEqual/GEqual/Equal/NotEqual //深度测试

 

Zwrite off/on //深度写入

Blend SrcFactor DstFactor //混合

LOD 100

 

[展开全文]

“Queue”="Transparent" //渲染顺序

“RenderType”="Opaque"//着色器替换

“DisableBatching” = "True" //是否进行合批

“ForceNoShadowCasting”="True" //是否投射阴影

“IgnoreProjector”= "True” //是否受Projector影响,通常用于透明物体

“CanUseSpriteAltas”=“False"//是否用于图片的shader,通常用于UI

"PreviewType" = "Plane" //Shader 面板预览类型

[展开全文]

授课教师

课程特色

下载资料(1)
视频(184)

学员动态