私は3Dでタイル状の地形をXNAで作成しようとしています。
(RiemersとAllens)のチュートリアルを確認しました。 Allensのチュートリアルでは達成しようとしている正確な結果が得られました。
しかし、私はパフォーマンスについてはわかりません - 彼は
すべての地形を描画し、ピクセルシェーダで処理するように単一の四辺形を使用しているらしい - 全体の地形はそれぞれ
フレーム。
現在、私は各タイル(Example)の四辺形を描いています - それは
の可視タイルだけを描くことができますが、さらに多くの頂点が各
フレームで処理される必要があり、多くの "DrawIndexedPrimitives" 。
私はそれを正しくやっていますか?タイル張りの地形を改善する方法はありますか?
ありがとうございます。3dタイル状の地形
2
A
答えて
3
地形の複雑さとサイズによって異なります。通常、複数のクワッド/タイルを持つテレインタイル(たとえば、タイルは4096個の三角形で構成できます)を作成し、必要なテレインを得るために頂点を移動します。それでも、各タイルはインデックス付きのプリミティブですが、1回の描画呼び出しでは多くの三角形が生成され、地形の大部分が生成されます。このアイデアをさらに踏まえれば、遠くのタイルを大きくすることができます(詳細については、四分木/クリップマップベースの地形のアプローチを参照してください:http://twitpic.com/89y5kn)。
また、頂点シェーダで移動できる場合は、インスタンス化を使用してドローコールの量をさらに減らすことができます。インスタンスごとに、あなたはあなたのハイフィールドとワールドスペースの位置にUV座標を渡してから、再び高解像度のタイルをレンダリングしますが、今度は地形全体に対して一回の描画呼び出しで終了するかもしれません。
小さなゲームでは、高解像度のタイル(わずか65kの三角形など)を生成し、それを円錐形で切り取りたい場合があります。それはあなたに大きな地形を簡単に与え、まだ管理可能です。しかし、これは間違いなくあまりにもスケールしません:)あなたのニーズによって異なります。
テクスチャタイルの場合、低解像度のインデックステクスチャを使用して、ピクセルごとにアトラスを参照するか、またはインデックスを頂点バッファに格納して補間することができます(これは非常に一般的です)。Store 4 weights頂点あたり4つの異なるテクスチャをルックアップするために使用します)。
関連する問題
- 1. numpyの形状とタイル
- 2. DirectX9 C++でタイル張りの3D地形をテクスチャ加工する方法は?
- 3. タイル張りテンソルのテンソルフロー形状
- 4. 地形上の3D Unityオブジェクトの配置
- 5. KML地域の形状
- 6. 3D形状解析用ツール
- 7. Unity 3Dの手続き型地形プログラミング
- 8. 地図タイル(リーフレット)
- 9. タイル2d地図ガイド
- 10. 3Dスキャンインテリアルームと正方形の画像を持つ地図
- 11. 3D XMLタイル情報の解析
- 12. Unity3Dの新機能。私は(ゲームオブジェクト> 3Dオブジェクト>地形)OOTB地形を有する
- 13. データ構造2D/3Dタイル配列C++
- 14. NV12 64x32タイル形式のメモリレイアウト?
- 15. Pythonでの3Dカーブの形状保持3次補間
- 16. 読書/処理で3D形状のピクセルを変更
- 17. 変更ユニティ地形解像度地形
- 18. 3Dキューブから渦巻き形状を作成する - javafx
- 19. メモリゲームのタイルのホバー状態JavaScriptコード
- 20. numpy 3d配列形状(326,25,16)と1d配列形状(326)を結合する方法
- 21. 地形の地形上の凹面の移動
- 22. XNAランダムタイル地形
- 23. 形状データフレームの形状の相違点
- 24. 3Dフィジックス/変形アニメーションツール
- 25. タイル張りの平たい六角形
- 26. 3D三角形内の線形補間
- 27. AndroidのSurfaceViewの3D変形?
- 28. XNA 4 2Dタイル状スプライト - 奇妙な線
- 29. Googleの3Dファイル形式VR
- 30. シームレスでタイル付きの3Dノイズを生成する