【VTK学習記-04】VTKの基本データ構造

学習チュートリアル: 「高度な VTK グラフィックスと画像開発」 Zhang Xiaodong、Luo Huoling
特別協力: Dongling Studio

3.1 ビジュアルデータの基本特性

(1) 離散性。

  • 無限の連続空間から限られた数のサンプリング点を取得するプロセスは、離散化プロセスです。
  • サンプリングでは取得できないその他の値については、通常は補間によって取得されます。線形補間は一般的に使用される補間方法であり、非線形補間方法の方がより正確です。

(2) データは規則的または不規則な構造 (構造化または非構造化) を持っています

  • 構造化: 通常の構造ではデータ ポイント間に固定の関係があり、保存する場合は、開始点、隣接する 2 つのポイント間の間隔、およびポイントの総数を保存するだけで、完全なデータ情報が保存されます。
  • 非構造化: データが頻繁に変更される領域では密に表現され、データが頻繁に変更されない領域では疎に表現されます。より自由で詳細かつ柔軟なデータ表現が可能です。

(3) データには次元がある

  • トポロジー次元。可視化されたデータは、0次元、1次元、2次元、3次元など任意の次元を持ちます。

0次元:点
1次元:曲線
2次元:面
3次元:体積

3.2 データオブジェクトとデータセット

3.2.1 vtkDataObject (データオブジェクト)

VTK では、データは通常、vtkDataObject クラスのデータ オブジェクトの形式で表現されます。これは、VTK でビジュアル データの最も一般的に使用される表現形式です。データ オブジェクトはデータの集合であり、データ オブジェクトが構造に編成されて初めて、VTK が提供する視覚化アルゴリズムで処理できます。

実際のアプリケーションでは、特定の視覚化データに基づいて視覚化を実装するために、特定のサブカテゴリが選択されます。

ここに画像の説明を挿入します

3.2.2 vtkDataSet (データセット)

データ セットは、データ オブジェクトを構造に編成し、対応する属性値を割り当てることによって形成されます。

vtkDataSet は、vtk のデータセットに対応するクラスで、vtkDataObject から直接派生されます。vtkDataSet は、組織構造と属性データの 2 つの部分で構成されます。

vtkDataSet の組織構造は、位相構造幾何学的構造の 2 つの部分で構成されます。位相構造は物体の構成を表し、幾何学的構造は物体の空間的な位置関係を表します。

たとえば、画面上に三角形が表示されている場合、3 点を定義する座標がデータ セットの幾何学的構造であり、それらの間の接続がデータ セットの位相構造を構成します。つまり、ポイント データはデータ セットの幾何学的構造を定義し、ユニット データはデータ セットの位相構造を定義します。

ここに画像の説明を挿入します

3.3 ユニットの種類

指定されたタイプの一連の順序付けられた接続によって定義される構造がユニットであり、このユニットが VTK 視覚化システムの基礎となります。
ユニットは、ユニットの種類 (六面体など) とユニットを構成する頂点のリストの 2 つの部分で構成されます。

ユニットは順序付けられた点のセットです。ユニットのタイプによって点セット内の点の順序 (つまり、ユニットのトポロジ) が決まり、ユニットを定義する点の数がユニットのサイズになります。

VTK のセル タイプは、vtkCellType.h ファイルで定義されます。

線形ユニット タイプと非線形ユニット タイプの分割は、主に補間関数に基づいています。

  • 線形単位の場合は、線形補間関数または定数補間関数が使用されます。
  • 非線形ユニットはより正確な補間関数を提供できますが、グラフィックス ライブラリでは直接サポートされていません。したがって、一般的な戦略は、非線形ユニットを線形ユニットに分割し、分割結果を線形ユニットとして処理することです。

3.4 属性データ

属性データは主にデータ セットの属性特性を記述するために使用され、データ セットの視覚化は本質的に属性データの視覚化です。

データの性質に応じて、属性データはスカラー データ、ベクトル データ、テンソル データなどのいくつかのカテゴリに分類できます。属性データは n 次元配列に抽象化できます。

