콘텐츠로 건너뛰기

VECTOR REJECTION DERIVATION

VECTOR REJECTION DERIVATION

Written by JP.Lee
心动的 Technical Art team leader.

VECTOR REJECTION

制作 Vector Rejection 函数。

Shader forge 里有 Vector rejection 内置函数。

但是 Amplify shader editor 里没有,所以要用 Custom expression 制作 my Vector rejection function 来使用。https://en.wikipedia.org/wiki/Vector_projection​en.wikipedia.org

preview

Vector projection formula (向量投影公式)

2D vector 投影公式。

Vector投影是两个Vector中的一个投影(投射)到另一Vector上。

这里说的投影是什么意思呢?

从Vector的观点来看,是把一个Vector移到另一个Vector表现出来。

可以简单的比喻成影子。在外面我们可以看到阳光照射在我们身上产生的影子。

如果我们的身体是Vector a 地面是Vector b,影子就是投影到b上的a。

假设阳光跟地面是直角。(通常叫直交投影)

Vector Rejection a2 是从Vector a 减去 a1 的值。

Vector projection formula

Vector有尺寸 (Magnitude) 跟方向 (Direction) 。

先找出尺寸跟方向后把两个合起来就会成为projection vector 。

把A 和 B形成的角看成 Theta(θ) , projection vector 的尺寸是 Acosθ 。用内积定义把 cosθ 重新写出来如下。

再找出方向就可以了,方向也就是 B 的方向,所以只要得出 B 的方向就可以了。

现在知道了尺寸和方向,把两个相乘就可以了。

把 Bvector除以 Bvector的尺寸就可以只得出 B Vector的方向。

Vector Rejection

2D vector 投影公式。

之前我们把 A Vector直交投影(e)到 BVector 上面得出了 A ´ 。

现在可以得出直交的 e ,从 A 里减掉 A ´ 就可以得出 e 。

最终 Vector Rejection e 就是从 Vector A 减去 A ´ 的值。

根据上面的原理制作code和node function 。

For China user use to below link

https://www.zhihu.com/zvideo/1266867844329164800

end of content.

태그:

댓글 남기기

%d 블로거가 이것을 좋아합니다: