問題タブ [level-of-detail]

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 投票する
8 に答える
4377 参照

3d - 遠隔3Dオブジェクトレンダリング[ゲーム]

Oblivion(および他のゲーム、確かに、十分にプレイしていない)に見られるようなテクノロジーの背後にある基本的な前提は何ですか?遠くからオブジェクトを遠くから見ると漠然と表示されますか?たとえば、大きな塔が1マイル離れていると、その漠然とした長方形が地平線から突き出ているのがわかります...明らかに、巨大な3Dシーンをすべてレンダリングできるわけではなく、高さマップの場合は近似アルゴリズムしかないことを私は知っています。これは、カメラから離れた高さマップの品質を下げるために使用されますが、特定のオブジェクトの場合、それらを表示するための最良の方法は何ですか?

風景の周りの特定の場所を選び、その場所の周りにすべてのハイトマップと3Dモデルを描画して写真を撮るプログラムを作成する、事前レンダリング手法を考えていました。何枚か写真を撮り、プレーヤーがその場所の近くにいると、その写真はスカイボックスとして使用されます。

もう1つのより明白な手法は、非常にラフな3Dモデルを保存することですが、3Dレンダリングシステムは、他のそれほど重要ではない(そしておそらくそこからは見えない)ラフモデルではなく、建物のラフモデルをレンダリングすることを具体的にどのように選択しますか?距離)オブジェクト?そのようなものをハイトマップと一緒にどのように保存しますか?おそらく設計上、そのような重要なランドマークをいくつかだけ持って、それらのリストを小さなファイルに保存し、各フレームでx未満のランドマークを実際に遠くにレンダリングしますか?

Haloシリーズはゲームをレベルに分割することを選択し、各レベルには異なる手作りのスカイボックスがあることを私は知っています。これは私が最初の提案で目指していたようなものですが、それについてはよくわかりません。限られた時間と知識でプロトタイプを作成できるように、他のアイデアやアイデアの改良点や問題を収集しようとしているだけだと思います。

もう1つの関連トピックは、山を遠くに表示する方法です。山は高さマップの一部であり、その上に3Dモデルがないため、大まかなバージョンを作成することはできず、高さマップ近似アルゴリズムが失敗する可能性があります。そのような非常に遠い距離から山を登ります(おそらくそうしないであろう、そのような遠いジオメトリを近似してレンダリングしようとさえすると仮定します)。あなたがあなたの答えでもこれをカバーするならば、ボーナスポイント。:)

ありがとう!

PS私はOpenGLを使用しています。基本的な概念を探していますが、サンプルコードを投稿する場合は、OpenGL関数と用語を使用してください。:)

編集:答えてくれてありがとう!ドキュメントの目的で、私が見つけた別のリソースがあります。ゲームプログラミングGems 2の第4.9章では、遠くの風景をスカイボックスにレンダリングする概念について説明しています。http://books.google.com/books?id=1-NfBElV97IC&lpg=PA416&ots=SOpnfijZly&dq = render%20distant%20to%20skybox&pg = PA416 (残念ながら、そのプレビューは章の最初のページにすぎません... 8月に戻ったらすぐに、大学のライブラリからその本を入手する必要があります)

また、これらのことを読んだ後でも、LODはまだかなり近い距離にあるオブジェクト用であると私は考えています。オブジェクトのサイズが1ピクセルでもない場合でも、オブジェクトをグラフィックカードにフィードしている場合は、LODを使用しているかどうかに関係なく、電力を浪費しているだけです。そして、それは絶対的に最大の遠方のオブジェクト以外のすべてに当てはまります。ほとんどの場合、いくつかの高い建物といくつかの山がありますが、細部のモデル(茂み、木、岩、その他の風景など)は、このような距離からは見えません。ですから、スカイボックスへのレンダリング手法が好きです。この橋に着いたら、それを渡ります。すべてのモデルにLODを使用するようにしますが、そのような距離はレンダリングしません。

ちなみに、私はOblivionゲームの方針に沿って考えているので、答えはゲームのジャンルによって異なる場合があります。

0 投票する
8 に答える
14198 参照

algorithm - 並んでいるポイントの数を減らす

ポリラインのLOD、ノードのライン(ループされているかどうかに関係なく)を減らすためのアルゴリズムを探しています。簡単に言えば、高解像度の海岸線データを取得し、そのLODを数百倍または数千倍に減らして小規模にレンダリングできるようにしたいと考えています。

ポリゴン縮小アルゴリズム(ただし、三角形が必要)とラプラシアン平滑化を見つけましたが、それは私が必要としているものとはまったく異なります。

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

algorithm - 2D 詳細レベル (LOD) アルゴリズム

2D ポリゴンの詳細レベル (LOD) 表現を作成できるアルゴリズムをネットで探していますが、まともなリファレンスを見つけることができません。間違った検索用語を使用しているのかもしれませんが、すべての検索結果は 3D LOD アルゴリズムのものであり、おそらく 2D には実際には適用できない (?) と思います。

3D グラフィックスが猛威を振るう前は、多くの人が 2D LOD アルゴリズムに取り組んでいたに違いありません。詳細情報を入手できる場所への手がかりや指針はありますか? ありがとう!

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

sql - プロット用の SQL 保存データのサブサンプリング

30 秒ごとに (timestamp, stock_price) を SQL データベースに記録するプログラムがあり、さまざまなタイムスケールでの株価のプロットを生成するとします。1 時間の範囲で測定値をプロットする場合、その間に取得した 120 個のサンプルすべてを使用してもかまいません。ただし、1 年間の範囲で価格をプロットしたい場合は、データベースから 100 万を超えるサンプルを取得したくないことは明らかです。サンプルの代表的なサブセットをデータベースから引き出す方がよいでしょう。

