3Dピクチャ制御器を使用する



LabVIEW 2018ヘルプ


発行年月: 2018年3月
製品番号: 371361R-0112
製品情報を参照

ダウンロード (Windowsのみ)


LabVIEW 2015ヘルプ
LabVIEW 2016ヘルプ
LabVIEW 2017ヘルプ
LabVIEW 2018ヘルプ
LabVIEW 2019ヘルプ

3Dピクチャ制御器では、3Dシーンのオブジェクトがグラフィカルに表示されます。3Dシーンとは、3Dピクチャ制御器または別のシーンウィンドウで参照できる3Dオブジェクトまたは3Dオブジェクトの集合体のことです。3Dシーンを設計する際、複数の3Dオブジェクトを生成し、オブジェクトの方向外観、および3Dシーンにおけるその他のオブジェクトとの関係を指定することができます。光源のスタイルと位置、および3Dシーンとユーザ制御されたカメラの相互動作方法など、3Dシーンの特性を設定することができます。

以下の画像は単純な3Dシーンを含む3Dピクチャ制御器を示します。

3Dオブジェクトを作成する

3Dシーンに表示されるオブジェクトは、物理オブジェクトのグラフィック表示です。3Dオブジェクトは、3D空間に存在する一連の頂点で、頂点がつながっている場合と、つながっていない場合があります。3Dシーンを作成する場合、1つまたは複数の3Dオブジェクトを作成して3Dシーンを構成します。「オブジェクトを作成」VIを使用して、3Dオブジェクトを作成します。

3Dオブジェクトの作成後には、3Dシーンでそのオブジェクトの表示方法を定義する必要があります。3Dオブジェクトには、以下の描画可能な属性を設定できます。

  • ジオメトリ―ジオメトリは3Dオブジェクトの形状を指定します。「立方体を作成」および「球を作成などのジオメトリVIは、単純なジオメトリオブジェクトの表示を定義します。また、メッシュは、複雑な3Dオブジェクトをより幾何学的に作成することができます。
  • テキスト―オブジェクトに定義されたジオメトリがない場合、そのオブジェクトにテキストを適用するとテキストオブジェクトを作成できます。定義されたジオメトリを持つオブジェクトのように、3Dシーンをレンダリングすると、このテキストが表示されます。「テキストを作成」VIは、新規テキストの作成、および色やフォントなどのテキストの属性のオプション設定を行います。また、シーンテキストプロパティおよびシーンテキストメソッドで、テキストの属性を構成することもできます。

LabVIEWではデフォルトのサイズと色で新規オブジェクトを描画し、3Dシーンの中心でそのオブジェクトを表示します。ただし、変換およびテクスチャを使用すると、3Dシーンの3Dオブジェクトのサイズ、方向、位置、または曲面上の外観を変更できます。また、ペーンオブジェクトプロパティとシーンオブジェクトメソッドで、3Dプロジェクトを構成することもできます。

メモ  テクスチャをテキストオブジェクトに適用することはできません。

変換を適用する

変換は、数学的法則に従って3Dオブジェクトの方向または外観を変換します。変換VIを使用して、3Dシーンにおけるオブジェクトのサイズ、方向、位置を変更します。以下の3つの標準の変換を3Dオブジェクトに適用することができます。

  • 平行移動―3Dオブジェクトを平行移動し、そのオブジェクトを3Dシーンの新しい位置へ移動します。3Dオブジェクトの新しい位置を指定するには、オブジェクトを平行移動するベクトルを定義します。
  • 回転―3Dオブジェクトを回転すると、3Dオブジェクトの方向が変更されます。3Dオブジェクトの新規方向を指定するには、オブジェクトが回転する軸、および回転が発生する軸を中心とした角度を定義します。
  • スケール―3Dオブジェクトをスケールすると、3Dオブジェクトのサイズが変更されます。3Dオブジェクトの新規スケールを指定するには、オブジェクトのサイズを変更したい3Dシーンのxyz面の要素を設定します。
