2

OpenGLで大きな地形を作成する方法をさまよっていました。私の最初のアイデアは、ブレンダーを使用して平面を作成し、それを分割し、地形を作成して .obj としてエクスポートすることでした。ブレンダーを見た後、これは可能だと思いましたが、非常に大きな地形に必要な精度をサポートするために、ヘキサコア + 8GB RAM では細分割を維持できないことにすぐに気付きました。

だから私の質問は、これを行うための最良の方法は何ですか?

  • Cinema4d のような別の 3D レンダリング ソフトウェアを試してみませんか?
  • ブレンダーで段階的に地形を作成し、後でまとめますか? (セグメント間の比率を維持するのに問題がある可能性があります)
  • 私が知らないいくつかの方法?

ランダム生成アルゴリズムを使用して大規模なランドスケープを作成できますが、ランダムなランドスケープは必要ありません。多くの詳細を含むカスタマイズされたランドスケープが必要です。(高さ、深さ、パス)

編集

私がすることは次のとおりです。

  • 3 つの異なるハイトマップを作成します (1. 洞窟の地面 (+おそらく壁の高さの半分)、2. 洞窟の天井の反転されたハイトマップ、3. 標準的なサーフェスのハイトマップ)
  • 3 つのハイトマップすべてを組み合わせる
  • それらをobjファイルまたは必要な形式で保存します
  • 3D編集ツールで微調整を行います(大きすぎて処理できない場合は、LODアルゴリズムを使用してアプリを作成し、小さなものを編集できるようにします)
  • 必要に応じて再度保存します(おそらく最適化を行います)
  • 幸せになる

Edit2 私が作成しているマップは非常に大きいため、Photoshop は 8 GB の RAM をすべて使用しているため、3 つの高さマップすべてを小さな部分に分割し、マップ上を移動するときにそれらをその場で組み立てる必要があります。

4

2 に答える 2

1

高さマップを作成したいだけだと思います。画像を大きくすればするほど、さらに引き伸ばすことができます。おそらく、継ぎ目を一致させれば、それをタイル化できますが、無限の地形が必要な場合は、地形を生成する努力をする価値があるでしょう。

高さマップを作成するには、各ピクセルが設定された高さを表す画像を作成します (実際には画像として表す必要はありませんが、非常に簡単に視覚化できます)。これはグレー スケールの色になります。次に、この値を目的の最大高さにスケーリングできます (精度は画像のビット深度によって決まります)。

OpenGL でこれを行う場合は、ポイントをクリックして特定のポイントまたは領域の高さを上げるインターフェイスを作成できます。

この画像を取得したら、X 座標と Y 座標が空間に設定され、画像から Z 座標が得られるため、レンダリングはそれほど難しくありません。

これには、洞窟や同様の機能が許可されないという欠点があります (ポイントに指定される高さは 1 つしかないため)。これらの機能が必要な場合は、メッシュまたは 2 番目の

于 2012-04-21T23:12:21.643 に答える
0

メモリに収まらないほど多くのデータを保存しようとしている場合は、そのほとんどをディスクに保存する必要があります。マップをセグメントに分割し、必要に応じてより近いセグメントをロードするのがテクニックです。多くのグループが四分木を介してマップ セグメントにアクセスします。これは通常、「近くの」部分に到達するために多くの移動を必要としません。

バリエーションには、長いビューのレンダリングに使用するためのより大きなマップのチャンクの低解像度バージョンの作成が含まれます。そのため、マップ全体の非常に低解像度のバージョン、ここの谷の中解像度バージョン、および高解像度バージョンを保持します。私が見ているこの木立のコピー。

それは複雑なものです。そのため、GTA:San Andreas や Oblivion まで、誰も実際にすべてをまとめたわけではありません。

于 2012-04-22T00:29:30.930 に答える