CG数学 ベクトル


こんにちは篠島です。CGを使うにあたって、特にエフェクト等を作る時にベクトルは非常に強力なツールです。学校でベクトルについて勉強したと思いますが、忘れた人や、CGでどうやって使われるのかわからない人の為にちょっと簡単に説明してみようと思います。

a

 

今回のサンプルファイルです。VEXにより計算をしていますが、VEXコードがわからない方のためにVOPネットワークも用意しました。
vector.zip

ベクトルは向きと大きさを表したもので、英語で書くとVectorです。ベクトルの位置は関係ありません。向きと大きさが同じならばそのベクトルは等しいです。

1

ベクトルに -1 を掛けたて向きを逆にしたのが逆ベクトルで、その名の通り元のベクトルと逆の方向を向いています。方向が逆なだけで、大きさは同じです。

5

 

Houdiniの例で言うならば、VelocityやForceはベクトルですね。Positionはベクトルの始点を原点に置いて表した物です。なのでオブジェクトを親子付すると、Positionのベクトルの位置の始点が変わるという事です。実感ないかもしれませんが色情報もベクトルです。黒(0,0,0)に始点においたベクトルと考えると分かりやすいかと思います。

2

 

ベクトルの加算は、A+Bだとすると、Bベクトルの始点をAベクトル終点において、Aの始点からBの終点までのベクトルが加算の結果のベクトルです。B+Aの結果も同様になります。Houdiniで例えると、PositionにVelocityを足したりするのがこのケースです。

3

 

ベクトルの減算は A-B ベクトルがあるとすると、Bベクトルを逆にして足し算します。逆にしたBベクトルは下のように移動しても結果として得られるベクトルは変わりません。Houdiniで例えると2点間のポイントあるポイントからもう一方のポイントまでのベクトルが得られます。

4

 

 

これらを踏まえてHoudiniで例えると、下のノーマルは全て同じ方向で同じ大きさなので、全てが同じベクトルです。

6

ベクトルの減算は非常に役に立ちます。例えばSphereの全ポイントから、ある一点のポイントまでのベクトルを簡単に計算できます。

a

この減算によって得られたベクトルが何に使えるか? それは人それぞれです。例えば、このベクトルの方向にパーティクルを飛ばしたり、他にも無限大の可能性を秘めています。

b