
概要 📖 – 点群データを画像化
Point File Select TOPは、Point File In TOP が読み込んだ点群データの中から任意のチャンネルを選び、画像の赤・緑・青・アルファに割り当てて出力する TOPです。Point File In TOP が読み込んだ点群ファイルには、位置 (XYZ)・法線・色・速度など複数のデータチャンネルが含まれます。Point File Select TOP は、それらのチャンネルの中から出力画像の R / G / B / A それぞれに載せるものを 1 つずつ選ぶことで、用途に応じた画像 (位置テクスチャ・法線マップ・係数マップ等) を作り出します。各出力チャンネルには One (常に 1) / Zero (常に 0) の固定値も選べるため、不要なチャンネルを埋めたりマスクを作ったりも可能です。
主な用途 🎯
- 点群ファイルの任意データチャンネルを画像の色に割り当て (位置・法線・色などを R/G/B/A へ自由配置)
- 点群の位置情報 (XYZ) をテクスチャ化して GPU インスタンシングの位置ソースに供給
- 点群の法線・速度などの属性を可視化 (デバッグ用に各属性を色として確認)
- 特定の 1 チャンネルだけを抜き出してマスク・係数テクスチャ化 (不要チャンネルは One / Zero で固定)
- 大規模点群データを GPU パイプラインへ受け渡し (Point File In TOP が読み込んだ生データを画像形式に整形)
データフロー 🔄
入力: Point File In TOP が読み込んだ点群データチャンネル群
↓
R / G / B / A の各出力チャンネルにどの点群チャンネルを載せるか選択 (One / Zero で固定値も可)
↓
出力: 選んだチャンネルを色に詰めた TOP 画像
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
Point File Select Page 📁
入力点群の参照 .pointfileintop 🔗
読み込み元となる Point File In TOP への参照:
- Point File In TOP:
pointfileintop(入力点群の参照) — 元の点群ファイルデータを保持する Point File In TOP へのパスを指定します。ここで参照した点群が持つデータチャンネルが、下の R / G / B / A の選択肢として表示されます。
色チャンネル割り当て .rgba 🎨
Red .red 🔴red (赤チャンネル) — 出力画像の Red チャンネルに載せる点群データチャンネルを、参照先の点群が持つチャンネルの中から 1 つ選びます。One を選ぶと常に 1、Zero を選ぶと常に 0 の固定値が Red に入ります。
Green .green 🟢green (緑チャンネル) — 出力画像の Green チャンネルに載せる点群データチャンネルを選びます。One / Zero を選ぶと、それぞれ固定値 1 / 0 が Green に入ります。
Blue .blue 🔵blue (青チャンネル) — 出力画像の Blue チャンネルに載せる点群データチャンネルを選びます。One / Zero を選ぶと、それぞれ固定値 1 / 0 が Blue に入ります。
Alpha .alpha ⚪alpha (アルファチャンネル) — 出力画像の Alpha チャンネルに載せる点群データチャンネルを選びます。One / Zero を選ぶと、それぞれ固定値 1 / 0 が Alpha に入ります。マスクや不透明度として点群属性を流用したいときに使います。
Common Page 🔧
Output Resolution .outputresolution 🖼️
出力解像度の決定方式
| 項目 | 内部名 | 説明 |
|---|---|---|
| Use Input | .useinput |
入力の解像度をそのまま継承 |
| Eighth | .eighth |
入力解像度の 1/8 |
| Quarter | .quarter |
入力解像度の 1/4 |
| Half | .half |
入力解像度の 1/2 |
| 2X | .2x |
入力解像度の 2 倍 |
| 4X | .4x |
入力解像度の 4 倍 |
| 8X | .8x |
入力解像度の 8 倍 |
Resolution .resolution 📐
カスタム解像度の幅・高さ指定 (Output Resolution = Custom Resolution の時のみ有効):
- Resolution W:
resolutionw(出力幅) — 出力画像の横ピクセル数。Output Resolutionが Custom Resolution の時に有効 - Resolution H:
resolutionh(出力高) — 出力画像の縦ピクセル数。同上
Resolution Menu .resmenu 📋
よく使う解像度プリセットのドロップダウン:
- Resolution Menu:
resmenu(解像度プリセット) — よく使う解像度を選ぶとResolution W/Resolution Hが自動でセットされるドロップダウン
Use Global Res Multiplier .resmult 🔢
プロジェクト全体の解像度倍率の適用:
- Use Global Res Multiplier:
resmult(全体解像度倍率の適用) — 環境設定の Global Resolution Multiplier をこの TOP に適用するトグル。グラフィックメモリの少ない環境で全 TOP の解像度を一括で半分・1/4 に落とす運用に便利
Output Aspect .outputaspect 📏
出力アスペクト比の決定方式
| 項目 | 内部名 | 説明 |
|---|---|---|
| Use Input | .useinput |
入力のアスペクト比を継承 |
| Custom Aspect | .custom |
Aspect1 / Aspect2 で手動指定 |
Aspect .aspect 📐
カスタムアスペクト比の指定 (Output Aspect = Custom Aspect の時のみ有効):
- Aspect1:
aspect1(横アスペクト値) —Output Aspect= Custom Aspect の時のみ有効 - Aspect2:
aspect2(縦アスペクト値) — 同上
Input Smoothness .inputfiltertype 🎚️
入力テクスチャのサンプリング方式
| 項目 | 内部名 | 説明 |
|---|---|---|
| Nearest Pixel | .nearest |
最近傍サンプリング。点群データを 1 点 = 1 ピクセルとして正確に扱うとき推奨 |
| Interpolate Pixels | .linear |
バイリニア補間。ズーム時に滑らかに見える |
| Mipmap Pixels | .mipmap |
ミップマップ補間。縮小時のちらつき・モアレを抑制 |
Fill Viewer .fillmode 🖥️
ビューア内でのテクスチャの収め方
| 項目 | 内部名 | 説明 |
|---|---|---|
| Use Input | .useinput |
入力の Fill Viewer 設定を継承 |
| Fill | .fill |
ビューアいっぱいに引き伸ばす (アスペクト無視) |
| Fit Horizontal | .width |
横幅に合わせて収める |
| Fit Vertical | .height |
縦幅に合わせて収める |
| Fit Best | .best |
アスペクト保持で内側に収まる最大サイズ |
| Fit Outside | .outside |
アスペクト保持で外側まで覆う最小サイズ (はみ出しあり) |
Viewer Smoothness .filtertype 🎛️
ビューア表示時のサンプリング方式
| 項目 | 内部名 | 説明 |
|---|---|---|
| Nearest Pixel | .nearest |
最近傍サンプリング (ピクセル単位での確認向け) |
| Interpolate Pixels | .linear |
バイリニア補間 |
| Mipmap Pixels | .mipmap |
ミップマップ補間。32-bit float 入力時は最近傍のみ使用される |
Passes .npasses 🔁
オペレータの反復実行回数:
- Passes:
npasses(反復実行回数) — TOP の処理を何パス繰り返すかの整数値。前回パスの結果が次回パスの入力になる
Channel Mask .chanmask 🎨
処理対象のチャンネルマスク (R/G/B/A 個別トグル):
- Channel Mask:
chanmask(チャンネルマスク) —R/G/B/A各チャンネルのオン/オフトグル。デフォルトでは全チャンネルが選択される
Pixel Format .format 🎨
出力テクスチャのピクセルフォーマット (点群の位置・法線など範囲外の値を保持するには 32-bit float 系を推奨)
| 項目 | 内部名 | 説明 |
|---|---|---|
| Use Input | .useinput |
入力のピクセルフォーマットを継承 |
| 8-bit fixed (RGBA) | .rgba8fixed |
8 ビット整数 RGBA。各チャンネル 8 ビット |
| sRGB 8-bit fixed (RGBA) | .srgba8fixed |
sRGB カーブで格納する 8 ビット RGBA。暗部に多くのビットを割り当てる |
| 16-bit float (RGBA) | .rgba16float |
16 ビット浮動小数 RGBA。1 ピクセル 64 ビット |
| 32-bit float (RGBA) | .rgba32float |
32 ビット浮動小数 RGBA。1 ピクセル 128 ビット。点群の生値をそのまま保持する用途に推奨 |
| 10-bit RGB, 2-bit Alpha, fixed (RGBA) | .rgb10a2fixed |
RGB 各 10 ビット + アルファ 2 ビットの固定小数。1 ピクセル 32 ビット |
| 16-bit fixed (RGBA) | .rgba16fixed |
16 ビット固定小数 RGBA。1 ピクセル 64 ビット |
| 11-bit float (RGB), Positive Values Only | .rgba11float |
R/G が 11 ビット、B が 10 ビットの浮動小数 RGB。アルファは常に 1、負値は不可で範囲は [0, 無限大) |
| 16-bit float (RGB) | .rgb16float |
16 ビット浮動小数 RGB (アルファなし) |
| 32-bit float (RGB) | .rgb32float |
32 ビット浮動小数 RGB (アルファなし) |
| 8-bit fixed (Mono) | .mono8fixed |
単一チャンネル。RGB が同値、アルファは 1.0。8 ビット |
| 16-bit fixed (Mono) | .mono16fixed |
単一チャンネルの 16 ビット固定小数モノクロ |
| 16-bit float (Mono) | .mono16float |
単一チャンネルの 16 ビット浮動小数モノクロ |
| 32-bit float (Mono) | .mono32float |
単一チャンネルの 32 ビット浮動小数モノクロ |
| 8-bit fixed (RG) | .rg8fixed |
R+G の 2 チャンネル、B は常に 0、アルファ 1.0。各 8 ビット |
| 16-bit fixed (RG) | .rg16fixed |
R+G の 2 チャンネル 16 ビット固定小数 |
| 16-bit float (RG) | .rg16float |
R+G の 2 チャンネル 16 ビット浮動小数 |
| 32-bit float (RG) | .rg32float |
R+G の 2 チャンネル 32 ビット浮動小数 |
| 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 |
モノクロ + アルファの 2 チャンネル 8 ビット固定小数 |
| 16-bit fixed (Mono+Alpha) | .monoalpha16fixed |
モノクロ + アルファの 2 チャンネル 16 ビット固定小数 |
| 16-bit float (Mono+Alpha) | .monoalpha16float |
モノクロ + アルファの 2 チャンネル 16 ビット浮動小数 |
| 32-bit float (Mono+Alpha) | .monoalpha32float |
モノクロ + アルファの 2 チャンネル 32 ビット浮動小数 |
実践アイデア 💡
Example 1: 位置を画像化 ☁️
Point File In TOP → Point File Select TOP (R=X, G=Y, B=Z, Pixel Format=32-bit float) → Geometry COMP / GLSL TOP
点群ファイルが持つ位置データ (XYZ) を R/G/B に割り当てて位置テクスチャを作り、Geometry COMP の per-instance 位置ソースとして使う基本フロー。Pixel Format を 32-bit float にして座標値をそのまま保持します。
- Point File In TOP で点群ファイルを読み込む
- Point File Select TOP を配置し
Point File In TOPパラメータに上流ノードを参照させる Redに X 座標、Greenに Y 座標、Blueに Z 座標のチャンネルを割り当てるPixel Formatを32-bit float (RGBA)にして座標精度を保持- 出力テクスチャを Geometry COMP の位置ソース、または GLSL TOP で
texelFetch()によりサンプリング
Example 2: 法線を可視化 🧭
Point File In TOP → Point File Select TOP (R=Nx, G=Ny, B=Nz) → Null TOP (確認)
点群が持つ法線 (Nx/Ny/Nz) を R/G/B に割り当てて法線マップ風の画像を作り、点群の向きを色として目視確認する用途。デバッグやシェーディング入力の準備に使えます。
- Point File In TOP で法線チャンネルを含む点群を読み込む
- Point File Select TOP の
Red/Green/Blueにそれぞれ法線の X / Y / Z チャンネルを割り当て - 不要な
AlphaはOneに設定して不透明に固定 - 下流に Null TOP を置いてビューアで色を確認
Example 3: 係数マスクを作る 🎭
Point File In TOP → Point File Select TOP (R=任意属性, G/B=Zero, A=One) → Composite TOP
点群の任意の 1 属性だけを Red に載せ、Green / Blue を Zero、Alpha を One に固定することで、単一チャンネルの係数マップ・マスクを作るフロー。Composite TOP 等で他の画像と掛け合わせる用途に向きます。
- Point File In TOP で対象の点群を読み込む
- Point File Select TOP の
Redに使いたい属性チャンネルを割り当て GreenとBlueをZeroに設定して 0 で埋めるAlphaをOneにして不透明に固定- 下流の Composite TOP で他のテクスチャと乗算合成
関連オペレータ 🔗
類似機能OP 🔍
- Point File In TOP — 点群ファイルを読み込む上流ノード。本 TOP の参照元
- Point Transform TOP — 点群データに変換を適用する TOP
組み合わせ推奨OP 🔄
- Point File In TOP — 点群ファイルを読み込み、本 TOP に選択対象のチャンネルを供給する
- GLSL TOP — 選んだチャンネルのテクスチャを sampler2D としてシェーダで参照
- CHOP to TOP — CHOP 経由で別データを画像化する併用パターン
- Composite TOP — 選んだチャンネル画像を他のテクスチャと合成
前処理・後処理TOP 🎯
Info情報 📊
TOP は Info CHOP / Info DAT に接続することで解像度・ピクセルフォーマット・クック情報を取得できます。Point File Select 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共通情報 🖼️
resx: 出力テクスチャの横幅 (ピクセル単位)resy: 出力テクスチャの縦幅 (ピクセル単位)aspectx: アスペクト比の横成分aspecty: アスペクト比の縦成分depth: ピクセルフォーマットのビット深度gpu_memory_used: この TOP が消費している GPU メモリ量 (バイト)
オペレータ共通情報 📈
total_cooks: ノードがクックされた累積回数cook_time: 直近フレームのクック時間 (ミリ秒)cook_frame: 直近にクックされたフレーム番号cooked_this_frame: 現フレームでクック済かどうか (0/1)
トラブルシューティング ⚠️
よくある問題と解決策 🔧
❌ Problem: R / G / B / A の選択肢に目的のチャンネルが出てこない
✅ Solution:
Point File In TOPパラメータが正しい Point File In TOP を参照しているか確認- 参照先の点群ファイルが、目的のデータ (位置・法線・色など) を実際に含んでいるか上流ノードで確認
- 上流の点群読み込みが失敗していないか (パスやファイル形式) を Info DAT 等で確認
❌ Problem: 出力画像の値が 0〜1 にクランプされてしまう
✅ Solution:
Pixel Formatが8-bit fixed系だと範囲外の値が切り詰められる。座標など範囲外の値を保持するには32-bit float (RGBA)等の float 系を選択- 負値を含む属性 (相対座標・速度など) を扱う場合も float 系フォーマットを使う
Viewer SmoothnessをNearest Pixel、Fill Viewerを確認用に設定して実際のピクセル値を目視確認
❌ Problem: 点とピクセルの対応がぼやける / 隣の点と混ざって見える
✅ Solution:
Input SmoothnessがInterpolate Pixelsだとサンプル間が補間されて混ざる。Nearest Pixelに切替- 下流の GLSL TOP では
texelFetch()でピクセル整数座標アクセスして補間を避ける - 確認時は
Viewer SmoothnessもNearest Pixelに揃える
参考資料 📚
その他 🔗
- TouchDesigner Wiki — Category:TOPs
- TouchDesigner Wiki — Pixel Formats 解説
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group