これは、コンピューター グラフィックスの詳細レベル テクニックを思い起こさせます。3D モデルから遠ざかるにつれて、忠実度の低いバージョンのモデルを使用できます。

データベースで詳細レベルの情報を表現したり、データの等間隔のサブセットをすばやくクエリしたりするための一般的な手法はありますか (たとえば、2009 年 1 月の等間隔のサンプルを 100 個ください)。


これまでに思いついた解決策は、データベース テーブルに level_of_detail 列を含めることです。level_of_detail=0 の場合、行は 1 つの瞬間的なサンプルを保持します。level_of_detail=n の場合、行には最後の (sample_interval*(2^n)) 秒のデータの平均が含まれ、このレベルには 1/(2^n) の行があります。テーブルには (level_of_detail, タイムスタンプ) のインデックスがあり、プロットを生成する場合は、必要なサンプル数に基づいて適切な level_of_detail 値を計算し、その制約でクエリを実行します。欠点は次のとおりです。

  • N 個のサンプルの場合、テーブルは 2*N 行を格納する必要があります
  • クライアントは、適切な level_of_detail 制約を指定することを知っている必要があります
  • サンプルがテーブルに追加されると、平均化された行を構築するプロセスが必要になります。
0 投票する
0 に答える
139 参照

c++ - 自己照明のようなメッシュ、頂点を与える方法は?

自己照明のような複雑なメッシュ、頂点をどのように与えることができるか。ライトアンビエント、マテリアルアンビエントを増やしてみましたが、遠ざかるとすぐに消え始めます。どんな距離からでも見えるようにしたい。円柱から頂点を取得してから色を入れようとしましたが、色には問題なく機能しますが、距離では失敗します。

ここ見て、これも見てください

0 投票する
3 に答える
2857 参照

algorithm - 2つの入力からの疑似乱数ジェネレータ

float型の2つの入力から[-1、1](範囲はオプション)の範囲の数値を取得する疑似乱数ジェネレーターが必要です。

また、なぜそれが必要なのかを説明しようと思います。

地形エンジンの高さマップを作成するために、Diamond-Squareアルゴリズムを使用しています。地形はパッチに分割されます(チャンクLOD)。

Diamond-Squareの問題は、ランダム関数を使用することです。たとえば、2つの隣接するパッチが同じポイント(x、z)を共有している場合、クラックが発生しないように、すべてのパッチの高さを同じにします。効果。

隣接するパッチから高さ情報を取得できると言う人もいるかもしれませんが、パッチが最初に作成された後は結果が異なる可能性があります。

そのため、(x、z)という2つの入力が与えられた場合に一意の数値を返す疑似乱数ジェネレーターが必要です。

(私は誰かにそのような関数を書くように頼んでいません、私はただ一般的なフィードバックや同様のことをする既知のアルゴリズムが必要です)。

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

opengl - OpenGLの詳細レベルアルゴリズムの実装

私は次のアルゴリズムを実装しようとしています(小さな三角形にペイントするために壊れています)が、それを適切に説明するチュートリアルをネット上で見つけることができませんでした、私が見つけたもののほとんどは理論的にそれを説明し、サンプルも方法ですそれらには他の多くのものが含まれているため、理解するのが複雑です。

それがどのように行われたか、またはそのようなことを私に指摘していただければ、私は非常に感謝しています。

0 投票する
0 に答える
3571 参照

3d - ポリゴン削減アルゴリズムを実装するには?

数日間、次のアルゴリズムに関するいくつかの資料を読もうとしましたが、理解するのが非常に難しいことがわかりました。いくつかのコード サンプルを見つけることができました。その中で最も有名なのはウサギの例です。http://www.melax.com/polychop .

私の質問はガイダンスのようなものです。モデルを小さな三角形に分割することがすべてであることは知っていますが、正確に行う方法はよくわかりません。大規模で爆発的なコード スニペットからそれを見つけ出したとしても、何の役にも立ちません。

その方法の手順を教えていただければ幸いです。

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

c - 不規則な速度での2Dデータの保存

これは、地形生成およびレンダリングプログラム用です。

次のようなループがあります。

さまざまな解像度で半ランダムな高さの値を見つけることになっています。近くでははるかに高い解像度、遠くでは低い解像度です。

後で、

これはレンダリングコードであると想定されています(もちろん、擬似コードで)。各点の座標を指定する必要があります。ここでは本当に三角ストリップを使用したいので、1つのストリップ内のすべてのポイントを互いに連続させる必要があります。

私の質問が来ます:これらのポイントをどのように保存しますか?Pythonでは、リストを作成してから、リスト内のすべてをレンダリングします。問題は、これがCであり、配列が動的ではないことです。だから私はサイズが必要です。そのサイズをどうやって知ることができますか?インテリジェントな方法でループする方法はありますか(幅が可変であるため)?また、ある行の終わりが別の行の始まりと結合するのを防ぐにはどうすればよいですか?

それとも私はすべてを間違ってやっていますか?

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

graphics - Ogre material lod: どのように設定すればよいですか?

私は Ogre マテリアルを持っていますが、GPU フィルタリングに満足していないので、手動でミップマッピングを作成したいと考えています。つまり、すべてのテクスチャを作成し、lod ベースの戦略を設定して正しいテクスチャをロードします。

問題は、どの戦略を使用しても、lod_value を使用しても、マテリアルがテクスチャを変更しないことです。私は何をすべきか?マニュアルを読んでいますが、本当に役に立ちませんでした。

これが私のコードです: