球体の表面をタイルでマッピングする場合、極歪みにどのように対処できますか?


24

クリーンなデカルトグリッド上での場所の相互作用の方法に対処するのは簡単です。それはただの数学です。また、極などを切り捨てるだけの場合は、球体の表面のジオメトリを無視できます。しかし、極地が重要なゲームのアイデアを考え続けています。ジオコーディングされたARGとグローバルなローグライクなど。

とにかく、世界中の同じサイズの正方形のタイルで合理的に表すことができる、正方形のような場所が必要です。

これは解決された問題でなければなりませんよね?

解決策は何ですか?

ETA:

赤道で-そしてあなたの正方形の位置がかなり小さいと仮定すると、最も赤道の列の北と南の列に1つの正方形を持つことで逃げることができるのに十分に近いです。そして、あなたはおそらく、45度程度まで差を手で振るだけでそれをうまくやることができるでしょう。しかし、最終的には、極方向の円周方向の列の正方形を少なくする必要があります。行の長さを1つ減らし、正方形を1/2オフセットすると、それらは16進数のようになり、コーディングを行って接続を追跡するのは比較的簡単です。しかし、ポールに向かうにつれて、ますます極端になります。

世界の表面を立方体の表面に投影するのは魅力的です。しかし、すでに使用されているよりエレガントなソリューションがなければならないと考えました。

私が立方体のことをした場合(測地を通してさらに詳しく分析するのではない)面の中心または3辺の頂点に極を配置することに関連する長所と短所はありますか?


1
「square(ish)」とはどういう意味ですか?「四角い」とはどの程度四角いですか?
スティーブH

回答:


3

測地線グリッドを探していると思います。多くの人が地球を立方体で近似しています:

ほとんどの地図作成上の問題は、多面体の地球で消えます

Carlos A. Furutiには、立方体に折りたたまれた地球の地図がたくさんあります

地球全体を1つまたは2つの正方形にマッピングするThe Peirce quincuncialプロジェクションにも興味があるかもしれません。

二十面体(ダイマキシオンマップ、「球体をピクセル化する最良の方法は何ですか?」)は、歪みをわずかに抑えますが、より複雑です。


9

私はいつも、球体マップがトーラスで世界をプレイする代わりに、ある種の通常の多面体を使用するゲームを見たいと思っていました。この手法はDymaxion mapと呼ばれます(ソース:grunch.net代替テキスト         

正二十面体をお勧めします。現在の三角形を配置して、正方形の1つの端に揃えます。プレーヤーが三角形から外れたら、次の三角形を引き上げて、再び同じようにマッピングします。プレイヤーの座標は、新しいセクションに再マップされます。したがって、マップの各セクションには独自の座標系があります。また、3つの隣接するセクションと9つの半隣接するセクションの背景を描画する必要があります。うまくできていれば、ユーザーがどのように実装されているかを判断できるとは思いません。

ここでは、これはうまくいくかもしれない方法の例です。

もちろん、これを読んだ後は、おそらく古典的なトーラスマップを使用するでしょう。そして、私は真の多面体宇宙を見るのを待っています。


トーラスは使いません。Civゲームのようにシリンダーを使用できます。しかし、素晴らしい解決策がないことを考えると、私は真剣にキューブに傾いています。立方体は多面体です!:)
clweeks

5

測地線ベースを使用して球体を作成する場合、極域は頂点間隔に関して他の領域と同じように扱われ、均一なUVマッピングが容易になります。

ほとんどのモデリングアプリでは、測地線デザインを使用して球体プリミティブを作成できます。


問題は、この場合、正方形ではなくダイヤモンドが得られることであり、それはOPが望んでいたことではありません。
コーネルKisielewicz

何かが足りない場合を除き、調整やマッピング、リンクが簡単な地域は提供されません...そうですか?
clweeks

測地線は私に行く方法のように思えます、通常の細分化の他のオプションを考えることができません。正方形の領域が本当に必要な場合は、他のタイルと重なっている場合でも、三角形の中心を中心とする正方形の領域を生成できます。十分な大きさの球体(および十分に小さい三角形)の場合、正方形の領域と隣接する三角形の面との間のオフセットは無視できます。それは、同じ座標系でローカル(つまり同じ正方形)の相互作用を記述することができるという利点を保持するはずです。
MrCranky

