
概要 📖 – TOPを表として属性に転写
Lookup Texture POPは、ジオメトリ要素ごとに属性値を U/V/W 座標として TOP のピクセルを引き当て、その色を新しい属性として書き戻す POPです。座標は正規化 (0–1) かピクセル番号で指定でき、補間・サイクル・範囲外処理・チャンネルマスク・3D テクスチャの深度オフセットなど細かく制御できます。
主な用途 🎯
- TOP(テクスチャ)を参照テーブルとしてジオメトリ属性に焼き込み
- UV・位置・カラー等の属性を座標としたピクセル値の引き当て
- 3D テクスチャ(Texture 3D TOP)からのボリュームデータ参照
- 事前計算済みグラデーション・LUT のジオメトリへの転写
- 画像のピクセル色をパーティクル属性(位置・カラー)に変換
データフロー 🔄
入力: ジオメトリ (インデックス用属性付き) + TOP (参照テクスチャ)
↓
U/V/W 座標として TOP のピクセルを引き当て
↓
出力: 引き当て結果を新しい属性として持つジオメトリ
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
Lookup Page 📋
Attribute Class .attrclass 🎛️
解析対象とする属性クラスを選択するメニューパラメータ
| 項目 | 内部名 | 説明 |
|---|---|---|
| Point | .point |
ポイント属性 (P / N / Cd 等) を対象に動作 |
| Vertex | .vertex |
頂点属性 (UV / 頂点ノーマル 等) を対象に動作 |
| Primitive | .primitive |
プリミティブ属性 (面ごとの属性) を対象に動作 |
対象範囲設定 🎯
Group .group 🎯
– Group (グループ) — 入力にグループが存在する場合、指定したグループ名に属する要素のみを対象に絞り込みます
– 空欄なら全要素が対象になります
参照TOP指定 📡
TOP .top 📡
– TOP (参照TOP) — 引き当てに使う TOP のオペレータパスを指定します
– この TOP のピクセル色が引き当て結果として属性に書き込まれます
– 2D TOP・Texture 3D TOP のいずれも参照可能
Lookup Index Units .indexunit 📐
インデックス属性の値を TOP のどの座標系で解釈するかを選択 (U / V / W 軸ごとに個別指定可能)
| 項目 | 内部名 | 説明 |
|---|---|---|
| Normalized (0-1) | .normalized |
0–1 の正規化値として解釈 (0=テクスチャ左下端、1=右上端) |
| Pixel Index | .pixelindex |
ピクセル番号 (0 〜 ピクセル数 – 1 の整数) として解釈 |
ピクセル中心サンプリング 🎯
Pixel Centered Sampling Location .pixelcentered 🎯
– Pixel Centered Sampling Location (ピクセル中心サンプリング) — 正規化インデックスを使うとき、半ピクセル分のオフセットを加えてピクセルの中心を狙うかどうかのスイッチ
– U / V / W 軸ごとに個別指定可能
– オンにするとピクセル中心、オフだとピクセル端からのサンプリング
範囲外と循環 🔁
Cyclic Index .cyclic 🔄
– Cyclic Index (循環インデックス) — オンにするとインデックスが末尾から先頭に巻き戻り、テクスチャ全域を周期的にマッピングします
– U / V / W 軸ごとに個別指定可能
– 周期的グラデーションやループアニメに使用
Input Extend Mode .inputextend ↔️
インデックスがテクスチャの有効範囲外を指したときの振る舞いを選択 (U / V / W 軸ごとに個別指定可能)
| 項目 | 内部名 | 説明 |
|---|---|---|
| Hold | .hold |
端のピクセル色を保持して返す |
| Zero | .zero |
範囲外は全成分 0 として返す |
| Repeat | .repeat |
範囲外でテクスチャを繰り返しタイル状に展開 |
| Mirror | .mirror |
範囲外でテクスチャを折り返し反転 |
補間と深度オフセット 🌊
Interpolate .interpolate 🌊
– Interpolate (補間) — オンの場合、TOP のピクセル間を線形補間して滑らかに引き当て
– オフの場合は最も近いピクセル値をそのまま使用 (階段状)
Use Depth Offset .usedepthoffset 📦
– Use Depth Offset (深度オフセット使用) — Texture 3D TOP を参照する場合、テクスチャ側に設定された深度オフセットを W 座標として使うかどうかのスイッチ
– 体積データを z 方向に積層して参照するときに利用
チャンネルマスク 🎨
Channel Mask .channelmask 🎨
– Channel Mask (チャンネルマスク) — TOP のどのカラーチャンネル (R / G / B / A) をサンプリング対象にするかを指定するパターン
– 例: r g b で RGB 3 成分のみを引き当て、Alpha を無視
値のリレンジ 📏
From Low .fromlow ⬇️
– From Low (入力低位) — 引き当て結果のリレンジ前の最小値 (最大 4 成分ぶん個別指定可)
From High .fromhigh ⬆️
– From High (入力高位) — 引き当て結果のリレンジ前の最大値 (最大 4 成分ぶん個別指定可)
To Low .tolow 🔽
– To Low (出力低位) — 出力範囲の最小値 (最大 4 成分ぶん個別指定可)
To High .tohigh 🔼
– To High (出力高位) — 出力範囲の最大値 (最大 4 成分ぶん個別指定可)
– From Low / High と To Low / High で各成分の線形リマップが行われます
Output Attribute Scope .outputattrscope 🎨
出力属性の名前を選択 (代表的な組み込み属性から選択可)
| 項目 | 内部名 | 説明 |
|---|---|---|
| P | .P |
ポイント位置属性 P (3成分) |
| N | .N |
ノーマル属性 N (3成分) |
| Color | .Color |
カラー属性 Color (4成分 RGBA) |
| Color.rgb | .Color.rgb |
カラー属性のRGB部分のみ (3成分) |
| Tex | .Tex |
テクスチャ座標属性 Tex |
| PointScale | .PointScale |
ポイントスケール属性 (ポイントサイズ制御) |
| LineWidth | .LineWidth |
ライン幅属性 |
属性型の手動上書き 🛠️
Override Automatic Attribute .overrideautoattr 🔧
– Override Automatic Attribute (自動属性の上書き) — 入力とパラメータから自動推定される出力属性のデータ型・成分数を手動指定するスイッチ
– オンにすると下記の Attribute Type / Components / Default Value が有効になります
Attribute Type .attrtype 📐
出力属性のデータ型を選択
| 項目 | 内部名 | 説明 |
|---|---|---|
| float | .float |
単精度浮動小数点 (一般用途のデフォルト) |
| double | .double |
倍精度浮動小数点 (高精度が必要なとき) |
| int | .int |
符号付き整数 |
| uint | .uint |
符号なし整数 |
| Color | .color |
カラー (単精度4成分) |
| Color (double) | .dcolor |
カラー (倍精度4成分) |
| Direction | .dir |
方向ベクトル (単精度3成分) |
| Direction (double) | .ddir |
方向ベクトル (倍精度3成分) |
Components .attrnumcomps 🔢
出力属性の成分数を選択
| 項目 | 内部名 | 説明 |
|---|---|---|
| 1 | .1 |
スカラ (1成分) |
| 2 | .2 |
2成分ベクトル |
| 3 | .3 |
3成分ベクトル (位置・カラーRGB等) |
| 4 | .4 |
4成分ベクトル (カラーRGBA等) |
既定値 💡
Default Value .attrdefaultval 💡
– Default Value (既定値) — 引き当てが計算できなかった場合に出力属性の各成分に書き込む既定値
– 成分数に応じて最大4つまで個別指定可能
インデックス属性 U/V/W 🔤
Lookup Index Attribute U .lookupindexattr0 🇺
– Lookup Index Attribute U (U座標インデックス属性) — TOP の U 座標として使う属性名を指定 (例: Tex の x 成分)
Lookup Index Attribute V .lookupindexattr1 🇻
– Lookup Index Attribute V (V座標インデックス属性) — TOP の V 座標として使う属性名を指定 (例: Tex の y 成分)
Lookup Index Attribute W .lookupindexattr2 🇼
– Lookup Index Attribute W (W座標インデックス属性) — Texture 3D TOP を参照する場合の W 座標として使う属性名 (深度方向)
– 2D TOP のみ使う場合は空欄でよい
インデックスオフセット 📐
Lookup Index Offset .lookupindexoffset 📐
– Lookup Index Offset (インデックスオフセット) — U / V / W 座標それぞれに加算する追加オフセット値
– テクスチャを動的にスクロール・パン・スライスするときに使用
Common Page 🔧
Bypass .bypass 🚫
POP の処理をスキップして入力をパススルーする設定:
- オン: 最初の入力 (input1) をそのまま出力にパススルー、POP 内部の処理を無効化
- 用途: デバッグ時に特定 POP の効果を一時的に外して比較する際に使用
Free Extra GPU Memory .freeextragpumem 🧠
蓄積した GPU メモリの解放:
- Free Extra GPU Memory パルス: 出力ポイント数が増減を繰り返した際に確保されたままの GPU メモリを明示的に解放するパルスパラメータ
- 用途: 大規模パーティクル系で出力サイズが大きく変動した後、未使用メモリを返却して VRAM を節約
Delete Input Attributes .delinputattrs 🗑️
出力属性の絞り込みパターン:
- Delete Input Attributes パターン: 出力に残したい属性名のパターン (例:
P N Cd) を指定。指定外の属性は破棄される - 用途: 下流で不要な属性を切り落として分岐ブランチを軽量化、メモリ・帯域を節約
実践アイデア 💡
Example 1: UVで画像をジオメトリに焼く 🖼️
入力 POP → Lookup Texture POP (TOP=Movie File In TOP, lookupindexattr0/1=Tex, indexunit=normalized, outputattr=Color) → Render TOP
ジオメトリの UV 属性 (Tex) を 0–1 正規化座標として 2D テクスチャに引き当て、各ポイントに対応したピクセル色を Color 属性として焼き付ける基本フロー。テクスチャマッピングを属性として事前計算してしまうことで、Render TOP に画像を渡さなくてもジオメトリ単体で色付き表示が可能になります。
- 入力 POP (例: Grid POP) でジオメトリを生成し UV 属性 Tex を持たせる
- Movie File In TOP / Noise TOP 等で参照テクスチャを用意
- Lookup Texture POP の
TOPに上記 TOP のパスを指定 Lookup Index Attribute UをTex、Lookup Index Attribute VをTexに設定 (U/V それぞれ Tex の x/y 成分から自動で参照)Lookup Index Unitsをnormalized、Output Attribute ScopeをColor、Channel Maskをr g b aに- 下流 Render TOP に渡せばポイントごとにテクスチャ色が反映
Example 2: 高さマップでP属性を変形 🏔️
入力 POP → Lookup Texture POP (TOP=Heightmap TOP, lookupindexattr0/1=Tex, outputattr=P, Components=3) → Render
グレースケールの高さマップ画像 (heightmap) をテクスチャとして読込み、ジオメトリの UV 座標から各ポイントの高さを引き当てて P 属性 (位置) に書き込む地形生成の例。平面ジオメトリが画像どおりの起伏に変形され、リアルタイムで heightmap を差し替えれば地形が変化します。
- Grid POP で平面ジオメトリを生成し UV 属性を確保
- Movie File In TOP / Noise TOP でグレースケール高さマップを用意
- Lookup Texture POP の
TOPに高さマップを指定、lookupindexattr0/1をTexに To Low/To Highで高さの最小・最大をリマップ (例: 0 〜 5)Override Automatic AttributeをオンにしComponentsを3、Output Attribute ScopeをP- Render TOP で描画すると画像どおりの起伏を持つ地形が完成
Example 3: テクスチャでボリューム参照 🧊
入力 POP → Lookup Texture POP (TOP=Texture 3D TOP, lookupindexattr0/1/2=P, usedepthoffset=on, outputattr=Color) → Render
Texture 3D TOP に積層したボリュームデータ (3D ノイズ・CT スキャン等) をジオメトリのポイント位置 P から直接引き当て、各ポイントに対応する 3D ボクセル値をカラー属性として書き出すボリュームレンダリング前段の例。深度オフセットを有効にすると Texture 3D TOP 側のページごとに W 座標が自動で割り振られます。
- Texture 3D TOP で 3D ボリュームを構築 (例: Noise TOP を Z 方向に積層)
- 入力 POP でボリューム範囲内に配置するジオメトリを生成 (Box POP / Particle POP 等)
- Lookup Texture POP の
TOPに Texture 3D TOP を指定 Lookup Index Attribute U/V/WをすべてPに、Lookup Index UnitsをnormalizedUse Depth Offsetをオンにして 3D テクスチャの z 軸を有効化、Output Attribute ScopeをColor- Render TOP で描画するとボリューム内部の色が各ポイントに転写される
関連オペレータ 🔗
類似機能OP 🔍
- Lookup Channel POP — CHOP を参照テーブルとして属性に引き当てる姉妹オペレータ
- Lookup Attribute POP — 属性同士の引き当て (第2入力のジオメトリ属性を参照テーブルとして使用)
組み合わせ推奨OP 🔄
- Math POP — 引き当て前後の属性を正規化・スケーリングして 0–1 範囲に整える
- Attribute POP — 引き当て用の UV / インデックス属性を事前に作成・整備
- Transform POP — 引き当てで書き込んだ P 属性を下流で位置調整
前処理・後処理POP 🎯
Info POP情報 📊
Lookup Texture POP は Info CHOP 経由でジオメトリの統計情報を取得できます。
POP固有情報 ✨
num_verts: POP に含まれる頂点 (vertex) 数num_points: POP に含まれるポイント数num_prims: POP に含まれるプリミティブ数
汎用オペレータ情報 🔄
total_cooks: プロセス開始からのクック回数cook_time: 最後のクック時間 (ミリ秒)cook_frame: 最後にクックされたフレーム番号cook_abs_frame: 最後にクックされた絶対フレーム番号 (アプリケーション起動からの累積)cook_start_time: 最後のクック開始時刻 (ミリ秒)cook_end_time: 最後のクック終了時刻 (ミリ秒)cooked_this_frame: 現フレームでクックされたか (0 / 1)warnings: 警告数errors: エラー数
POP 汎用情報 📊
num_points: 出力ジオメトリのポイント数num_point_attribs: 出力ジオメトリのポイント属性数 (引き当てで追加された属性も含む)num_vertex_attribs: 出力ジオメトリの頂点属性数num_prim_attribs: 出力ジオメトリのプリミティブ属性数num_prims: 出力ジオメトリのプリミティブ数gpu_memory_used: この POP が使用している GPU メモリ量
トラブルシューティング ⚠️
よくある問題と解決策 🔧
❌ Problem: 引き当て結果が真っ黒・空になる
✅ Solution:
TOPパラメータに指定した TOP のオペレータパスが正しいか確認 (相対パスのスコープに注意)Channel Maskパターンが TOP のチャンネルにマッチしているか確認 (デフォルトは r g b a)Output Attribute Scopeが空欄になっていないか、属性名が下流で参照されているか確認
❌ Problem: 座標が範囲外でテクスチャ端の色しか出ない
✅ Solution:
Lookup Index Unitsがnormalizedとpixelindexのどちらに合うか、インデックス属性の値域に応じて再選択Input Extend ModeをHold/Repeat/Mirror/Zeroから状況に合わせ選択- 前段の Analyze POP でインデックス属性の最大値を取得し範囲を確認
❌ Problem: 値がカクカク・ピクセル境界が見える
✅ Solution:
Interpolateをオンにしてピクセル間を線形補間Pixel Centered Sampling Locationをオンにして半ピクセルオフセットを有効化- 参照 TOP の解像度が低すぎないか確認、必要なら上流で TOP の Resolution を上げる
❌ Problem: 3Dテクスチャの深度方向が反映されない
✅ Solution:
TOPが Texture 3D TOP であることを確認 (通常の 2D TOP では W 軸は無効)Lookup Index Attribute Wに W 座標として使う属性 (例:Pの z 成分) を指定Use Depth Offsetをオンにして Texture 3D TOP 側の depth offset を有効化
参考資料 📚
その他 🔗
- TouchDesigner Wiki — POP 概要
- TouchDesigner Wiki — Category:POPs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group
公式リソース 📖
- TouchDesigner公式ドキュメント – Lookup Texture POP
- POP 概要 (Points, Vertices and Primitives in POPs)
- 属性 (Attribute) の基礎
- TouchDesigner公式ドキュメント – Lookup Channel POP