メモ  3Dオブジェクトが歪むことを避けるために、オブジェクトをクリップ面の外側までスケールすることは避けてください。前方クリップ面The default value of the near clipping plane, which defines the plane nearest the viewer, is 0 units.前方クリップ面は見る人から最も遠いクリップ面のことで、そのデフォルト値は10000単位です。クリップ面の値をプログラム的に設定するには、プロジェクション:透視メソッドを使用できます。

各変換において、オブジェクトの初期位置から3Dオブジェクトを変換する絶対的な変換、またはオブジェクトの現在位置から3Dオブジェクトを変換する相対的な変換を実行することができます。たとえば、「平行移動を設定」VIを使用して、3Dオブジェクトを絶対的に変換します。たとえば、「オブジェクトを平行移動」VIを使用して、3Dオブジェクトを相対的に変換します。

3Dオブジェクトに変換を適用する例については、labview\examples\Graphics and Sound\3D Picture ControlディレクトリのOrder of Transformations VIを参照してください。

テクスチャを適用する

3Dオブジェクトの周辺を2D画像で包むことで、3Dオブジェクトの曲面上の外観を変更することができます。このプロセスはテクスチャを適用すると言われます。たとえば、単なる球に惑星の曲面のような2次元画像をテクスチャとして適用することによって、惑星のように見せることがきます。惑星曲面の画像はテクスチャです。特殊:テクスチャ処理を使用して、テクスチャ処理を適用する各3Dオブジェクトに対してテクスチャを有効にします。次に、「テクスチャ」VIを使用して、新規のテクスチャを作成します。シーンテクスチャプロパティおよびシーンテクスチャメソッドを使用して、テクスチャを構成します。

3Dオブジェクトにテクスチャを適用するサンプルについては、labview\examples\Graphics and Sound\3D Picture Controlディレクトリの3D Model of Solar System VIを参照してください。

3Dオブジェクト間の関係を作成する

3Dシーンでは、オブジェクト間の関係を作成できます。オブジェクトは親または子のどちらかで動作します。変更を親オブジェクトに適用する場合、子オブジェクトにはこれらの変更が反映されます。大きな3Dシーンでオブジェクトの関係を使用し、関連の移動に伴う3Dシーンにより効率的にプログラムを行います。たとえば、太陽系のレプリカでは、地球の回転速度の変更は月の回転速度に影響します。この場合、両方のオブジェクトの変換を変更しなくて済むように月を地球の子として作成します。

3Dオブジェクト間の関係を作成するサンプルについては、labview\examples\Graphics and Sound\3D Picture Controlディレクトリの3D Model of Solar System VIを参照してください。

光源を構成する

LabVIEWでは、3Dシーンを光源の設定付きまたは設定なしでレンダリングできます。光源を構成して、表示可能な3Dシーンで太陽光やスポットライトなどの視覚的効果を実現することができます。3Dシーンでは、3つのタイプの光源(無限遠光源、位置指定光源、スポットライト)を作成することができます。新しい光源を作成するには、「新規の光」VIを使用します。また、シーンの光プロパティを使用して、色、減衰、輝度など、追加的な光の特性をプログラム的に構成することができます。

無限遠光源

無限遠光源で、太陽光の効果をシミュレートし、3Dシーンでオブジェクトから遠くに表示される光源を作成します。無限遠光源の位置は無限であるため、光の方向のみを定義します。方向プロパティを使用して、シーンの方向を構成します。

位置指定光源

光の特定の位置または基点を設定する場合は、位置指定光源を使用します。位置指定光源の場合、光源の位置に対してxyz座標、光の方向に対して座標を指定します。光の方向を指定するxyz座標は、所有するオブジェクトが座標0、0、0を指す、その光を所有するシーンのオブジェクトに相対します。たとえば、光源を3Dオブジェクトの下に直接位置付けたい場合、座標0、-1、0を使用して、光源の位置をオブジェクトの下の1のオブジェクト座標に設定することができます。最初のオブジェクトに対して0、-3、0に位置する別の3Dオブジェクトは位置指定光源の下に表示されます。また、光の方向が最初のオブジェクトに向いていると仮定すると、光源は2番目のオブジェクトに影響しません。