本当に必要な場合、近似の正方形を与えることができる測地線形状があると思います。
スピーダー

正方形の代わりにダイヤモンドを取得しますが、それを修正するための変換を作成するのはかなり簡単です。極は保証されていません。
ChrisE

5

球を正方形(または長方形)で「マッピング」して、それらをすべて「共通」の頂点で結合させる方法はありません。

しかし、オンデマンドで「ローカルビュー」を生成することは可能でしょうか?問題空間は質問で実際に述べられていませんが、街の景色を望みながら世界を回せるようにしたい場合は、一時的にグリッドを「十分に平らな」セクションにマッピングするだけです世界。グリッドの原点は、ローカルセンターのどこにでもあり、そのポイントの法線は惑星の表面の法線と一致します。

次に、グリッドから離れると、新しいグリッドがオンデマンドで生成されます。

これはOPで機能する場合と機能しない場合がありますが、一部のユーザーにとっては便利な場合があります。


4

頂点と立方体の中心との間の距離が目的の半径に等しい立方体を取ります。6個のクワッドで作成された球体があります。

次に、各ステップで、すべての四角形を4つに分割し、新しい5つの頂点(中心に1つ、エッジに4つ-警告、共有されている)を中心から遠ざけるように移動します。半径。

いいえ、この方法は完全ではありませんが、少なくとも球体上でほぼ均等に分布しています。


3
歪みは実際にはかなり深刻です-顔の中央の四角形は正方形に近く、角の近くの四角形はひどく歪みます。
JasonD

@JasonD:すべてのダイヤモンドよりも優れています。投票する場合は、歪みの少ないソリューションを提案してください。
コーネルKisielewicz

まあ、測地線の分割でかなりうまく球を近似できますが、それがどのように役立つかわかりません。
clweeks

1

dymaxion maxを使用すると、平面上に六角形が三角形にレイアウトされますが、マップは実際には平面ではないため、五角形になります。プレーヤーが特定の部分を歩いたときに向きを維持できるようにするには、ロケーションマップを実際に保存されている方法から分離する必要があります。建物のようなものの場合、長方形のベクトルの小さなマップを保存し、必要な向きでそれらを描画するという厳しい仕事をすることができます。

平均的なプレイヤーは北東のドアに入ろうとするのではなく、正面のドアが向いた状態でスクリーンに入ろうと目をつぶるべきではないと思うので、常に最近の地震があったようにインテリアを見る必要はありません。南と規則的なグリッド上の建物全体。

ただし、建物やそのような重要なサイトだけを保存する場合は、とにかくサッカーボールパターンのすべての作業を完了しています。最終結果は、世界を何らかの非正方形のパターンとして保存し、プレイヤーがいる場所ならどこでもそのようなグリッドにそれを強制することです。

ただし、別の方法もあります。球体をそれほど正確に表示しない場合、たとえば、4つの直交方向のうちどれが北に最も近いかを伝えるために低精度のコンパスを与えた場合などは、逃げることができます。プレイヤーがどこに行ったとしても、90度回転するだけです。想定されるグラフィックスレベルを考えると、高層ビルが戸口を覆い隠すのを心配する必要はありません。彼らが極に近いかどうかを知っている限り、周りのNPCが彼らに北東に行くように指示するか、特定の緯度と経度の座標に実際に行こうとしない限り、彼らがコンパスを変更することにあまり怒ってはいけません。


1

あなたは地図を作る人々が長い間求めてきたという質問をしている:)

ほとんどの場合、Map Projectsionsを読んで、役立つ可能性のある洞察やアイデアを入手してください。球の表面を平らな2D平面上で表現するという課題は、長い間考えられてきたものです。

簡単に言えば、それはできません。そのため、世界の地図を見ると、一部のパーツは歪んでいて、一部のパーツは歪んでいません。ほとんどのマップは非極性領域に関するものであるため、通常は極です。

