タグ付けされた質問 「terrain」

場所の物理的な地理を説明するために使用されます。これには、フィーチャの標高、勾配、方向を含めることができます。


5
手続き的に生成された巨大な「荒野」の世界
ドワーフ要塞のようなゲームはご存知だと思います-大規模で手続き型に生成された荒野と土地。この非常に有用な記事から取られたこのようなもの。 しかし、これをもっと大規模にどのように適用できるのか疑問に思っていました。Minecraftの規模が思い浮かびます(これは地球の表面の8倍の大きさではありませんか?)。擬似無限、最良の用語は次のとおりだと思います。 この記事では、フラクタルパーリンノイズについて説明しています。私はそれに関する専門家ではありませんが、一般的なアイデアを得ることができます(それは、ランダムなピクセル値だけでなく、ある程度コヒーレントなランダムに生成されたノイズの一種です)。 リージョンXごとにサイズを定義し、リージョンをロードするタイプのものを追加し、1ビットのノイズでリージョンを生成できます。しかし、これは膨大な量の島になります。 もう一方の極端な例では、パーリンノイズの超巨大シートを実際に生成できるとは思いません。そして、それはただ一つの大きな島になると思います。 Perlinノイズ、または何らかのノイズが何らかの方法で答えになると確信しています。つまり、地図は本当に見栄えがいいです。そして、アスキーをタイルに置き換えて、見栄えの良いものを手に入れることができます。

6
Minecraft風のボクセルの世界を最適化するにはどうすればよいですか?
Minecraftの素晴らしい大きな世界は、クアッドコアと肉付きのグラフィックカードを使用しても、ナビゲートが非常に遅いことがわかりました。 Minecraftの遅さは次の原因によるものと思われます。 Java。空間分割とメモリ管理がネイティブC ++で高速であるため。 弱い世界分割。 私は両方の仮定で間違っている可能性があります。しかし、これは大きなボクセルの世界を管理する最良の方法について考えさせられました。それは、ブロックは、世界の任意の部分に存在することができる真の3D世界は、であるように、それは大きな3Dアレイ基本的には[x][y][z]世界の各ブロックタイプを有する(すなわちBlockType.Empty = 0、BlockType.Dirt = 1等) このような世界をうまく機能させるには、次のことが必要だと思います。 さまざまなツリー(oct / kd / bsp)を使用して、すべてのキューブを分割します。三角形ごとではなくキューブごとにパーティション分割できるため、oct / kdの方が適しているようです。 ユーザーに近いブロックが背後のブロックを難読化し、それらをレンダリングすることを無意味にする可能性があるため、いくつかのアルゴリズムを使用して、現在どのブロックが見えるかを判断します。 ブロックオブジェクト自体を軽量にしておくと、ツリーにすばやく追加したり削除したりできます。 これに対する正しい答えはないと思いますが、このテーマに関する人々の意見を見てみたいと思います。 大きなボクセルベースの世界でパフォーマンスをどのように改善しますか?

3
手続き的に生成された地形における降雨+河川作成のアルゴリズム
私は最近、手続き的な地形でできることに魅了され、世界の構築を少し実験し始めました。さまざまなマップをメッシュ化することで作成されたバイオームを使用して、ドワーフ要塞のような世界を作りたいと思います。 最初のステップが完了しました。ダイアモンドスクエアアルゴリズムを使用して、素敵なhieghtmapを作成しました。次のステップでは、いくつかの水の機能を追加し、それらを雨によって多少現実的に生成します。マップの高いポイントから開始し、最下の隣接ポイントまで「ステップダウン」し、海面まで下がるにつれてプール/侵食するなど、いくつかの異なるアプローチについて読みました。 これに関する文書化されたアルゴリズムはありますか? どんなアドバイス/考えも好きです。

6
島の領域を手続き的に生成する
現在、次のような島があります。 そして、次のように手続き的に領域に分割します。 私が探しているのはどのアルゴリズムですか?下の写真のように、一貫性のある領域を作成する方法について提案がありますか。あなたの助けに感謝します。

