ポリゴンの代わりに何兆もの「原子」をレンダリングしますか?


9

パブリッシャーが「3Dの発明後の次の主要なステップ」と呼ぶものについてのビデオをところです。その中で話をしている人によると、彼らはポリゴンの代わりににグループ化された膨大な量の原子を使用して、無制限の詳細レベルに到達します。

彼らはビデオをレンダリング技術の知識がない人にも理解できるようにするために最善を尽くし、そのため、または他の目的のために、エンジンの動作の詳細をすべて省略しました。

彼らのビデオの細部のレベルは私にはかなり印象的に見えます。

  • 現在のハードウェアでポリゴンの代わりにカスタムアトムを使用してシーンをレンダリングするにはどうすればよいですか?(速度、メモリに関して)
  • これが本当なら、なぜ今まで誰もそれについて考えさえしなかったのですか?

私はOpenGL開発者として、これに本当に困惑しており、専門家の意見を聞きたいと思っています。したがって、私もこれが安い広告のように見えたくないので、コメントセクションに、要求された場合にのみビデオへのリンクを含めます。


7
まあ、彼らはコンピュータグラフィックスの登場以来、最も革新的なものを発明してきましたが、何ミリメートルが1インチに収まるかはわかりません。

2
彼らは技術についての詳細(しゃれを許す)が非常に限られているため、議論は困難です。私がビデオから理解したことから、それはソフトウェアで20fpsです。静的なジオメトリがたくさんあり、インスタンス化の束がたくさんありますが、事前計算またはその場で生成されるデータの量がわかりません。それでも興味深い。私はシェニガンを完全に呼びたくはありません。資金を獲得したわけではありませんが、それは全体を意味するものではありません。
Bart

8
誰かが素晴らしい主張をし、まったく関係のないもの(Crysisなど)の映像のみを表示する場合は、常に疑わしいです。「医学/宇宙旅行で使用されるテクノロジー」のような主張があり、互いに何の関係もないいくつかのものが混在している場合はなおさらです。確かに、(ほぼ)無限の詳細を手続き的に生成することが可能であり、それをレンダリングすることは確かに可能です。つまり、1984年のマンデルブロのデモはすべてそれを行うことができました。ただし、その象は象のようなオブジェクトを非常に詳細にレンダリングすると主張しています。そして、それはできません。

8
「あなたのグラフィックスは100,000倍に改善されようとしています。」異常な主張には異常な証拠が必要です。
Brad Larson

11
Notch 、このビデオについて2つのブログ投稿を書きました
ケビン・ヤップ

回答:


11

それは簡単です。Octtreeを使用すると、必要な詳細レベルに達するまで、世界を次第に小さなピースに分割するだけです。これは例えば砂粒のサイズかもしれません。Minecraftを極端に考えてみてください。

次に何をレンダリングしますか?ディテールが十分に小さい場合は、ブロック(オクトツリーのリーフノード)のレンダリングを検討できます。その他のオプションには、球体や幾何プリミティブさえ含まれます。色と法線は各ノードに保存でき、LODを削減するために、ツリーの上位レベルに複合情報を保存できます。

どのようにして多くのデータを管理できますか?ツリーが実際のデータ構造の場合、テクスチャを再利用するのと同じように、複数のポインタが同じサブツリーを参照できますが、ジオメトリも含まれています。トリックは、すべてのレベルでできるだけ多くの再利用を取得することです。たとえば、四面体配置の4つのオクタントをすべてのレベルで同じ子ノードにすべて接続すると、ほとんどメモリを使用せずに非常に大きな3Dシェルピンスキーフラクタルを作成できます。もちろん実際のシーンははるかに大きくなります。

問題は、実際のアニメーションではフレームごとにすべてのデータを操作する必要があるため、静的なジオメトリに対してのみ機能することです。ただし、レンダリング、特に可変LODの場合は問題ありません。

そのようなことをどのようにレンダリングするのですか?私はレイトレーシングの大ファンであり、GPUの有無にかかわらず、この種の処理を非常にうまく処理します。

