問題タブ [heightmap]

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.

0 投票する
2 に答える
3208 参照

python - フラクタル地形/ハイトマップ生成

少し前に成功したことを再実装しようとしていますが、うまくいきません..

私が使用しているフラクタル高さマップ生成アルゴリズムは、本質的に再帰的なダイヤモンド スクエア アルゴリズムです。正常に完了するように見えますが、作成されたマップは「完全に正しくない」だけです... 色を決定するためにグリッド内のすべてのポイントを正常に訪問しているようには見えず、マップに「構造」が残っています。これは、グリッドが再帰される方法に関連しているようです。私が見ているものを生成するためにどこでどのように問題が発生する可能性があるのか​​ 正確にはわかりません。

私がこれまでに持っているコードは、

そのまま実行すると、カラーマップが表示され、なぜそれが正しくないのかがわかります。深さを 2 の異なる累乗に変更すると、さまざまな方法で表示されます。値が 256 以上になると、生成に時間がかかります。

どんな助けでも大歓迎です。

0 投票する
1 に答える
236 参照

java - Java LWJGL - 高さマップが正しくレンダリングされない

Oskar Veerhoek の youtube チュートリアルに従って、ゲームに高さマップを実装しようとしています。手順に従うと、いくつかの方法が得られます。

ゲームを実行すると、高さマップが表示されず、画面上のモデルが次のように押しつぶされます。

ここに画像の説明を入力

高さを誤ってレンダリングしてモデルに適用することに関係があると思います。しかし、私は 3D 開発に非常に慣れていないので、本当にわかりません。いくつかの助けは素晴らしいでしょう!ありがとう!

0 投票する
1 に答える
399 参照

java - 高さマップを象限に分割する

四分木システムを使用して地形をレンダリングしています。splitHeightmap(float[] originalMap, int quadrant)象限が 0 ~ 3 の数値であるメソッドを使用して、高さマップを 4 つのセクションに分割する必要があります。マップは 4 分の 1 に分割する必要があるため、象限として 0 を渡すと、配列の左下の 4 分の 1 が新しい float 配列として返されます。私は小さな基本コードを持っていますが、目的の象限に応じて実際にマップをサンプリングする方法がわかりません:

編集:私はうまくいくと思うものを書きましたが、インデックス 65792 の ArrayIndexOutOfBoundsException を取得しています (元の高さマップは 512x512 です):

0 投票する
1 に答える
765 参照

fractals - インクリメンタルプロシージャル地形生成のためのダイヤモンドスクエアの代替品は?

私は現在、ゲーム用の手続き型地形ジェネレーターをコーディング中です。そのために、私は自分の世界を同じサイズのチャンクに分割し、プレイヤーが歩きながらそれらを 1 つずつ生成します。これまでのところ、特別なことは何もありません。

ここで、私は特に世界が永続的であることを望んでいません。つまり、チャンクがアンロードされ (プレイヤーが遠くに移動しすぎたため)、後で再度ロードされた場合、以前と同じであってはなりません。

私の理解では、3D シンプレックス ノイズをマーチング キューブの密度関数入力として扱うような暗黙のアプローチは、私の問題には適していません。これは、空間内の同じポイントに対して異なる戻り値を取得するためにジェネレーターを再シードする必要があり、チャンクの境界に沿って不連続になるためです。

Midpoint Displacement / Diamond-Square についても調べました。各チャンクの高さマップに隣接するチャンクの境界からの値をシードし、近くに他のチャンクがないチャンクの角をランダム化することで、目的の動作を示すタイル可能な地形を生成することができました。それでも、結果はかなり鈍いように見えます。具体的には、このメソッドはハイトマップに依存しているため、オーバーハングなどはありません。さらに、コーナーのランダム化を使用しても、地形の特徴は小さな領域に限定される傾向があります。つまり、複数のチャンクの丘や同様のランドマークはありません。

今、私がまだ聞いたことがない/考えていない、これに対する他のアプローチがあるかどうか疑問に思っていました。どんな助けでも大歓迎です!:)

乾杯!

0 投票する
1 に答える
161 参照

processing - 島を生成するための中点変位の実装で、目的のパターンが作成されませんか?

