2010-12-23 5 views
1

私が取り組んでいる趣味の3Dゲームで、 "ユニット"の下の地面に "ターゲットリング"を描画しようとしています。基本的に私はユニットの下の地形の上に明るい赤色のパターンリングを投影したいと思います。direct3dを使ってターゲットリングを投影する

私は考えることができる唯一のアプローチはこれです -

  1. をもう一度世界を描き、一度通常の

  2. として世界を描きますが、私の 頂点シェーダに、私は世界xを持っています、y、z 頂点座標と ハイライトされたユニットの座標を渡すことができます - 私のプロジェクトのテクスチャ内でu、v座標を計算しますその 頂点には、その点が になるはずです。

    次に、ピクセルシェーダを使用してターゲットリングテクスチャからピクセルを選択し、それらを以前描画した世界にブレンドします。

私はそれが簡単であるべきであり、動作するはずと信じていますが、ターゲッティングリングが上に落下する可能性があるポリゴンを正確に決定するのは難しいように、私は二回全可視世界を描く必要とします。一度は通常のテクスチャリングされた地面のためにもう一度世界全体を2回描くのは大きなオーバーヘッドのように見えますが、再びターゲットリングを描くだけです。

私は行方不明の方が良いですか?

+0

最初のパスでこの種の計算を許可するのはピクセルシェーダーのポイントではありませんか? – TreDubZedd

+0

私は2つを1つのピクセルシェーダに組み合わせることができると思います。 – jcoder

答えて

1

Projective Texture Mappingはあなたの友人です。

+0

ありがとうございます。それは射影テクスチャマッピングがどのように機能するかです - ピクセルのx、y、z位置を取って、どのテクスチャピクセルがそれにマップされているか試してみてください。 – jcoder

+1

@ JohnB:プロジェクションの位置と角度を設定し、プロジェクションの途中にあるオブジェクトにテクスチャを投影するだけで動作します。もちろん、投影テクスチャを使ってオブジェクトを描画する場合は、それらにテクスチャを投影しますが、地形上にのみテクスチャを必要とする場合は、投影テクスチャを地形上で実行してください。その効果的でセットアップは非常に簡単です。 – Goz

関連する問題