もちろん、これはすべて推測です。あなたが話しているケースに関する具体的な情報はありません。そして今、何か関連しているが違う:

レンダリングされた大量のデータ

編集これが私がしたものですが、私は意図的に法線を変更してボックスをより明確にしました:

ボクセルのスタンフォードバニー

そのフレームレートは、シングルコアIIRCでした。ツリーの深さを2倍にすると、フレームレートは通常半分になりますが、複数のコアを使用すると適切にスケーリングされます。通常、私はプリミティブ(三角形など)をocttreeに保持しますが、この場合、ニヤリとするためにツリー自体の葉ノードをレンダリングすることにしました。もちろん、特定の方法を中心に最適化すると、パフォーマンスが向上します。

ompfのどこかにボクセルを使って作られた車があり、それは静的ですが、本当に素晴らしいです。見つけられないようです...


私はこの評価に同意します。自分でビデオを見ただけで、彼らのシーンがどれほど静的であるかに感銘を受けました(彼らがポリゴングラスと比較すると面白いです。少なくとも、風が吹いているのに明らかに風が吹いていません)。
timday

1
残念ながらリンクは切れています。
Joachim Sauer、

1
@JoachimSauer確かに、OMPFフォーラムはしばらく前にダウンしています。直接の代替品はこちらから入手できますが、コンテンツが移行されたかどうかはわかりません。
Bart

それのように見えません。そのフォーラムで「バニー」を検索しても、結果は表示されません。
Joachim Sauer

最初のリンクは、ポップアップとアラートボックスの-1を開きます
NimChimpsky

6
  • 現在のハードウェアでポリゴンの代わりにカスタムアトムを使用してシーンをレンダリングするにはどうすればよいですか?(速度、メモリに関して)

ビデオを見ても、特別なハードウェアが使用されたことを示すものは何もありません。実際、私が何かを見逃していない限り、これはソフトウェアで20fpsで動作すると言われています。

おそらく、レイトレーシング、ボクセルレンダリング、表面スプラッティングなどのさまざまなテクノロジーを使用したリアルタイムレンダリングへの多くの開発があったことを知って驚かれることでしょう。このケースで何が使用されたかを言うのは難しいです。(興味がある場合は、http://igad2.nhtv.nl/ompf2/ですばらしいリアルタイムレイトレーシングフォーラムをご覧になるか、http: //www.atomontage.com/で興味深いボクセルエンジンをご覧ください。そのトピックに関するいくつかのすばらしいリンクのためのグーグルの「表面スプラッティング」)

映画を見ると、すべてのジオメトリが静的であり、詳細ではありますが、オブジェクトの繰り返しが非常に多く、インスタンス化のヒントになる場合があります。

また、多くの積極的なカリング、詳細レベル、およびスペース分割が行われる可能性があります。

(幾何学的な複雑さではなく)視覚品質を見ると、それほど印象的ではありません。実際、それはかなり平らに見えます。表示されているシャドウイングはデータに組み込まれており、リアルタイムで評価されない場合があります。

アニメーション化されたジオメトリと動的なライティングを使ったデモを見たいです。

  • これが本当なら、なぜ今まで誰もそれについて考えさえしなかったのですか?

私が完全に間違っていない限り(そして私が初めてではないでしょう)、私の最初の答えは、おそらくこのデモを作成するために最適化および拡張された既存のテクノロジの(おそらく非常に賢い)使用を示唆するでしょう。しかし、それを実際のゲームエンジンにすることは、それを含む静的なジオメトリのレンダリング以外のすべてのタスクで、まったく異なるボールゲームです。

もちろん、これらはすべて純粋な推測です(これは私にとってとても楽しいことです)。私が言っているのは、これは必ずしも偽物ではないということです(実際、私はそれが偽物だとは考えていませんが、まだ感動しています)。


5

これらのアトムは実際には、現在のグラフィックスハードウェアにとってそれほど魔法/特別/異質ではありません。これは、一種の点群またはボクセルベースのレンダリングです。したがって、三角形の代わりにポイントやボックスをレンダリングしますが、現在のハードウェアでは何も実現できません。

それはすでに行われており、すでに行われており、スーパー発明ではありませんが、多分彼らはそれを行うためのより多くのメモリと時間効率の良い方法を考え出しました。見た目もおもしろいですが、この動画は塩味のあるものにしてください。完全にテクスチャ化されたポリゴン(既に画面上で数ピクセルしか占めていない)の代わりに100,000ポイントをレンダリングしても、グラフィック品質は100,000倍向上しません。

ちなみに、idソフトウェアもGPU加速ボクセルレンダリングを試していると聞きましたが、このビデオのスピーカーよりもJohn Carmackの方が少し信頼があります:)