スカラーデータ

ベクトルデータ: ベクトルデータは3次元方向の3要素で表現でき、カラーRGBなどのスカラーデータも同様の3要素構造で表現できます。

テクスチャ座標: 点は、デカルト座標空間から 1 次元、2 次元、または 3 次元のテクスチャ空間にマッピングできます。

テンソル データ: k 次のテンソルは、k 次元のテーブルとみなすことができます。0 次テンソルはスカラー、1 次テンソルはベクトル、2 次テンソルはテクスチャ座標、3 次テンソルは 3 次元配列です。VTK は 3*3 対称テンソルのみをサポートします。
ここに画像の説明を挿入します

3.5 さまざまな種類のデータセット

データ セットのタイプはその組織構造によって決まり、データ セットのタイプによってポイントとユニットの関係が決まります。
ここに画像の説明を挿入します

  1. vtkImageData は、
    ルールに従って長方形のグリッドに配置された点とセルのコレクションです。vtkImageData は 1 次元の線、2 次元のピクセル、または 3 次元のボクセルで構成されており、その幾何学的構造および位相構造は規則的です。
    ここに画像の説明を挿入します

  2. vtkPolyData
    ポリゴン データセット。vtkPolyData は頂点、複数頂点、ライン、ポリライン、トライアングルストリップなどの単位で構成されており、ポリゴンデータは不規則な構造をしています。
    トライアングル ストリップを使用して N 個の三角形を表現するには、N+2 点のみが必要で、ほとんどのグラフィックス ライブラリは、トライアングル ストリップを直接レンダリングするよりもはるかに高速にレンダリングします。
    ここに画像の説明を挿入します

  3. vtkRectilinearGrid
    vtkRectilinearGrid タイプのデータは、長方形のグリッドに配置された点とユニットの集合であり、線形ネットワークのトポロジーは規則的ですが、その幾何学的構造の一部だけが規則的です。つまり、点は座標軸に沿って配置されますが、2 点間の間隔は異なる場合があります。
    ここに画像の説明を挿入します

  4. vtkStructuredGrid
    vtkStructuredGrid は、規則的なトポロジと不規則なジオメトリを持つ構造化グリッド データですが、セルは交差したり重複したりしません。
    ここに画像の説明を挿入します

  5. vtkUnstructedGrid
    vtkUnstructedGrid は非構造化グリッドであり、そのトポロジとジオメトリは非構造化されています。
    VTK では、あらゆるタイプのデータセットを非構造化グリッドで表現できますが、vtkUnstructedGrid タイプのデータの保存には大量のスペースが必要となり、計算時に大量のリソースが消費されます。
    ここに画像の説明を挿入します

  6. vtkUnstructedPoints
    vtkUnstructedPoints は、空間内に不規則に分布する点セットを指し、離散点として表現される非構造化点セットです。不規則な幾何学的構造を持ち、位相構造はありません。
    ここに画像の説明を挿入します

3.6 データの保存と表現

データストレージ:

  • データはデータ配列 (vtkDataArray) の形式で保存され、スカラー データまたはベクトル データを保存できます。データ配列は N タプルで構成されます。

  • タプルはデータ配列のサブ配列であり、同じデータ型のコンポーネント データを格納するために使用されます。タプルのコンポーネントの数 (NumberOfComponents) をタプルのサイズと呼びます。たとえば、ポイント、ベクトル、法線ベクトルなどの属性データのタプル サイズは 3 ですが、テンソル属性データのタプル サイズは 9 (つまり、3*3 行列) です。スカラー属性データは、タプルのサイズ。必須です。

データオブジェクトの表現:

  • vtkDataObject 内には vtkFieldData (フィールド データ) のインスタンスがあり、データの表現を担当します。フィールド データは、データ配列の配列とみなすことができます。配列内の各要素は配列です。配列の型、長さ、タプル サイズ、名前は異なっていてもかまいません。

要約する

ここに画像の説明を挿入します

Supongo que te gusta

Origin blog.csdn.net/m0_51141265/article/details/132721531
Recomendado
Clasificación