2017-01-15 27 views
0

私は、Google Earthと同様のDirectXを使って仮想地球儀を作成しています。今のところ、私はテッセレーションを完了し、成功した球全体の包まれたテクスチャでテストしました。私は緯度と経度(90lat、-180lon = 0,0と-90lat、180lon = 1,1)に対応するテクスチャ座標を書いています。DirectX球にテクスチャをマッピングするには?

このプロジェクトでは、球面上にいくつかの画像タイルを重ねる必要があります。例えば、90度90度に及ぶ8つの画像。これらのタイルは動的に更新される可能性があります(タイルは、前後に追加または削除される可能性があります)。私はレンダリングターゲットビューを使用し、それに直接タイルを描画することを考えましたが、より良い方法があると確信しています。

どうすればいいですか?特定のテクスチャ座標空間にのみテクスチャを設定する方法はありますか?私。 (0,0)から(0.25,0.5)

答えて

0

3つのストレートフォワード・ソリューションがあります。

  1. あなたはタイルで覆われた球体の一部と一致するジオメトリを作成し、各描画呼び出しの前に、正しいテクスチャを設定し、その後それらを描く(タイルが簡単にレイアウトされている場合、あなたはまた、生成することができますすることができますインスタンシングと1回のドローコールを使用したこのジオメトリ)。
  2. テクスチャ座標を評価し、変換されたテクスチャ座標を使用して適切なテクスチャを選択するピクセルシェーダを記述できます。
  3. すべてのテクスチャを大きなテクスチャにレンダリングし、それを使って球をレンダリングします。タイルが変更されるたびに、大きなテクスチャをレンダーターゲットとしてバインドし、その上に新しいタイルを描画します。
関連する問題