概要
Render Pick DAT は、3D レンダリングの任意のピクセルで 3D サーフェスに関する情報を取得し、3D レンダリングされたシーンにマルチタッチを実装することを可能にします。レンダリング(レンダートップまたはレンダーパストップから)をサンプリングし、指定されたピック位置のジオメトリから3D情報を返します。
select、u、vの3列以上のDATをフィードします。Multi TouchIn DAT は通常、Render Pick DATに接続され、Multi Touch In DAT は Render TOP の出力を表示しているコンテナを指します。
複数のカメラから同時にピックすることができます。Render TOPにリストされている最初のカメラ以外のビューからピックを行うカメラを指定することができます。列の値は、Camera COMPへのパス(Render Pick DATからの相対パス、または絶対パス)、または0から始まる整数のインデックスのいずれかです。 インデックスの場合、レンダーTOPに複数のカメラがリストされている場合、または’Custom Pick Camera(s)’パラメータにリストされているカメラがある場合、使用するカメラが選択されます。これは、様々なマルチカメラレンダリングの設定や、VRのようにピッキングがアイカメラの視点からではなく、ハンドコントローラの視点から行われる場合に便利です。
ピック位置は、レンダーピックDAT入力に接続するテーブルに配置されたu、v(水平、垂直)座標です。 入力テーブルの各行は、サンプリングされる1つの選択ポイントを表します。ただし、列見出しselect、u、v(およびその他の未使用の列)を含む最初の行は除きます。 select、u、v列は、PanelCHOPから取得するものです。 レンダーのアスペクト比に関係なく、uとvの値は左から右、下から上に0対1になります。
Strategy が Always の場合、その u,v の位置は常にサンプリングされ、その結果は Render Pick DAT 出力の対応する行に表示されます。
出力テーブルには、ピックされたジオメトリのパス、その位置(任意の参照フレーム内)、サーフェス法線(バンプマッピングを除く)、カメラからの距離、テクスチャUV座標、カラー、アルファ、インスタンスIDが表示されます。これにより、変形する頂点を持つサーフェスが適切にピックされます。
以下にいくつかの例があります。
- パレットの中の geoPanel。
- パレットのTechniquesの下のmultiTouch。
- Render Pick DAT サンプル
Render Pick CHOPの章も参照してください。
パラメータ – Render Pick ページ
Strategy / strategy
ピックのインタラクションに基づいて値を更新するタイミングを設定します。
- While Select / select
選択/ピックされているときに値を継続的に更新します。
- Hold First Picked / holdfirst
ジオメトリがピックされたときに最初に返された値を保持します。
- Hold Last Picked / holdlast
ジオメトリがピックされたときに最後に返された値を保持します。これは、ピックが空の空間のサンプリングを開始した場合(シーンのその部分にジオメトリが存在しない場合)に、ジオメトリでピックされた最後の値を保持するという点で、Continuous ストラテジーとは異なります。別の方法として、Continuous ストラテジーを使用すると、ピックが空の空間のサンプリングを開始した場合、値はゼロにクリアされます。
- Always / always
選んだ場所の値を継続的に更新します。
Clear Previous Pick on New Pick / clearprev
このパラメータは、ストラテジーがHold Last Pickedに設定されている場合にのみ有効になります。このパラメータがonの場合、空のスペースで新しいピックを開始すると、値はクリアされます。オフの場合、空のスペースでピックを開始すると、最後の値が保持されます。
Response Time / responsetime
値が更新されるタイミングを設定します。
- Next Cook (Faster) / nextcook
値は現在のフレームでキャプチャされ、次のフレームで更新されます。結果は前のフレームのものですが、cookタイムははるかに速くなります。
- This Cook (Slower) / thiscook
値は現在のフレームでキャプチャされ、更新されます。
Pick Radius / pickradius
ピックの検索領域の半径を設定します。ピックの中心に何も見つからない場合は、ピック半径で定義された検索領域内のジオメトリを検索し続けます。
Pick Radial Step / pickradstep
探索領域内の探索を減らすために使用されます。探索領域は、中心のピックポイントから外側の スポーク に対応する位置でサンプリングされます。
Pick Circular Step / pickcirstep
探索領域内での探索を減らすために使用します。探索領域は、中心のピックポイントから外側の リング に対応する位置でサンプリングされます。
Render/RenderPass TOP / rendertop
どのシーンをピックするか、どのカメラからピックするかを指定します。デフォルトでは、Render TOPに表示されている最初のカメラがピックに使用されます。Custom Pick Camera(s) パラメータで別のカメラを指定したり、camera inputの列を使って複数のカメラを選択することができます。
Custom Pick Camera(s) / custompickcameras
ここに1つ以上のカメラCOMPを指定することで、カスタムカメラのビューポートからピックすることができます。このパラメータが空白の場合、レンダーTOPのカメラが使用されます。複数の異なるカメラの視点からピックするには、入力DATにカメラ列を指定する必要があります。
Allow Multi-Camera Rendering / allowmulticamera
マルチカメラレンダリングは、複数のパスを同時にレンダリングするための高速な方法です。この機能は、088バージョンで作られた古いGLSL MATでは正しく動作しない場合があります。一般的にはオンのままにしておくべきです。
Use Pickable Flags / usepickableflags
onにすると、Render Pick DAT で Pickable Flag がオンになっているジオメトリのみが選択できるようになります。Pickable FlagはすべてのObjectコンポーネントにあります。
Include Non-Pickable Objects / includenonpickable
ピッキングアルゴリズムの中に非ピッキングオブジェクトを含め、非ピッキングオブジェクトがピッキング可能なオブジェクトの背後に隠れてしまう可能性があるようにします。例えば、シーン内にピッキング可能なオブジェクトが1つしかなく、追加の非ピッキングのジオメトリが多数存在する場合、このパラメータをオンにすると、ピッキング可能なオブジェクトが非ピッキングのオブジェクトの後ろにある場合(非ピッキングのオブジェクトによって隠されている場合)には、ピッキング可能なオブジェクトが選択されないようになります。
Merge Input DAT / mergeinputdat
入力テーブルをRender Pick DATsの列に追加します。
Activate Callbacks / activatecallbacks
各ピックイベントのCallback DATを有効にします。
Callbacks DAT / callbacks
受信したピックイベントのコールバックを含める DAT のパスを設定します。
パラメータ – Options ページ
Fetch Position / position
ジオメトリ上でピックされた点の位置を返します。 tx, ty, tz列。
- In SOP Space / sopspace
SOP変換空間内でピックされた点の位置を返します。
- In World Space / worldspace
ワールドトランスフォーム空間でピックした点の位置を返します。
- In Camera Space / cameraspace
カメラ変換空間でピックした点の位置を返します。
- Relative to Object / relativetoobj
Reference Object パラメータで設定したオブジェクトに対するピックした点の相対位置を返します。
Fetch Normal / normal
ジオメトリ上でピックされた点の法線を返します。nx, ny, nz列。
- In SOP Space / sopspace
SOP変換空間で選択された点の法線を返します。
- In World Space / worldspace
ワールドトランスフォーム空間で選択した点の法線を返します。
- In Camera Space / cameraspace
カメラ変換空間でピックした点の法線を返します。
- Relative to Object / relativetoobj
Reference Objectパラメータで指定されたオブジェクトに対して相対的にピックされた点の法線を返します。
Reference Object / referenceobj
Relative to Objectで位置や法線を取得する際に参照するオブジェクトを設定します。
Fetch Point Color / color
ジオメトリ上でピックした点の色を返します。cr, cg, cb, ca列。
Fetch Texture UV / uv
ジオメトリ上でピックした点のテクスチャ座標を返します。mapu, mapv, mapw列。
Fetch Depth / depth
Depth Buffer関数は、ジオメトリ上でピックされた点の深度を返します。この値は、Depth Buffer の近傍平面と遠方平面の間の点の位置の非線形比です。列はdepthです。
Fetch Instance ID / instanceid
オブジェクトのインスタンスIDを返します。インスタンスがオフの場合は常に0になります。r列はinstanceです。
Custom Attrib 1 / customattrib1
オブジェクトから返すカスタム属性を指定します。
Custom Attrib 1 Type / customattrib1type
このメニューから属性の種類を選択します。
Custom Attrib 2 / customattrib2
オブジェクトから返すカスタム属性を指定します。
Custom Attrib 2 Type / customattrib2type
このメニューから属性の種類を選択します。
Custom Attrib 3 / customattrib3
オブジェクトから返すカスタム属性を指定します。
Custom Attrib 3 Type / customattrib3type
このメニューから属性の種類を選択します。
Custom Attrib 4 / customattrib4
オブジェクトから返すカスタム属性を指定します。
Custom Attrib 4 Type / customattrib4type
このメニューから属性の種類を選択します。
パラメータ – Common ページ
参照:共通 Common ページ