3

私は3D浮動小数点行列を持っていますが、最悪のシナリオではサイズが(200000x1000000x100)になる可能性があり、Qt/OpenGLを使用してこの行列を視覚化したいと思います。

要素の数が非常に多いので、カメラがマトリックスから遠く離れているときに、マトリックスがどのように見えるかを概算するいくつかの興味深い点を示すようにレンダリングしたいと思います。カメラが近づくと、より多くの詳細を取得したいので、より多くの要素が計算されます。

このような視覚化を扱うテクニックがあるかどうか知りたいです。

4

2 に答える 2

7

一般的な考え方は詳細レベルレンダリングと呼ばれ、それ自体が科学全体です。

あなたのドメインについては、2つのステップをお勧めします:

1)異なるサイズのキューブでセルを平均化(算術平均関数)し、それらのキューブを(ディスクとRAMに)キャッシュすることにより、セルの数を減らします。ここで「異なる」とは、複数のサイズのキューブに同じデータがあることを意味します。たとえば、10000x10000x10000の粗いキューブと、100x100x100セルの細かいキューブは、複数の詳細レベルになります。これらを階層構造(大きなものには複数の小さなものが含まれています)に編成する必要があります。このために、Octreeをお勧めします:http : //en.wikipedia.org/wiki/Octree

2)2番目のステップは、このOctreeの一部を実際にレンダリングすることです。これを行うには、カメラポイントからサブキューブまでの距離を使用します。キューブを調べて、サブキューブに入るか、この距離関数とヒューリスティックに選択または推測されたしきい値を使用して、より大きなキューブをレンダリングするかを決定します。

(2)さらに最適化できますが、これはオプションです。このレンダリングを最適化するには、レンダリングされる立方体をレイヤーに編成します。レイヤーの方向(x、y、zスライスのいずれか)はカメラによって異なります。 -垂直に近いはずの視点。次に、各スライスをテクスチャにレンダリングします。これで、スライスごとにそのテクスチャを使用して単一のクワッドをレンダリングするだけで済みます。1000個のクワッドをレンダリングしても問題ありません。

于 2011-07-14T11:58:15.510 に答える
2

Qtには、膨大な数の要素を効率的にレンダリングする方法があります。QTの一部である例/デモを確認してください。

于 2011-07-14T12:03:43.923 に答える