2
レンダリングツリーのパフォーマンスへの影響をどのように減らすことができますか?
低ポリ様式のゲームを作っています。水がある地形があり、たくさんの木が欲しいです。現時点では、10,000本の木が大量に配置されています。各ツリーは200個以下の三角形で構成されているため、負担がかかりすぎません。 主な問題は、湖があり、湖が非常に大きいことです。湖の反対側には実際には木が見えません。特にそこを歩いていると木が突然現れたとき、それは本当にひどく見えます。 これを修正するには、湖の向こう側に十分な量の木が見えるように木の距離を長くする必要がありますが、パフォーマンスは40〜50 fpsに低下し、ゲームにはまだ他にほとんど何もありません。それが役立つ場合は、GTX 1080を使用しています。 ツリーを増やしてゲームをより速く実行するにはどうすればよいですか?

6
2Dゲームの滑らかな地形を生成する最も簡単な方法は何ですか?
「Moon Buggy」や「Route 960」などの2Dゲームで滑らかな地形を生成する最も簡単な方法は何ですか? stackoverflow.comで、ランダムな高さの配列を生成し、後でそれらをぼかすことについての回答を得ました。はい、大丈夫です。しかし、いくつかのポイントを与えて、滑らかな曲線を取得する方が良いでしょう。