他の答えが言ったように、答えは、異なる形状(たとえば、六角形または三角形)を使用するか、ユーザーの現在の視点に合わせて動的にマップを生成することです。

正方形のタイルは疑いなく管理するのは非常に簡単ですが、タイルの16進マップを作成するのはそれほど難しいとは思いません。

GameDev.netの古い記事が役に立つと思うかもしれません。グリッド上で等尺性の六角形のタイルを作成することです。

http://www.gamedev.net/reference/articles/article747.asp

「タイル16進マップ」をググリングすると、多くのヒットが得られますが、一部は有用ではありません。


1

空の動く物体を追跡し、真の3Dトラックを取得するために三角測量を行うために、SonyのモデルSNC-RX570NのいくつかのPTZネットワークカメラを操作しています。初期設定の側面の1つは、ウェイポイントを選択する必要がある無人の「ツアー」を定義することです。そのようなプログラム可能なウェイポイントの数には制限があり、地平線から天頂までの半球全体(「天球」)をカバーし、隙間を残しません。

そこで私は、「完全なカバレッジ(ギャップなし)に必要なウェイポイントの最小数は?」という質問を自問しました。私は実際にこれを完全に理解できないことを発見しました。

カメラには無限のパン(360度)と0〜90度の傾きがあるため、理論的には完全なカバレッジを実現できます。コンピューターでの使用を目的としたカメラディスプレイは、アスペクト比4:3の長方形です。1倍ズームでの大まかな水平FOVは58度です。

選択する投影法に応じて、問題を表す方法は2つあります。-メルカトルのような直線。水平線は「赤道」であり、天頂は「極」であり、360度以上のパンにわたって膨張します。-極地。水平線は円の円周であり、天頂は円の中心です。

polarが問題にアプローチする最も簡単な方法だと思います。円を水平FOVサイズのパイスライスに切り分けることができます。これにより、58度のH-FOVで円の周りに7つのウェイポイントが必要であることがわかります。ここまでは順調ですね。内側の半径は、単純に傾きまたはV-FOVであり、58度の3/4です。これまでのところ、これまでのところ-円の最も外側の部分をカバーしました。

しかし、私たちが天頂に近づくにつれて、それはより複雑になります。私のウェイポイントの1つがまさに天頂にあると仮定します。ビュー長方形を円の中心付近の領域にマップするにはどうすればよいですか?その形状は、長方形、楕円形、糸巻き型、または何ですか?素敵なきちんとした外側のカバレッジと天頂でのこの奇妙な形状の間の中間ビットをどのように埋めるのですか?フルモックス。

半球の立体角は2 * PIステラジアンであり、1倍ズームでのFOVの立体角は0.762 stであり、最低9つのテッセレーションが必要です。答えは9より高いと思います。


これについてはどうでしょう。円の面積はPI ^ 2 rad ^ 2で、FOVの長方形は面積0.75 rad ^ 2です。単純に13.16ポイントが必要です。これを完全にカバーするには14ポイントに切り上げる必要があります。問題は、これらをどのように配置するかです。
アンドリュー

0

世界的なグリッドを作成したい場合は、惑星を国や大陸に分割し、それぞれを中心に正方形のグリッドを作成することをお勧めします。海が縫い目を覆うようにします。


実際、私の質問は、「あなたが本当に求めていたと思われることは明らかにできないので、代わりに何をすればよいでしょうか?」です。
clweeks

非常によく、その後編集。
ザラトゥストラ

ええ、私は他の部分によってサイドトラックされたと思います。FullerのDymaxion Mapを実装することを考えていましたが、三角形のタイルで作業することは、私が始めている極座標タイルの問題と同じくらい多くのclusterF *のように思えました。だから、あなたの提案で、誰かが北アメリカから北アジアに航海している場合、座標が重要です(おそらく彼らは浮動基地または何かを確立することができます)どのように縫い目を一緒に縫うのですか?NA:A5-> A:Z475タイプの接続のテーブルを作成しますか?
clweeks

私は推測する。彼らがそれをどうにかしてくれたとしても、私は彼らにボーナス報酬を与え、彼らが賢明な場所に行くまで彼らをグリッドから追い出すだろう。
ザラトゥストラ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.