問題タブ [terrain]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
storage - ゲーム地形データベース モデル
私はウェブ用のゲームを開発しています。このゲームのマップは最小で 2000km × 2000km になります。あるレベルの粒度で標高と地形タイプをエンコードできるようにしたいと考えています。たとえば、100m X 100m です。
2000km x 2000km のマップの場合、この情報を 100m 2のバケットに格納すると、20000 x 20000 要素、つまりデータベース内の合計 4 億レコードになります。
この種の情報を保存する他の方法はありますか?
詳しくは
マップ自体が完全に表示されることはありません。ユニットはターン制でマップ上を移動し、プレイヤーはユニットの位置や地域の様子についてフィードバックを受けます。地形によって、速度と移動の禁止が決まります。
マップはゲームに使用され、必ずしもグラフィックや表示の目的で使用されるわけではないと言いたいのだと思います。
opengl - 3D地面にブレンドされた複数のテクスチャ画像
コンピュータゲームはどのように彼らの立場を表現しますか?ジオメトリにハイトマップを使用しますが(後で最適化します)、たとえば、地面を「ペイント」するのに最適なテクニックは何でしょうか。ほとんどの場所に草が生え、あちこちに土の道があり、町の中に砂利があり、各タイプの材料の間をスムーズに移動します。
巨大なプリベークされたテクスチャを使用するだけですか?既存のテクスチャを並べて表示できる場合、これは非常に非効率に思えます。では、既存のテクスチャごとに巨大なアルファマップを使用しますか?理論的にはそれは私には大丈夫に聞こえますが、実際にそれを行うにはどうすればよいですか、そしてその結果はどうなりますか?私は本当にどこから始めればいいのかわからないし、私のグーグル検索はあまり効果的ではない。
テクスチャをグリッドに「スナップ」する必要はありません(つまり、スペース(0,0)は草、スペース(0,2)は土、スペース(0,1)は草-土の遷移)。もっと説得力のあるように、任意にペイントできるようにしたいと思います。もちろん、それは簡単な方法ですが、グラフィックスの品質と「リアリズム」の犠牲が多すぎます。
私は主にここで理論とオプションを探しています。私はOpenGLを使用しているので、OpenGLのやり方や、聞いたことのない機能についてのヒントを提供できれば、それは素晴らしいことです。
明確にするために、忘却は私が探しているものについての良い参考資料です。地面のジオメトリ(高さマップ、静的3Dモデルなど)がどのようになっているのかはわかりませんが、私が話しているように、それらの地形にはさまざまな地面の種類とスムーズな遷移があります。これが画像の例です。石畳が非現実的ですがスムーズに草に溶け込んでいることに注目してください:http ://www.elitistsnob.com/images/Oblivion%202006-05-21%2008-38-25-15.jpg
また、ゲームプログラミングの宝石の本の1つでこれについて読んだと思いますが、当時はあまり注意を払っていなかったため、夏になったため、大学の図書館にアクセスして確認することができません。現在目次を探しており、見つけたら編集しますが、8月中旬まで読めません。
編集:ああ、ゲームプログラミングジェムズ7には「屋外地形レンダリングのための大きなテクスチャのマッピング」というタイトルの第5.8章があります。これはまさに私が必要としているように聞こえますが、私のUのライブラリにはその本さえありません!他のゲームプログラミングの宝石の本では、このようなものを正確に見つけることができませんでしたが、いくつかの地形幾何学の記事がありました。
2d - リアルな2D地形図の生成
リアルな2D地形図を生成できるアルゴリズムを探しています。現実的とは、人がそのような地図を、人工的に作成されたものではなく、「通常の」地形図と見なすことを意味します。写実的な地図を作成したくありません。地理アトラスで表示できる地図に似たものです。
これまでのところ、高さマップにパーリンノイズを使用しており、次に湖、川、山、沼地などを追加しています。あなたはそれが下の写真でどのように見えるかを見るかもしれません:
地形図http://www.freeimagehosting.net/uploads/1f1e9372bf.png
私はそれに満足していません。それは現実的ではありませんが、私は自分で何かより良いものを理解することはできません。時間は問題ではないので、アルゴリズムは大量の計算になる可能性があります。
御時間ありがとうございます。
編集後:
役立つ記事が1つ見つかったと思います:http: //portal.acm.org/citation.cfm? id = 1255047.1255077
ただし、無料では入手できないので、まだ答えやアイデアを探しています。
map - 無料と有料の地形データはどこで入手できますか?
地形データはどこで入手できますか? 無料で入手できる解像度データは?データを購入すると、どのような解像度のデータを取得できますか? そのデータはいくらですか?無料の地形データがあるサイトを見つけました。解像度は 30m x 30m です。それは無料で見つけることができる最高のものですか?
c++ - OpenGL:テクスチャ座標がリアルタイムで変化する地形に最適なレンダリング方法?
地形テクスチャ用にリアルタイムでレンダリングされたアニメーションをレンダリングする必要があります。これを行うための最良のレンダリング方法は何ですか?アニメーションは、テクスチャの座標を調整することによって行われます。
すべてのアニメーションフレームのテクスチャ座標用に事前に作成された配列がありますが、openglにすべてのアニメーションフレームまたはsmthingを通知した場合、アニメーションのレンダリングを高速化する方法はありますか?
また、地形ポリゴンの位置はほぼリアルタイムで変更される可能性があります...これは高さマップではありません。地形の一部だけをforループなどで一度にレンダリングしたいと思います。
現在、ディスプレイリストを使用していて、それらの更新は非常に遅いです...しかし、それらをレンダリングすることは、私がこれまでに試した中で最も速いです。
terrain - 地形データ上のポイントの勾配を計算する方法 (デジタル標高マトリックスなど)
3D カーレース ゲームを実装したいのですが、地形上の任意の点の勾配の大きさと方向を概算する必要があります。
地形データ形式:
- heights[ ][ ]: float の 2D 配列 (メートル単位の高さを表す)
- unit: (i, j) - (i, j+1) 間および (i, j) - ( i+1, j) メートル
元:
たとえば、点 (x = 1.75 メートル、y = 2.25 メートル) での勾配の値と方向は?
あなたの補間アルゴリズムは何ですか?
algorithm - 優れた世界地図生成アルゴリズムを探しています
私は Civilization のようなゲームに取り組んでおり、地球のような世界地図を生成するための優れたアルゴリズムを探しています。私はいくつかの代替案を試しましたが、まだ真の勝者を見つけていません.
1 つのオプションは、パーリン ノイズを使用して高さマップを生成し、世界の約 30% が陸地になるレベルで水を追加することです。パーリン ノイズ (または同様のフラクタル ベースの手法) は地形に頻繁に使用され、かなり現実的ですが、結果として生じる大陸の数、サイズ、および位置を制御する方法はあまり提供されません。ゲームプレイの観点から持っています。
2 番目のオプションは、ランダムに配置された 1 タイルのシード (私はタイルのグリッドに取り組んでいます) から始めて、大陸に必要なサイズを決定し、各ターンが既存の大陸に水平または垂直に隣接するタイルを追加することです。希望のサイズに達しました。他の大陸についても繰り返します。この手法は、Civilization 4 で使用されるアルゴリズムの一部です。問題は、最初のいくつかの大陸を配置した後、他の大陸に囲まれた開始位置を選択できるため、新しい大陸に適合しないことです。また、大陸同士が近づきすぎて、大陸というより川のように見える結果になる傾向があります。
大陸の数と相対的なサイズを制御しながら、グリッドベースの地図上に現実的な大陸を生成するための優れたアルゴリズムを知っている人はいますか?