2012年6月1日金曜日

パーティクルの衝突の超基礎 #TPJP

先に一言。この記事見たからって、外積が把握できるという内容ではございあせん。
外積の詳細は別のとこでお願いします~

今回記事にしたのは、自身が外積について一つ引っかかったからです。



box(v1)とロケット(v2)の方向を取得し、外積をつかってboxをかわすように、設定してみた。

それがこちら↓↓

v1 x v2





もし、v1、v2が平行ならば、ゼロベクトルになるはず。そうなるよう設定してみた。

だがなっていない↓↓

v1 x v2




デバックで値を確認してみた。

画像


法線のyに意図しない数値はいってる!!ゼロベクトルになっていない!!
もちろん、max上の回転値はall0です!
なのに法線がずれている。。

boxを新しく作り直してみた!!

画像

ゼロベクトルになるとこんな↓↓




では、どのタイミングで意図しない数値が入った??
一度boxを回転して、回転(0,0,0)と入力で戻すと駄目らしい。0ベクトルには戻れず、何かしら値が入っている。
なぜなら、maxちゃんの0.0って表示は小数点を第何位まで表示すると0になっていない>o<
0.00005213みたいな。。


まあ、結果boxを避けてほしいので0ベクトルにならず良いのだが、気持ち悪い。


んで、気になったのが、このような衝突をセットアップする際、万が一にも0ベクトルになる場合があると思うのですが、それを防ぐ対処法ってあるんですかね?なんとでもなるのかもしれませんが、ベターな方法があれば知りたいものです^^


2 件のコメント:

  1. ベクトルの長さが0だったら適当な値を入れてやるのがとりあえず楽な回避策ではないかと思います。TPだとdistanceオペレータ使うんでしたっけ。

    返信削除
  2. コメントありがとうございます!
    そうですね、長さの値をdistanceノードで取得し、0だった場合適当な値で回避するのが良いですね{%笑いwebry%}

    返信削除