2

それは投資詐欺でした。

アイデアに関しては、それは現在の非専用ハードウェアでは実現可能ではありません。何かを近くで見るときにギャップを避けるために必要なポイントの量は、今日のRAMで埋めることができるポイントの量をはるかに超えています。たとえデモに示されているパフォーマンスに近いデータ構造や検索アルゴリズムについては知りません。そして、たとえこれらのポイントをリアルタイムで検索することができたとしても、キャッシュミスとメモリ帯域幅があれば確実に検索できなくなります。

提示された方法ではなく、そのような画像がリアルタイムで実現できないことは疑いません。私の推測では、デモはボクセルでレンダリングされ、ボクセルは何十年も使用されており、リアルタイムでかなり高いディテールを生成できます:http : //www.youtube.com/watch ? v = BKEfxM6girI http://www.youtube .com / watch?v = VpEpAFGplnI


2
「あれは投資詐欺だった」...何に基づいていますか 特に最近獲得した資金と今日アップロードされているビデオを考えると?
Bart

1
どんなビデオ?1年以上更新されていません。
ハネシュ2011

1
コメントでOPが投稿したyoutube.com/user/EuclideonOfficial
Bart

1

私が見たところ、単純なポリゴンシェイプではなくパラメトリックシェイプを使用しているようです。つまり、必要な解像度に応じてジオメトリを変更しています。

これは、ジオメトリシェーダーやパーリンノイズなどの手法を使用して行うことができます。

もう1つの可能性は、GPGPU(CUDAなど)を使用して非ポリゴンを含むシーンをレンダリングし、レイトレーシングを実行することです(Zオーダーとシャドウの場合)。もう1つの可能性は、三角形ではなく数式をレンダリングするカスタムハードウェアです。


0

私は彼らの主張をすべて思い出します。メモリの圧縮は誇張のように思えます。RLE圧縮のようなものが大きな影響を与えていることが理解できました。結局、このシステムには多くの「長所」がありますが、レイトレーシングやマーチングキューブを使用した等値面レンダリングのように、多くの「短所」があると思います。

「兆」の原子をレンダリングする限り; 彼らがそう言っているとは思いません。彼らが代わりに行っているのは、W * Hの原子、つまり画面上のピクセルごとに1つの原子を検索することです。これは、多くの遅い困難な方法で達成できます。これを高速化するいくつかの方法は、KDツリー、BSPツリー、オクトリーなどです。しかし、結局のところ、これは大量のデータが並べ替えられており、デモが1440x720の原子をフレームごとに1回以上ソートしているためです。彼らのデモの影/反射のために、素晴らしいです。だからcudos!


-1

それが動作する方法は、あなたが考えるかもしれないよりもはるかに単純です。ゲームレベルをプリロードする代わりに、単一の画面、画面上のピクセルごとに1つまたはいくつかの原子のみをロードします。それ以上、ゲーム/エンジンは何を予測します次のフレームが読み込まれ、それだけが読み込まれます。オブジェクト全体ではなく、表示されているオブジェクトの一部のみがレンダリングされます。長所:モニターが処理できる限りの定義と解像度、低いメモリ使用量短所:ディスクからの読み取り速度はかなり大きく、フレームレートが低くなる可能性があります。


これは、以前の7つの回答で作成および説明されたポイントに対して実質的なものを提供していないようです
gnat
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.