3Dシーンに位置指定光源を追加するには、オブジェクトRefnumおよび光Refnumを光:光を追加メソッドに配線することで3Dシーンのオブジェクトに光を追加します。これにより、オブジェクトで光を所有します。方向プロパティを使用して光の方向を構成し、位置プロパティを使用して光の位置を構成します。

スポットライト

光の位置と方向の両方を指定する場合、スポットライトを使用します。スポットライトは定義された方向と角度を持つ位置指定光源です。光を位置指定光源として設定しますが、カットオフプロパティを使用してスポットライトの角度を定義します。このプロパティに配線する値は、実際のスポットライトの角度の半分の値に等しくなります。たとえば、スポットライトが40度の角度の光を放つようにしたい場合、このプロパティを20に設定します。このプロパティには、0~90までの値と180の値を使用できます。ここで、180はカットオフなしを示します。

光源を構成するサンプルについては、labview\examples\Graphics and Sound\3D Picture ControlディレクトリのUsing Meshes VIを参照してください。

3Dシーンを表示する

3Dシーンと相互に交信する方法を設定するためにユーザ制御されたカメラを構成したり、3Dシーンを表示する別のシーンウィンドウを構成したり、ライブデータを表示するために3Dシーンが継続的に更新するように3Dシーンを構成することができます。

シーンカメラを操作する

3Dピクチャ制御器を右クリックし、ショートカットメニューからカメラコントローラを選択して、カメラと3Dシーンの相互動作を指定します。操作ツールは、3Dシーンについて移動するカメラとして動作します。また、シーングラフ表示プロパティまたはシーンウィンドウプロパティを使用して、シーンカメラをプログラム的に構成することができます。

シーンウィンドウを構成する

VIの実行時に3Dシーンを表示する別のシーンウィンドウを構成することができます。「ウィンドウを設定」VIを使用して、新規のシーンウィンドウを構成します。また、シーンウィンドウプロパティおよびシーンウィンドウメソッドを使用して、3Dシーンのプロジェクション、シーンウィンドウのサイズとアクティブ状態などの属性をプログラム的に構成することができます。

ライブデータ

ライブ(つまり連続的に更新する)3Dデータを表示するように、3Dシーンを継続的に更新するように構成することができます。3Dシーンをループで囲んで、以下のアプローチの1つを使用します。

  • (推奨)ループ内の3Dピクチャリファレンス上またはシーンを再描画したい場所で再描画メソッドを使用します。
  • シーンを更新したい場所に3Dピクチャ制御器端子またはローカル変数を配線します。

シーンカメラおよびシーンウィンドウを構成するサンプルについては、labview\examples\Graphics and Sound\3D Picture Controlディレクトリの3D Model of Solar System VIを参照してください。

3Dモデルにデータを表示する

フリーセンサとNI-DAQmxチャンネルを使用して3Dモデルに実環境データをマップできます。「センサマッピング」Express VIは、センサを構成ダイアログボックスで構成するセンサを表すデータ値の配列を配線します。たとえば、2つのチャンネルを含むNI-DAQmxタスクがあり、3Dモデルに2つのフリーセンサを配置する場合、LabVIEWはデータ値の入力をdaqsensor1daqsensor2freesensor1freesensor2と予想します。3Dモデルに最低1つのNI-DAQmxチャンネルを配置すると、LabVIEWはNI-DAQmxタスクの各チャンネルに対してデータスペースを割り当てます。NI-DAQmxチャンネルを使用する詳細については、『NI-DAQmxヘルプ』を参照してください。

メモ  「DAQアシスタント」Express VIでNI-DAQmxタスクを作成できます。ただし、「センサマッピング」Express VIは「DAQアシスタント」Express VIからチャンネルを回収することはできません。「センサマッピング」Express VIのセンサ値入力にデータを配線できます。センサを配置するには、3Dモデルを右クリックして3Dモデルにチャンネルをマップします。

Express VIのシーンRef出力に3Dピクチャ制御器を配線します。Express VIに配線したデータは3Dモデルに表示されます。3Dモデルに配置するセンサは、センサで表示するデータ値によってセンサのポイントで3Dモデルの色に影響します。



この記事は役に立ちましたか。

役に立たなかった