
概要 📖 – ライダー値を選び直す
Ouster Select TOPは、接続済みの Ouster TOP からセンサデータを再選択し、各チャンネルに割り当て直した点群イメージを出力する TOPです。センサとの接続自体は Ouster TOP が担い、こちらは参照先を指定して X / Y / Z 座標、Range、Reflectivity、Signal Photons、Near IR などのセンサ値を R / G / B / A の各チャンネルに自由に割り当て直す役割を持ちます。1 台のセンサ接続から用途の異なる複数の画像を取り出せます。
主な用途 🎯
- 既存 Ouster TOP からセンサ値を再選択した別画像の生成
- X / Y / Z 座標を RGBA 各チャンネルへ割り当て直した点群イメージ作成
- Range / Reflectivity / Signal Photons / Near IR の用途別テクスチャ化
- 1 台のセンサ接続から複数の値マッピング画像を同時に取り出す分岐
- センサへ再接続せず軽量にチャンネル構成を切り替える後段処理
データフロー 🔄
入力: 接続済み Ouster TOP (点群データ保持)
↓
参照する Ouster TOP を指定
↓
R / G / B / A 各チャンネルに割り当てるセンサ値を選択
↓
出力: 選び直したセンサ値が各チャンネルに入った 2D 点群イメージ
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
Ouster Page 🛰️
参照ソース 🔗
値を選び直す元となる Ouster TOP の指定
Ouster TOP .oustertop 📡Ouster TOP (参照 Ouster TOP) — センサからデータを受信している Ouster TOP へのパス指定。ここで指定した TOP が保持する点群データから値を選び直します。
Red .redchannel 🔴
Red (赤チャンネル) — 出力画像の R チャンネルに割り当てるセンサデータ
| 項目 | 内部名 | 説明 |
|---|---|---|
| X | .x |
ライダー座標 X (横方向, メートル単位) |
| Y | .y |
ライダー座標 Y (奥行き方向) |
| Z | .z |
ライダー座標 Z (高さ方向) |
| Range | .range |
1st リターンのレンジ (センサからの距離, メートル) |
| Range 2 | .range2 |
2nd リターンのレンジ (Dual Return 時のみ有効) |
| Signal Photons | .signal |
1st リターンの信号光子数 (受光強度) |
| Signal Photons 2 | .signal2 |
2nd リターンの信号光子数 (Dual Return 時) |
| Reflectivity | .reflectivity |
1st リターンの反射率 (キャリブレーション済み) |
| Reflectivity 2 | .reflectivity2 |
2nd リターンの反射率 (Dual Return 時) |
| Near IR Photons | .nir |
近赤外背景光の光子数 (環境光の参考値) |
| Flags | .flags |
1st リターンの状態フラグ (ビット情報) |
| Flags 2 | .flags2 |
2nd リターンの状態フラグ |
| Constant 1 | .one |
定数 1 を出力 (チャンネルを使わないとき) |
| Constant 0 | .zero |
定数 0 を出力 |
Green .greenchannel 🟢
Green (緑チャンネル) — 出力画像の G チャンネルに割り当てるセンサデータ
| 項目 | 内部名 | 説明 |
|---|---|---|
| X | .x |
ライダー座標 X (横方向, メートル単位) |
| Y | .y |
ライダー座標 Y (奥行き方向) |
| Z | .z |
ライダー座標 Z (高さ方向) |
| Range | .range |
1st リターンのレンジ (センサからの距離, メートル) |
| Range 2 | .range2 |
2nd リターンのレンジ (Dual Return 時のみ有効) |
| Signal Photons | .signal |
1st リターンの信号光子数 (受光強度) |
| Signal Photons 2 | .signal2 |
2nd リターンの信号光子数 (Dual Return 時) |
| Reflectivity | .reflectivity |
1st リターンの反射率 (キャリブレーション済み) |
| Reflectivity 2 | .reflectivity2 |
2nd リターンの反射率 (Dual Return 時) |
| Near IR Photons | .nir |
近赤外背景光の光子数 (環境光の参考値) |
| Flags | .flags |
1st リターンの状態フラグ (ビット情報) |
| Flags 2 | .flags2 |
2nd リターンの状態フラグ |
| Constant 1 | .one |
定数 1 を出力 (チャンネルを使わないとき) |
| Constant 0 | .zero |
定数 0 を出力 |
Blue .bluechannel 🔵
Blue (青チャンネル) — 出力画像の B チャンネルに割り当てるセンサデータ
| 項目 | 内部名 | 説明 |
|---|---|---|
| X | .x |
ライダー座標 X (横方向, メートル単位) |
| Y | .y |
ライダー座標 Y (奥行き方向) |
| Z | .z |
ライダー座標 Z (高さ方向) |
| Range | .range |
1st リターンのレンジ (センサからの距離, メートル) |
| Range 2 | .range2 |
2nd リターンのレンジ (Dual Return 時のみ有効) |
| Signal Photons | .signal |
1st リターンの信号光子数 (受光強度) |
| Signal Photons 2 | .signal2 |
2nd リターンの信号光子数 (Dual Return 時) |
| Reflectivity | .reflectivity |
1st リターンの反射率 (キャリブレーション済み) |
| Reflectivity 2 | .reflectivity2 |
2nd リターンの反射率 (Dual Return 時) |
| Near IR Photons | .nir |
近赤外背景光の光子数 (環境光の参考値) |
| Flags | .flags |
1st リターンの状態フラグ (ビット情報) |
| Flags 2 | .flags2 |
2nd リターンの状態フラグ |
| Constant 1 | .one |
定数 1 を出力 (チャンネルを使わないとき) |
| Constant 0 | .zero |
定数 0 を出力 |
Alpha .alphachannel ⚪
Alpha (アルファチャンネル) — 出力画像の A チャンネルに割り当てるセンサデータ
| 項目 | 内部名 | 説明 |
|---|---|---|
| X | .x |
ライダー座標 X (横方向, メートル単位) |
| Y | .y |
ライダー座標 Y (奥行き方向) |
| Z | .z |
ライダー座標 Z (高さ方向) |
| Range | .range |
1st リターンのレンジ (センサからの距離, メートル) |
| Range 2 | .range2 |
2nd リターンのレンジ (Dual Return 時のみ有効) |
| Signal Photons | .signal |
1st リターンの信号光子数 (受光強度) |
| Signal Photons 2 | .signal2 |
2nd リターンの信号光子数 (Dual Return 時) |
| Reflectivity | .reflectivity |
1st リターンの反射率 (キャリブレーション済み) |
| Reflectivity 2 | .reflectivity2 |
2nd リターンの反射率 (Dual Return 時) |
| Near IR Photons | .nir |
近赤外背景光の光子数 (環境光の参考値) |
| Flags | .flags |
1st リターンの状態フラグ (ビット情報) |
| Flags 2 | .flags2 |
2nd リターンの状態フラグ |
| Constant 1 | .one |
定数 1 を出力 (チャンネルを使わないとき) |
| Constant 0 | .zero |
定数 0 を出力 |
Common Page 🔧
Output Resolution .outputresolution 🖼️
出力解像度の決定方式
| 項目 | 内部名 | 説明 |
|---|---|---|
| Use Input | .useinput |
入力 TOP の解像度をそのまま継承 |
| Eighth | .eighth |
入力解像度の 1/8 |
| Quarter | .quarter |
入力解像度の 1/4 |
| Half | .half |
入力解像度の 1/2 |
| 2X | .2x |
入力解像度の 2 倍 |
| 4X | .4x |
入力解像度の 4 倍 |
| 8X | .8x |
入力解像度の 8 倍 |
| Fit Resolution | .fit |
指定解像度に縦横比を保持して収める |
| Limit Resolution | .limit |
指定解像度を上限としてクランプ |
| Custom Resolution | .custom |
Resolution パラメータで任意指定 |
Resolution .resolution 📐
カスタム解像度の幅・高さ指定 (Output Resolution = Custom 等の時のみ有効):
- Resolution W: 出力幅 (ピクセル単位)。
Output ResolutionがCustom Resolution/Fit Resolution/Limit Resolutionの時に有効 - Resolution H: 出力高 (ピクセル単位)。同上
Resolution Menu .resmenu 📋
よく使う解像度プリセットのドロップダウン:
- Resolution Menu: NTSC / PAL / HDTV 720 / HDTV 1080 / 4K UHD 等のプリセットから選択すると
Resolution W/Resolution Hが自動セットされる
Use Global Res Multiplier .resmult 🔢
プロジェクト全体の解像度倍率の適用:
- Use Global Res Multiplier: Project Settings の Global Resolution Multiplier をこの TOP に適用するかどうか。プロトタイプを低解像度で動かしつつ最終出力で一括フル解像度化する運用に便利
Output Aspect .outputaspect 📏
出力アスペクト比の決定方式
| 項目 | 内部名 | 説明 |
|---|---|---|
| Use Input | .useinput |
入力 TOP のアスペクトを継承 (伝播事故の元、非推奨) |
| Resolution | .resolution |
解像度から自動導出 (推奨デフォルト) |
| Custom Aspect | .custom |
Aspect1 / Aspect2 で手動指定 |
Aspect .aspect 📐
カスタムアスペクト比の指定 (Output Aspect = Custom Aspect の時のみ有効):
- Aspect1: 横方向アスペクト値 (
Output Aspect= Custom Aspect の時のみ有効) - Aspect2: 縦方向アスペクト値 (同上)
Input Smoothness .inputfiltertype 🎚️
入力テクスチャのサンプリング方式
| 項目 | 内部名 | 説明 |
|---|---|---|
| Nearest Pixel | .nearest |
最近傍ピクセルサンプリング (ピクセルアート向け、ジャギーが残る) |
| Interpolate Pixels | .linear |
バイリニア補間 (滑らか、デフォルト) |
| Mipmap Pixels | .mipmap |
ミップマップ補間 (縮小時のモアレ抑制、わずかにコスト高) |
Fill Viewer .fillmode 🖥️
ビューア内でのテクスチャの収め方
| 項目 | 内部名 | 説明 |
|---|---|---|
| Use Input | .useinput |
入力 TOP の Fill Viewer 設定を継承 |
| Fill | .fill |
ビューアいっぱいに引き伸ばす (アスペクト無視) |
| Fit Horizontal | .width |
横幅に合わせて収める (上下に余白) |
| Fit Vertical | .height |
縦幅に合わせて収める (左右に余白) |
| Fit Best | .best |
アスペクト保持で内側に収まる最大サイズ |
| Fit Outside | .outside |
アスペクト保持で外側まで覆う最小サイズ (はみ出しあり) |
| Native Resolution | .nativeres |
テクスチャのネイティブ解像度のまま等倍表示 |
Viewer Smoothness .filtertype 🎛️
ビューア表示時のサンプリング方式
| 項目 | 内部名 | 説明 |
|---|---|---|
| Nearest Pixel | .nearest |
最近傍ピクセルサンプリング (ピクセル単位での確認向け) |
| Interpolate Pixels | .linear |
バイリニア補間 (滑らか、デフォルト) |
| Mipmap Pixels | .mipmap |
ミップマップ補間 (縮小ビュー時のモアレ抑制) |
Passes .npasses 🔁
オペレータの反復実行回数:
- Passes: TOP の処理を何パス繰り返すかの整数値。前回パスの結果が次回パスの入力になる。ブラー反復やフィードバック処理に利用
Channel Mask .chanmask 🎨
処理対象のチャンネルマスク (R/G/B/A 個別トグル):
- Channel Mask:
R/G/B/A各チャンネルのオン/オフトグル。オフのチャンネルは TOP の処理を受けず入力値がそのまま通過
Pixel Format .format 🎨
出力テクスチャのピクセルフォーマット (ビット深度・チャンネル構成)
| 項目 | 内部名 | 説明 |
|---|---|---|
| Use Input | .useinput |
入力 TOP のフォーマットを継承 |
| 8-bit fixed (RGBA) | .rgba8fixed |
標準 8 ビット固定小数 RGBA (デフォルト、軽量) |
| sRGB 8-bit fixed (RGBA) | .srgba8fixed |
sRGB ガンマ補正済 8 ビット RGBA |
| 16-bit float (RGBA) | .rgba16float |
16 ビット浮動小数 RGBA (HDR・中間処理向け) |
| 32-bit float (RGBA) | .rgba32float |
32 ビット浮動小数 RGBA (最高精度、メモリ大) |
| 10-bit RGB with 2-bit Alpha | .rgb10a2fixed |
10-10-10-2 ビット固定小数 (バンディング抑制) |
| 16-bit fixed (RGBA) | .rgba16fixed |
16 ビット固定小数 RGBA |
| 11-bit float (RGB) | .rgb11float |
11-11-10 ビット浮動小数 RGB (アルファなし、HDR 軽量) |
| 16-bit float (RGB) | .rgb16float |
16 ビット浮動小数 RGB (アルファなし) |
| 32-bit float (RGB) | .rgb32float |
32 ビット浮動小数 RGB (アルファなし) |
| 8-bit fixed (Mono) | .mono8fixed |
8 ビット固定小数モノクロ |
| 16-bit fixed (Mono) | .mono16fixed |
16 ビット固定小数モノクロ |
| 16-bit float (Mono) | .mono16float |
16 ビット浮動小数モノクロ |
| 32-bit float (Mono) | .mono32float |
32 ビット浮動小数モノクロ |
| 8-bit fixed (RG) | .rg8fixed |
8 ビット固定小数 R+G 2 チャンネル |
| 16-bit fixed (RG) | .rg16fixed |
16 ビット固定小数 R+G |
| 16-bit float (RG) | .rg16float |
16 ビット浮動小数 R+G |
| 32-bit float (RG) | .rg32float |
32 ビット浮動小数 R+G |
| 8-bit fixed (A) | .a8fixed |
8 ビット固定小数アルファ単体 |
| 16-bit fixed (A) | .a16fixed |
16 ビット固定小数アルファ単体 |
| 16-bit float (A) | .a16float |
16 ビット浮動小数アルファ単体 |
| 32-bit float (A) | .a32float |
32 ビット浮動小数アルファ単体 |
| 8-bit fixed (Mono+Alpha) | .monoalpha8fixed |
8 ビット固定小数モノクロ+アルファ |
| 16-bit fixed (Mono+Alpha) | .monoalpha16fixed |
16 ビット固定小数モノクロ+アルファ |
| 16-bit float (Mono+Alpha) | .monoalpha16float |
16 ビット浮動小数モノクロ+アルファ |
| 32-bit float (Mono+Alpha) | .monoalpha32float |
32 ビット浮動小数モノクロ+アルファ |
実践アイデア 💡
Example 1: 座標を選び直す 🎯
Ouster TOP (Active=on) → Ouster Select TOP (R=X, G=Y, B=Z) → TOP to CHOP
既にセンサに接続済みの Ouster TOP を参照し、Ouster Select TOP で X / Y / Z 座標を R / G / B チャンネルに割り当て直して点群イメージを取り出す最小構成のフロー。元の TOP のチャンネル構成を変えずに別マッピングを得たいときの基本形。
- センサに接続済みの Ouster TOP を用意 (例:
ousterTOP1) - Ouster Select TOP を作成し
Ouster TOPパラメータにousterTOP1のパスを指定 Red=X,Green=Y,Blue=Zを選択- Common Page の
Pixel Formatを32-bit float (RGBA)にして座標値の範囲を保持 - TOP to CHOP で実数値を確認
Example 2: 用途別に画像を分岐 🔀
Ouster TOP → Ouster Select TOP A (座標用) / Ouster Select TOP B (反射率・レンジ用)
1 台のセンサ接続から、座標計算用の画像と可視化用の画像を同時に取り出す分岐構成。Ouster Select TOP を 2 つ並べ、それぞれ異なるセンサ値を割り当てることで、再接続せず軽量に複数の値マッピングを得られる。
- 接続済み Ouster TOP を 2 つの Ouster Select TOP から同時に参照
- 1 つ目は
Red=X/Green=Y/Blue=Zで座標画像 - 2 つ目は
Red=Reflectivity/Green=Range/Blue=Near IR Photonsで可視化用画像 - 座標画像は Point Transform TOP で空間調整、可視化用は Analyze TOP で統計化
Example 3: 反射率で点を抽出 ✨
Ouster TOP → Ouster Select TOP (R=Reflectivity, A=Range) → GLSL TOP → Analyze TOP
反射率を R チャンネル、レンジを A チャンネルに割り当て直し、後段の GLSL TOP で反射率がしきい値を超えた点だけを抽出する応用例。反射板やマーカーの検出に使える。
- Ouster Select TOP の
Red=Reflectivity,Alpha=Rangeを選択 - GLSL TOP で R チャンネルのしきい値判定を実装し高反射点をマスク化
- Analyze TOP で抽出点の数を集計してイベントトリガー化
関連オペレータ 🔗
類似機能OP 🔍
- Ouster TOP — Ouster センサとの接続本体。Select はその出力から値を選び直す後段
- Kinect Azure Select TOP — Kinect Azure TOP から特定データを選び直す同型の選択 TOP
- OAK Select TOP — OAK センサ TOP からデータを選び直す同型の選択 TOP
- Orbbec Select TOP — Orbbec センサ TOP からデータを選び直す同型の選択 TOP
組み合わせ推奨OP 🔄
- TOP to CHOP — 選び直した点群イメージを CHOP として読み出し制御信号化
- Point Transform TOP — 座標を割り当てた画像を回転・並進・スケールで空間調整
- Analyze TOP — 選んだ値の平均・最大・有効点数等を 1 ピクセルに集約
- GLSL TOP — 選び直した値をシェーダで処理 (しきい値抽出・クラスタリング等)
- Render TOP — 座標画像を 3D 点群としてレンダリング
前処理・後処理TOP 🎯
Info情報 📊
Ouster Select TOP は Info CHOP による出力テクスチャのメタ情報取得に対応しています。標準 TOP メタチャンネル (resolution_w / resolution_h / num_components / gpu_mem_used) が取得でき、参照元の Ouster TOP の解像度がそのまま継承されます。
TOP固有情報 🖼️
resx: TOP の出力解像度 X (ピクセル単位)resy: TOP の出力解像度 Y (ピクセル単位)aspectx: アスペクト比 Xaspecty: アスペクト比 Ydepth: 3D テクスチャ / テクスチャ配列の深度 (2D テクスチャでは 1)gpu_memory_used: TOP が消費している GPU メモリ量 (MB 単位)
汎用オペレータ情報 🔄
total_cooks: プロセス開始からのクック回数cook_time: 最後のクック時間 (ミリ秒)cook_frame: 最後にクックされたフレーム番号warnings: 警告数errors: エラー数
TOP 共通情報 🖼️
resolution_w: 出力テクスチャの幅 (参照元 Ouster TOP の Scan Mode に依存、例: 1024)resolution_h: 出力テクスチャの高さ (センサのレーザ本数、例: OS1-64 なら 64)num_components: チャンネル数 (R/G/B/A 構成で 4)gpu_mem_used: GPU メモリ使用量 (バイト単位)
トラブルシューティング ⚠️
よくある問題と解決策 🔧
❌ Problem: 出力画像が空 / 真っ黒で値が読めない
✅ Solution:
Ouster TOPパラメータに有効な参照先パスが指定されているか確認 (参照元が未接続だと値は来ない)- Common Page の
Pixel Formatを32-bit float (RGBA)に上げる (8 bit では座標値・レンジ値の範囲を保持できない) Red/Green/Blue/AlphaがConstant 0のままになっていないか確認- TOP to CHOP で実数値を CHOP として確認 (ビューア表示は normalize されていない素の値)
❌ Problem: 参照元と同じ画像にならない / 値がずれる
✅ Solution:
- 参照元 Ouster TOP 側のチャンネル割り当てと混同していないか確認 (Select 側の選択が優先される)
- Dual Return 系の値 (
Range 2/Reflectivity 2等) は参照元センサが Dual Return モードでないと無効 - 参照元の解像度が変わると Select の出力解像度も追従するため、Common Page の
Output Resolution設定を確認
❌ Problem: Ouster TOP を増やすと処理が重くなる
✅ Solution:
- Ouster Select TOP は再接続せず参照のみのため、複数値マッピングが必要なら Ouster TOP を増やさず Select を分岐させる
- 不要な高ビットフォーマットを避ける (可視化のみなら
16-bit float (RGBA)で十分な場合がある) - 後段で Crop TOP や解像度縮小を入れて GPU 負荷を抑える
参考資料 📚
その他 🔗
- TouchDesigner Wiki — Category:TOPs
- TouchDesigner Wiki — Pixel Formats 解説
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group

