Vertex Color #2

交差判定からの派生で、ポリゴン上の座標からUV空間の座標を取得する方法です。

intersection_in_uv

ポリゴン上の座標をエッジのベクトルで考えれば、同じ比でUV空間の座標を求めることができます。クラメルの公式を使った交差判定法ならベクトルの割り合いであるu, vの値が得られるので、UV空間のエッジのベクトルにこの値を利用すれば目標の座標に到達します。

3次元空間

P = v0 + (v1 – v0) * u + (v2 – v0) * v

UV空間

P = v0 + (v1 – v0) * u + (v2 – v0) * v

と同じ式で表せますね。3次元ベクトルか2次元ベクトルかの違いだけです。

 

snap_texture_color

これを利用して、指定したベクトルで衝突したポリゴンからテクスチャーのカラーを採取して頂点カラーに適用するスクリプトを書いてみました。

この方法を使えば画像からポリゴンを生成・変形するといったことも出来そうですね。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中