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

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

1
流れるGPU計算水
私は土木工学のバックグラウンドを持ち、水理および水文解析を定期的に実行しています。彼らはそのようなことのために学位を売りますが、それは実際にロケット科学ではありません。私は最近、GPUの地形に水文および油圧プロセス全体を実装することを思いつきました。コンピューティングシェーダーを習ったのはごく最近のことなので、現在、並列GPUワークフローを設計するよりも、エンジニアリングの方が優れていることにこだわっています。 次の式を使用して、降雨イベント中に生成された水の量を計算できます。 Q (CF/S) = c * I (in/hr) * A (acres) 私は、最初の領域の「面積」の計算を超えて移動するのが困難です。 現在の実装の概要: 地形は、1ユニット間隔の頂点の規則的なグリッドです ハイトマップには、頂点ごとに1つのR32高さ値が含まれます 現在、私は4つの基本方向(対角線なし)のフローのみを許可しています Texture2D [int]を、既に分析した頂点のステンシルとして使用しています 現在のアルゴリズム: 地形ツールがアクティブで、現在はそうではないとき... 「ステンシル」をクリアします。 標高が最も低い地形全体をスキャンします。 その単一ポイントは、CS_Floodへの初期入力です。 CS_FloodはX軸パスを作成します。 各入力頂点は、X方向とX +方向の両方に最大2048回投影されます。 OOB座標で隣接する頂点を見つけると、この方向の地形のエッジが示されます。CurrentPointがBoundaryPointsバッファーに追加され、その方向の投影ループが終了します。これは簡単で、毎回うまく機能しました。 高さ> =現在の頂点の高さを持つ隣接する頂点は、ステンシルでマークされ、NextPassバッファーに追加されます。 高さ<現在の頂点の高さを持つ隣接する頂点は、リッジのピークを示し、投影ループを終了します。塗りつぶしの将来の反復があります、それの「裏」側まで、尾根のベースの周りに流れ、同じ尾根をもう一度検出します。 この目的のために、複数回検出されたピーク/リッジポイントはBoundaryPointにはなりません。 一度だけ検出されたピーク/リッジポイントはBoundaryPointsに追加され、その方向の投影ループは終了します。 CS_Floodは、X軸パスによって生成されたポイントを入力として使用して、同じコードでZ軸パスを作成します。 現在、CS_Floodは2つの方向を無期限に交互に継続します。最終的に、CS_Floodが完了し、NextPassバッファーが空になるたびに、ループ全体を終了します。 理想的には、その時点で、BoundaryPointsには、自然の排水分割で発生する各頂点が含まれます。境界内に着弾した水滴は、最終的に同じ低地点に流れます。水滴が着地すると、境界は「どこか他の場所」に移動します。 次に: ステンシルをクリアせずに、地形を再スキャンして、ステンシルのない最も低い頂点を探します。 CS_Floodを繰り返します。 ステンシルがいっぱいになるまで(または同様の)を繰り返します。 3Dはこれらの色を認識するのが困難です。これは、積分高度で等高線を示します :(エッジ近くのバームに囲まれた穴) 頂点を越えて排出する約10のユニークな方法があります。それぞれにユニークな色を与えます:( 目に見える円形のツールマーク、「リッジ」がきれいに表示されます) これは、CS_Flood、境界、またはそれ以外で生成されたすべてのポイントをPOINTLISTとして表示します。 アルゴリズムは常に ほとんど機能します。時には、それも正しく動作します。その他の場合、アルゴリズムは正しい形状に明確に含まれていますが、無期限にポイントを出力し続けます。3番目のスクリーンショットに見られるように、時々混乱します。私が見落としていた別の状況/要因がなければなりません。私の見落としや、問題を攻撃するためのより簡単な方法および/またはよりエレガントな方法の提案を見つけるのに役立つことを感謝します。 MissingPoint!検出されたすべての新しいBoundaryPointをNextPassバッファーに追加するアルゴリズムを帯域支援することで含めることができます。次のパスでは、そのバンドエイドによって生成されたポイントの99%がわずかなGPU時間を浪費し、どこにも行けず何もしないと判断します。最初のパスでは、LowestPointを他のNextPassポイントと一緒に送信することも、この特定のシナリオを処理します。 私はそれがもっともらしいことを知っています、そして、十分な時間を与えられれば、私が望むことをするのに十分それをバンドエイドすることができます。できれば、より良く、よりスマートに、より速くそれをしたいのですが、まだ十分な経験がありません。