4
3Dテレインエディターを構築するときの開始点 [閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Game Development Stack Exchangeで話題になるようにします。 4年前に閉鎖されました。 地形を上げ、下げ、滑らかにし、テクスチャを付けることができるシンプルなツールを(開始のために)探しています。 それで、そのような地形エディタを作成するために私が経験しなければならないことは何ですか? そして多分、主題に関して利用可能な貴重なリソースがありますか? はい、言及するのを忘れましたが、私は3D地形エディタに興味があることを。

6
3Dパーリンノイズ関数は、地形の生成にどのように使用されますか?
高さの値を生成するために2Dパーリンノイズ関数を使用して頭をラップできますが、3Dパーリンノイズ関数が使用される理由がわかりません。Notchのブログhttp://notch.tumblr.com/post/3746989361/terrain-generation-part-1で、彼はMinecraftでの地形生成に3Dパーリンノイズ関数を使用することについて言及しました。誰がそれがどのように行われ、なぜそれが役立つのかを知っていますか?x、y、およびzの値を渡す場合、それはすでに高さがあることを意味しませんか?


4
ボクセル地形を表すためにどのデータ構造を使用する必要がありますか?
ボクセルに関するウィキペディアのページによると、「[...]ボクセルの位置は、他のボクセルとの相対的な位置(つまり、単一のボリュメトリックイメージを構成するデータ構造内の位置)に基づいて推測されます。」 そのようなデータ構造をどのように実装する必要がありますか?私は八分木について考えていましたが、聞いたことがない何か他のものがあるかどうか疑問に思っています。

2
Age of Empires IIランダムマップのように感じるランダムマップを生成するにはどうすればよいですか?
Age of Empires IIがランダムマップを生成する方法(多様性、適切なバイオームトランジション、混chaを感じずにランダムに感じられるマップ)が好きですが、スタイルを再現するのに苦労しています。たとえば、Perlinノイズを使用しようとしましたが、すべてが均一すぎるか、そうでない場合はPerlin値->地形ヒューリスティックが敏感で壊れやすいため、さまざまなワールドタイプを作成できません。 AoE2マップタイプ「不明」が「100,000個のマップ」を宣伝し、シード番号の使用を示唆していることを覚えていますが、シード番号を使用して見た品種を作成する方法がわかりません。 AoE2ランダムマップのように感じるランダムマップを作成するには、どのアルゴリズムとヒューリスティックを使用できますか? より具体的に編集してください: 私の問題についてさらに考え、AoE2のランダムマップエンジンについて気に入っていることを研究しているとき、私の最大の問題は、地図上の水と植物の分布を管理することだと思います。私はそれを「意味のあるバイオーム遷移」と結びつけていることを知っていますが、それは別の問題です(ただし、Perlinノイズを引き続き使用すると解決が難しくなります)。 私は、AoE2のランダムマップをいくつか追加しました。これらのマップは、自分の努力が再現に失敗している、マッピングエンジンの好きな点を強調しています。すべてのスクリーンショットは、ランダムなマップタイプ「カスタム」->「不明」から取得されます。私は、群島のような特定の地域を使用するようにゲームに指示しませんでした。 さらに以下は、自分のマップエンジンからの画像です。各ピクセルは、1つのAoE2マップタイルに対応します。 私のプロジェクトの複雑な点の1つは、マップをAoE2マップよりも何倍も大きくしたいことです。したがって、私が使用するエンジンは、AoE2が使用するようなマップごとの狭いバイオームのセットではなく、各マップでバイオームの全範囲を作成できる必要があります。 Age of Empires IIマップ 内陸の湖とある種の川のようなものを特徴とする例があります。マップに散在する大量の水が含まれているのが好きですが、その水はまだいくらか濃縮されています-あなたの帝国を構築するために利用可能な土地の大きな帯があります。ゲーム全体を使って水辺の都市を計画する必要はありません。 ゲームが島を横断可能な沼地に接続するのに十分なほどスマートだった同様の例を次に示します。ノイズベースのアルゴリズムがそこに沼地を作成する方法を想像することはできません、それらの場所だけ。また、ゲームで土地がどのように作成されたかに注意してください。各プレイヤーは、最初からすべての土地を所有しています。土地のランダムなパッチを作成しませんでした。次に、各プレイヤーが開始するのにどれが最もひどいものでないかについて、ベストな推測をしました。 この地図は水も多用しますが、内陸の湖はあまり含まれていません。最初の画像と比較してください。AoE2が同じビルディングブロックを使用してまったく異なる地域を作成する方法が気に入っています。パーリンノイズを使用する私の試みはここで失敗しました-私は、土地の塊を萎縮させる広大な広大な海、または10,000の湖の土地を得ます。また、島と接続された大陸の両方を取得するのは難しいと感じました(北アメリカ/南アメリカを考えてください)。 この画像とその上の画像を比較してください。彼らは、地図の乾燥が水位に依存しないことを示しています。最初の画像は、ほとんど水がなく、森林と草が含まれている地図を特徴としています。2番目の画像には適度な量の水が含まれていますが、砂漠です。それが可能だと思います(あなたの世界にニューメキシコまたはサハラとコスタリカの両方があると考えてください)。 自分の地図 多くの場所で、マップを作成する良い方法は、それぞれ異なるデータの次元を表す複数レベルのPerlinノイズを重ねることです。一般的な推奨事項に従って、私はここでウィテッカーテーブルから地形タイプを選択して、標高と湿度を調整しました。 2つのperlinマップを取得し、それぞれの値を単純なを介して整数に量子化しif perlin_val < x { i=some_int } else if perlin_val < y...、(標高、水分)整数ペアを地形タイプのテーブルにマッピングしました(例:[1,0]-> tropical desert、[1,1 ]->草原)。このシステムには海洋が含まれていました-標高= 0の海洋が定義されています。 さまざまなバリエーションがあり、多くの点で実世界のように感じられますが、いくつかの問題があります。 まず、海の深さにパターンはありません。海岸近くの浅い水とさらに深い水が期待できますが、どこにどこにいるかについての韻や理由はありません 第二に、水はすべて海洋に集中しています。湖や川はありません。Perlinのノイズは、大陸の中央で突然低い値に落ちないからです。 各バイオームの量のバランスをとることは非常に困難です。私はこれを次のものに帰します。 パーリンノイズは正規分布に従うため、各次元マッピングの確率を調整する方法を推定することは困難です。 複数の次元のバランスを取ることは困難です-多分(2,3)が欲しいので、(n、3)を得る確率を上げます。さて、今私は(3,3)が多すぎて、すべてが間違っているように見えます。 滑らかなデータを得るのに十分なほどノイズをズームすると、Perlin値の完全なサンプルが得られませんでした。そのため、目の前のマップの分布を微調整し、新しいランダムマップをリロードして、非常に異なる結果を得ます。 私は、Perlin値の3番目のセットから水を作ることによって、川/湖の問題を解決しようとしました。バイナリの水/土地の決定。その後、上記のものをすべて土地に適用します。これにより、配水を非常に簡単に制御できるようになりますが(完全ではありませんが、より優れています)、意味をなさない多くのバイオーム遷移があるという問題が生じます。例えば、緑豊かな草原の真ん中の砂漠の不可解なパッチ、浜辺の雪など。また、上記の理由から、土地のバイオームの割合を制御することはまだ困難です。 上記の問題を見て、Perlinノイズを1次元にのみマッピングする単純なアルゴリズムを試しました。現在、0 =深海-> 1 =浅い海-> 2 …

1
「チャンクレベルの詳細」を分かりやすく説明する
つい最近、Unityでチャンクレベルの詳細システムを実装する意味を理解しようとしています。それぞれが高さマップを持つ4つのメッシュプレーンを生成しますが、現時点ではそれほど重要ではないと思います。このテクニックについて読んだ後、たくさんの質問があります。一度にすべてを尋ねるのが多すぎないことを願っていますが、このテクニックを理解してくれる人にとても感謝しています。 1:メッシュがチャンクに分割されることを、チャンクLODパイプラインのどのポイントで理解できない。これは最初のメッシュ生成中ですか、またはこれを行う別のアルゴリズムがあります。 2:チャンクLODデータの格納にQuadtreeデータ構造が使用されていることを理解しています。ポイントが少し欠落していると思いますが、quadtreeは各サブディビジョンレベルの頂点と三角形のデータを格納していますか? 3a:カメラ距離は通常どのように計算されますか。四分木について読むとき、軸に沿った境界ボックスが多く言及されます。この場合、各チャンクには、カメラまたはプレーヤーが近くにあることを検出するための衝突境界ボックスがありますか?またはこれを行うより良い方法はありますか?(多分レイキャスト?) 3b:チャンクはカメラ距離を自身で計算しますか? 4:各チャンクに同じ「解像度」がありますか。たとえば、最上位では、メッシュは32x32になり、各サブノードは32x32になります。以下の例:

2
2D手続き型ユニバースの生成
最初は宇宙全体が空白の平らな宇宙を作りたいです。 これは、視差スクロール星雲の背景画像によって表されます。 私がやりたいのは、惑星を宇宙の円盤状のオブジェクトとして表現することです。サイズはさまざまです。 ディスクの内側は陸地で構成され、外側は水の塊であり、その後は空気です。 たとえば、空気はさまざまなガスやさまざまな鉱物や資源の土地で構成されているため、これらのタイルを手続き的に作成する最善の方法は何でしょうか。 私の最初の考えは、テクスチャ画像を作成し、それらのテクスチャから円を打ち抜くことですが、問題はそれらのテクスチャが水平および垂直にラップする必要があることです。これを行うための完全な手続き型の方法はありますか?

1
タイルベースの2Dプラットフォーマーの地形生成
私は現在、Terrariaに似たタイルベースの2Dプラットフォーマーにいくつかの点で取り組んでいますが、地形の生成に苦労しています。基本的なことはいくつか済ませていますが、有用なものとしては出ていません。 Perlin Noiseのようないくつかの異なる手法を試してみて、Midpoint Displacementなどの他のいくつかについて読んでみましたが、どれが最適か、または異なる領域を生成するための異なる手法の組み合わせについてはわかりません。(地形の一般的な形状の場合は中点変位、洞窟の場合はパーリンノイズなど) Accidental Noise LibraryでC ++になっているにもかかわらず、どのようにレイヤー化できるかについての優れた説明を見つけました。また、C#から使用できるDLLにコンパイルするのに十分なC ++がわかりません。私はこれをC#でコピーしようとしましたが、2つの効果(一般的なベースの勾配、次に詳細なフラクタル)を一緒にマージする方法はわかりません。 現在、私はプラズマフラクタルを使用しており、結果は非常に多様です。たとえば、表面がほとんどない地形を生成したり、表面がまったくない地形を生成したりできます。 ただし、大丈夫なマップの例では、さらに改善することで改善されます。(黒は固体、白は空気): ひどい地図の例。(黒は固体、白は空気): 基本的に、私が求めているのは、地形を生成するためのより良い方法であるか、生成時間を可能な限り速くして、合理的な量の表面積があることを確認することです。または、偶然のノイズライブラリと同じ結果をC#で実現する方法もあります。 どんな例でも大歓迎です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.