新規の3Dオブジェクトの曲面は、デフォルトでは固形で単色です。この外観を変更するには、3Dオブジェクトにテクスチャを適用する必要があります。テクスチャとは、3Dオブジェクトを囲む2D画像です。

使用するオブジェクト

3Dオブジェクト曲面の外観を変更するには、以下のブロックダイアグラムオブジェクトを使用します。

解決方法

3Dオブジェクトの外観をプログラム的に変更するには、以下のブロックダイアグラムを作成します。独自のプログラミング目的に応じて、灰色のセクションをカスタマイズします。



以下のリストには、前のダイアグラムについての重要な情報が記載されています。

外観を変更したい3Dオブジェクトのリファレンスを取得します。このリファレンスの取得方法はプログラミングの目的によって決まります。3Dオブジェクトリファレンスを取得する最も一般的な方法は、新しい3Dオブジェクトを作成することです。この例は、新しい3Dボックスを作成することにより、3Dオブジェクトリファレンスを取得します。
特殊:テクスチャ処理プロパティにより、3Dオブジェクトにテクスチャを付けることができます。特殊:テクスチャ処理プロパティをOnに設定しないと、3Dオブジェクトにテクスチャを適用することはできません。テクスチャを適用したいオブジェクトが別のオブジェクトの子の場合、特殊:テクスチャ処理プロパティをInherit Valueに設定して親オブジェクトのテクスチャ設定を継承します。
表示させたいテクスチャを定義するLabVIEW画像データを取得します。LabVIEW画像データを取得するには、以下のいずれかの方法を使用します。
  • JPGなどの標準的な形式の画像をLabVIEW画像データに変換するには、グラフィック形式パレットから適切な読み取りVIを使用します。
  • 既存の3Dオブジェクトの一部である画像にアクセスするには、3Dピクチャ制御器のプロパティまたはメソッドを使用します。
  • カスタム画像を定義するには、画像クラスタを作成します。
この例では、「JPGファイルを読み取る」VIを使用して、JPGファイルをLabVIEW画像データに変換します。
テクスチャVIはLabVIEW画像データをシーンテクスチャリファレンスに変換します。画像データをシーンテクスチャリファレンスに変換しなければならない理由は、シーンテクスチャのプロパティメソッドを操作して、3Dオブジェクトのテクスチャの見え方を変更するためです。
モードを適用プロパティは、テクスチャを3Dオブジェクトでどのように表示するかを指定します。テクスチャにモードを適用を設定しない場合、LabVIEWは画像データがオブジェクトの背景色と調和するWith Blendingをテクスチャに適用します。テクスチャに元の2D画像の彩色を残すには、モードを適用をAs a DecalまたはAs a replacement.に設定します。この例では、テクスチャのモードを適用プロパティを使用して、テクスチャ画像を元の色でデカルとして表示するように指定します。
テクスチャ:テクスチャを設定メソッドは、リファレンスされている3Dオブジェクトにテクスチャを割り当てます。
新規の3Dオブジェクトを表示または操作するには、シーンオブジェクトリファレンスを使用します。このリファレンスを使用して、以下の目的を達成することができます。
  • 3Dオブジェクトを表示する―フロントパネルから3Dピクチャ制御器を作成し、リファレンスを関連付けられたブロックダイアグラム端子に配線します。
  • 3Dオブジェクトのサイズと位置を制御する―リファレンスを変換VIの1つに配線します。
  • オブジェクトを複数オブジェクト3Dシーンに追加する―リファレンスを使用して、複数の3Dオブジェクトを含む3Dシーンを作成します
  • 3Dオブジェクトの他の属性を操作する―リファレンスをシーンオブジェクトのプロパティまたはメソッドに配線します。これらのプロパティとメソッドは、3Dオブジェクトの色、光源、テクスチャなどの属性および動作を制御します。
この例では、3Dオブジェクト制御器を使用することにより、テクスチャが適用されたオブジェクトを表示します。

ヒントとトラブルシューティング情報

  • より複雑なテクスチャを作成する方法。シーンテクスチャリファレンスのシーンテクスチャプロパティを使用して、フィルタモード垂直折り返しモードまたは水平折り返しモード、および変換などの他のテクスチャ設定をテクスチャに適用するように構成します。
  • テクスチャが予期せず、シーンの複数の3Dオブジェクトに表示される場合。テクスチャが3Dオブジェクト階層の親オブジェクトに適用された可能性があります。親3Dオブジェクトへの変更は、そのすべての子オブジェクトに適用されます。この問題を修正するには、テクスチャを親オブジェクトリファレンスではなく、子オブジェクトリファレンスに適用します。
  • テクスチャがまったく表示されない場合。特殊:テクスチャ処理プロパティは直接Onに設定するか、親からOn値を継承するかによってOn値に解決する必要があります。特殊.テクスチャ処理プロパティが適切な値に設定されていることを確認してください。
  • 3Dピクチャ制御器がフロントパネルでrefnumとして表示される場合。3Dピクチャ制御器は、ブロックダイアグラムの端子からではなく、フロントパネルから作成する必要があります。フロントパネルから3Dピクチャ制御器を作成した後で、リファレンスオブジェクトを表示するために、関連付けられたブロックダイアグラム端子をシーンオブジェクトリファレンスに配線してください。
  • フロントパネルの3Dピクチャ制御器と対話したくない場合。 カメラを構成して異なる視点から3Dシーンを表示する必要があります。
  • エラー入力端子とエラー出力端子を必ず配線するようにしてください。このトピックの例では、プログラミングロジックを強調するためにエラー処理を省略してありますが、エラー処理をすることによりデバッグとデータフロー制御を行うことができます。

サンプル

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

関連トピック