2
ハイトマップ、ボクセル、ポリゴン(ジオメトリ)地形
ハイトマップ、ボクセル、およびポリゴン(ジオメトリ)テレインに関連して: これら3つすべての主な違いは何ですか? ボクセルで「滑らかな」地形を形成できますか、たとえば、ボクセルで滑らかな山を得ることができますか、またはボクセルは立方体に制限されていますか? パフォーマンスの面では、世界2000x2000単位で、ハイトマップテレイン、ボクセルテレイン、またはポリゴンベースのジオメトリテレインはどれくらい高速になりますか?(すべての可能性のレンダリングのために行われた「合理的な」パフォーマンスの向上/最適化があると仮定します) 地形の作成に使用される他の技術はありますか? 各タイプを表す良いタイトルはありますか? PSポリゴンベースの地形は、角張ったものではなく、完全にトレースする必要があります。

2
背景に木々が輝いているのはなぜですか?
現在、私は暗闇の中で森のシーンを作成しており、木々は遠く離れて輝いていますが、近くに行くと元気です。「Nature / Tree Soft Occlusion [bark / leaves]」に設定されたシェーダーを持っていますが、それらはまだ遠く離れた場所で奇妙にレンダリングされていますが、近くでは問題ありません。 ここで言ったように、「アンビエントオクルージョン」という名前のフォルダーにツリーを配置しようとしましたが、運はありません。フォグもオフになります。前もって感謝します。 更新 「Render Paths」カメラを使用して木を見ると、他のすべてが緑である間に赤に見えました。 更新2 これらをダウンロードしたパッケージを再インストールしようとしましたが、まだ運がありません。 更新3 いくつかの木を手動で追加しましたが、それらは正常に機能しますが、地形にペイントして追加するときに問題が発生します。 最終更新 ゲームをビルドして、これが.exeに影響するかどうかを確認しましたが、影響しませんでした。ですから、デバッグ時には無視する必要があります。ビルドでうまく機能するからです。すべての助けをありがとう、それはただ団結のエラーのようです。ビルドの画像:
14 unity  shaders  terrain  tree 