この記事のような効果を作りたいと思ったのは、「130 行のリアルな地形」の処理ポートにあるコードから始めました。コードを修正して、Processing で 3D 地形ではなくグレー スケールの高さマップのみを生成するようにしました。ただし、私のコードは島の高さマップを生成せず、ここに示されているように、異常な正方形のパターンも残します

私のコードは次のとおりです。

助けてくれてありがとう!

0 投票する
2 に答える
408 参照

java - グレースケール イメージ ピクセルを定義済みスケールに変換する

Photoshop で作成した非常に大雑把な高さマップを使用して、タイル張りのアイソメトリック グリッドを定義しようとしています。

地図: http://i.imgur.com/jKM7AgI.png

画像内のすべてのピクセルをループし、そのピクセルの色を選択したスケール (0 ~ 100 など) に変換することを目指しています。

現時点では、次のコードを使用しています。

これはある程度機能します。位置 0 の黒いピクセルは 167 で、位置 999 の白いピクセルは 0 です。ただし、特定のピクセルを画像に挿入すると、少し奇妙な結果が得られます。一桁であること。

より信頼性の高い結果が得られる代替ソリューションはありますか?

どうもありがとう。

0 投票する
1 に答える
719 参照

3d - HERE maps 3D はハイトマップでどのように機能しますか?

WebGL を使用する HERE Maps 3D の作業を見てきました。

ここに画像の説明を入力

ライブデモ: http://here.com/45.4382049,12.3281023,18.51,124,75,3d.day

ハイトマップに似たテクニックのようです。

テクスチャからの押し出しを構築するために、どのように機能するのだろうか。リクエスト/レスポンスを確認するためにブラウザツールでネットワークを調べたところ、次のことがわかりました。

ここに画像の説明を入力

*.n3mテクスチャ ファイルと、同様の値を持つタイル テクスチャとの関係を持つバイナリ ファイルの 2 つのファイルがありx, y, zoomます。

また、テクスチャがどのように見えるかを見て、それが標準的な航空 (コスモス) ビューではないことを理解しました。

ここに画像の説明を入力

灰色のピクセルがいくつか見られます。タイル テクスチャには宇宙からのビューと建物のテクスチャの両方が含まれており、これらはすべて 1 つのテクスチャ ファイルに存在します。

HERE マップのテクニックは素晴らしいだけでなく、非常に素晴らしいと思います。OSCAR と同様の賞が存在するが、IT 業界向けである場合、HERE マップの開発者はそのような賞を受賞している必要があります。

しかし、本題に戻りましょう。私が知りたいのは、彼らが使用する正確なテクニックは何ですか? よく知られている、非常に人気のあるテクニックでしょうか?もしそうなら、それに関するいくつかの情報を教えてください。

現実世界の高さマップから美しい地形を作成する three.js アプリケーションの作成に成功したので、HERE マップからそのようなサンプルを見たときに、同じものを作成してみたいと思います。

したがって、質問は次のとおりです。

  • このサンプルのテクニックは何ですか (ハイトマップの押し出しテクニックに共通していることがわかります)?
  • なぜテクスチャが生成されるのですか?
  • ファイル形式について教えてください*.n3m(バイナリ形式です。Google 検索で情報を検索しようとしていますが、最も興味深いのは次のとおりです: http://content.stamen.com/files/idiocode/index.html )?

関連リンク:

0 投票する
1 に答える
415 参照

c++ - C++ OpenGL ラージ メッシュに三角形がありません

そのため、頂点シェーダーでほとんどの作業を行うハイト マップ レンダラーをまとめていますが、もちろん最初にレンダリングするメッシュを生成します。現時点では、openGL と C++ の上限をいじって確認しています。レンダリングできるメッシュの密度 (そのため、後で LoD メッシュの分割に関して検討する必要があります)

とりあえず!問題に切り込む。

32、64 の meshResolution をテストした後に気付いた問題で、128 でランタイム クラッシュが発生しました。配列の長さを下げるために 6 つのインデックスを保持する自作のクラス「indexFace」を使用してそれらを停止しました。問題は 128 の解像度でのみです。メッシュの 3 番目が実際に表示されます。openGL が 1 セットの BufferObjects を使用してレンダリングまたは保持できるインデックスの数に制限があるのか​​ 、それとも C++ 側の処理に問題があるのか​​ 疑問に思っていました。

次の方法でメッシュを生成しています。