3
中点変位アルゴリズム
この問題は、問題を解明するために数時間を費やした後、主に全くの絶望から生じました。 上の図に目を向けると、中点変位アルゴリズムアルゴリズムが(ある程度)正常に機能していることがわかります。ある程度コヒーレントなノイズパターンを生成します。 ただし、画像上に黒い点線のグリッドが残っているため、その理由はわかりません。私はこれが数学の問題であることを予見できますが、私はそれを見ることができません。また、オンラインリソースでこれが問題の可能性として指摘されていませんでした。そのため、このバグを追跡するための助けをいただければ幸いです。 unsigned char** mdp(unsigned char** base, unsigned base_n, unsigned char r) { size_t n = (2 * base_n) - 1; unsigned char** map = new unsigned char*[n]; for (unsigned i = 0; i < n; ++i) map[i] = new unsigned char[n]; // Resize // 1 0 1 // …

1
ボクセル地形に応力/ひずみ力学を実装する方法は?
私は地形がボクセルに分割されるMinecraftのような世界を開発している最中です。しかし、風景の不安定な構成が予想どおりに崩壊することも望んでいます。たとえば、オーバーハングが大きすぎると、「高応力」ボクセルで破壊されて破損し、非対称に侵食された基部を持つピラー構造が破損します。私は、地形の各ボクセルに「応力ベクトル」フィールドを追加し、次のことを行うことを考えていました(擬似コード): foreach voxel in terrain foreach neighbor in voxel.neighbor_voxels() if magnitude(voxel.stress - neighbor.stress) > stressThreshold detach_voxels(voxel, neighbor) しかし、問題は、これらの個々のストレスをどのように計算するかわからないことです。ボクセル単位で応力を計算するために使用できる、ボクセル離散化に特化したFEAベースのアルゴリズムはありますか?または、私はこれにすべて間違っていますが、これを行う他の方法がありますか?

1
滑らかなボクセル地形
個人的なプロジェクトとして、私はCastle Storyの滑らかな地形のような地形を作成する地形ジェネレーターを作成しようとしています。 あなたがそれを見たことがないなら、ここに: ご覧のとおり、ブロックと「スムーズ」ブロックの組み合わせです。 この外観をエミュレートするために私が試みたのは、各サーフェスブロックにミニハイトマップを与えることです。これは通常は機能しますが、いくつかの問題があり、次のような地形が生じます。 問題は、各ブロックが1x1x1であるが、特定の場所の高さがマイナスまたは> 1である場合があることです。その場合、クリップして、高さを0または1に設定します。 私が意味することをよりよく説明するために、図を示します。 高さを生成するために、基本的に次のことを行います。 genColumn(int x, int z) { int highestBlockY = (int)noise2d(x, z); bool is_surface = true; for(int y = max_height - 1; y >= 0; y--) { Block b; if(is_surface) { b = Block.Grass; b.HasHeightMap = true; // generate heightmap for(int ix = …

1
地形で崖の面を表す方法は?
ゲームで地形をプログラムで表現するための最良の方法を見つけようとしています。ハイトマップ(または等間隔の頂点のグリッド)を使用して地形の表面を表現し、スプラットマップを使用して滑らかなテクスチャリングを可能にすることを検討してきました。これは完全に滑らかな地形では機能しますが、問題は崖と鋭い崖面をどのように表現するかです。 崖自体は、他の地形とは異なる方法でレンダリングする必要があります。たとえば、崖の前面に異なる(伸びていない)テクスチャを表示する必要がありますが、これにスプラットマップを使用した場合、崖のテクスチャが透けて見えるほどの崖の面を持つことは不可能です地面から完全に分離されています。 写真は千の言葉を言うので... 崖や地形の高さの他の急激な違いを保存および/またはレンダリングする一般的な方法は何ですか?

2
クワッドツリーの地形分割-わかりません
私が読んだ論文のほとんどは、地形を何らかの形で四分木に基づいています。38ページでこれを参照してください。 http://www.slideshare.net/repii/terrain-rendering-in-frostbite-using-procedural-shader-splatting-presentation?from=ss_embed 最初の点は下の2つと矛盾していませんか?葉ごとに33x33の固定された頂点グリッドをどのようにして、クアッドツリーの適応分割について説明できますか?用語は紛らわしく、これについて明確に理解していただければ幸いです! 私の仮定は次のとおりです。 クワッドツリーの変更がヒットするたびにパッチを再配置しますか? 地形の境界から始まる四分木。 観測者の位置まで繰り返します。 制約バージョン(隣人間のレベル差は1以下) 錐台カル。 結果の各リーフに地形パッチを配置します。スケールは異なりますが、解像度は常に33x33です。


3
Scorched Earthのような地形を生成するにはどうすればよいですか?
私はウェブ開発者であり、自分のゲームを書き始めたいと思っています。 慣れ親しむために、ここではJavaScriptとcanvas要素を選択しました。 Scorched Earthでそのような地形を生成したいです。 私の最初の試みは、y値をランダム化するだけではいけないことに気づきました。山と谷にはある程度の正気がなければなりませんでした。 私は少しグーグルで検索しましたが、私にとって十分なシンプルなものが見つからないか、間違ったキーワードを使用しています。 ゲームプログラミングはまったく新しい(2003年にVisual Basicを使用してBreakoutを作成したため)ことを念頭に置いて、この例で何かを生成するために使用するアルゴリズムの種類を教えてください。

2
Perlinワームによる洞窟生成
私は現在、3Dシンプレックスノイズでボクセル地形のようなMinecraftを生成しようとしています。また、洞窟を実装したいと考えています。 このスレッドでPerlin Wormsのメソッドを見つけました。これは本当に素晴らしい結果を生成します。ただし、チャンクごとにそれを生成する方法についての手がかりはありません。これは可能ですか、それともチャンクごとに洞窟のような類似のワームを生成する代替策はありますか? 編集:これは私が解決する方法がわからない問題です。 Edit2:これは、2Dリッジマルチフラクタルノイズとシンプレックスノイズハイトマップを組み合わせた結果です。まだ少し調整が必要ですが、これはほとんど私が望んでいた結果です。Byte56に感謝します。

2
ダイヤモンドスクエア地形生成問題
この記事に従って、ダイヤモンドスクエアアルゴリズムを実装しました:http : //www.lighthouse3d.com/opengl/terrain/index.php?mpd2 問題は、これらの急な断崖がマップ全体に表示されることです。テレインが再帰的に細分割されると、エッジで発生します。 ここにソースがあります: void DiamondSquare(unsigned x1,unsigned y1,unsigned x2,unsigned y2,float range) { int c1 = (int)x2 - (int)x1; int c2 = (int)y2 - (int)y1; unsigned hx = (x2 - x1)/2; unsigned hy = (y2 - y1)/2; if((c1 <= 1) || (c2 <= 1)) return; // Diamond stage float a …

1
変形可能な風景をレンダリングするためのいくつかの現在のテクニックは何ですか?
3Dハイトマップベースの変形可能な風景を効率的にレンダリングするために使用できる現在の手法は何ですか? たとえば、変形不可能なランドスケープの問題では、ROAMはこれらのランドスケープへの道でしたが、GPUが進歩するにつれて、新しいgeomipmapping / clipmaps(CPUバウンドではありませんが、それでも十分に大きな勝利を得ました)現世代のGPU)。 変形可能な風景のレンダリングに関して何か進歩はありましたか?レンダリングだけでなく、変形操作中のスループットも向上します。 私は個人的にSM3.0 / DirectX 9.0cをターゲットにしていますが、それに対する回答を制限しないでください。

1
大きな地形メッシュを効率的にレンダリングする方法は?
最近、ゲームに地形を生成する最良の方法について考えている問題に悩まされています。別のプロジェクトでは、通常はハイトマップを使用したため、すべてのコアワークは使用されたエンジンに基づいていましたが、地形には正確に描画する必要がある数百万の特定のポリゴンがあるため、これは実行できません。また、それらの多くはYベクトルから解析できません(ポリゴンが下に隠れているため)。つまり、ハイトマップはここでは役に立ちません。この場合、COLLADAオブジェクトを使用する必要がありました。 誰かがBlenderのようなソフトウェア内でモデルを手動で分割するように言ったが、残念なことに、これらの地形は別のソフトウェアのチャンクで作成され、ゲームに読み込まれるため、これも不可能である(それはアイデアだ)。したがって、これは毎回手動でスライスすることを余儀なくされる大きな仕事になるでしょう。 したがって、この問題を1週間解決して、このメッシュ、つまり地形をカメラのフラストラムに応じて手続き的にロードする方法について1週間研究してきました。これにより、可能な限りパフォーマンスを節約できます。手続き型メッシュの生成に関する多くのドキュメントに出くわしましたが、メッシュを八分木にマッピングすることで問題を解決できると思います。これは少なくとも私にとっては大きな仕事であり、それが私がここにいる理由です。なぜなら、私は経験豊富な人々から聞く前に間違った道をたどるリスクを冒したくないからです。 要するに、私には何百万もの頂点とインデックスがあり、それらが一緒になって地形を形成していますが、明らかな理由により、それらを同時に描画することはできません。何らかの手続きが必要です。大きなメッシュを地形として扱うために、それを行うための最良の方法は何ですか?それに関する具体的な本はありますか?それを実装する最良の方法はありますか? どんな間違いでもすみません、私はこの分野の初心者です。

2
地形をテクスチャマップする方法は何ですか?
私は3DゲームでXNAを使用していますが、適切で快適な環境を作ろうとしています。ハイトマップから地形を作成するためのチュートリアルを実際に実行しました。テクスチャを付けるには、草のテクスチャを適用し、何度もタイルを張ります。 しかし、私がやりたいのは、本当にリアルなテクスチャリングを作成することですが、それを自動的に生成することもできます(たとえば、Perlinノイズを使用してテレインを生成してからテクスチャーを作成する場合)。 マルチテクスチャリングについて学び、さまざまなテクスチャのさまざまな色でマップファイルをロードしましたが、これは本当に効率的ではないと思います。たとえば、崖や非常に急な領域の場合、テクスチャがタイル状に表示されるため、上。(また、どのようにして道路やダートパスを描画するかわかりません。) 手続き的に生成された地形を現実的にテクスチャマッピングする効率的なソリューションを探しています。

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