Lookup Texture POP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】

※当サイトにはプロモーションリンクが含まれます。

Lookup Texture POP の TOP 参照機能を示す図

記事更新の通知はXでアナウンス٩(๑❛ᴗ❛๑)
@maru6o6をフォロー

概要 📖 – TOPを表として属性に転写

Lookup Texture POPは、ジオメトリ要素ごとに属性値を U/V/W 座標として TOP のピクセルを引き当て、その色を新しい属性として書き戻す POPです。座標は正規化 (0–1) かピクセル番号で指定でき、補間・サイクル・範囲外処理・チャンネルマスク・3D テクスチャの深度オフセットなど細かく制御できます。

主な用途 🎯

  • TOP(テクスチャ)を参照テーブルとしてジオメトリ属性に焼き込み
  • UV・位置・カラー等の属性を座標としたピクセル値の引き当て
  • 3D テクスチャ(Texture 3D TOP)からのボリュームデータ参照
  • 事前計算済みグラデーション・LUT のジオメトリへの転写
  • 画像のピクセル色をパーティクル属性(位置・カラー)に変換

データフロー 🔄

入力: ジオメトリ (インデックス用属性付き) + TOP (参照テクスチャ)

U/V/W 座標として TOP のピクセルを引き当て

出力: 引き当て結果を新しい属性として持つジオメトリ

Tips

初心者の方は、以下日本語書籍も手元にあると安心です。

まる。
まる。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!


パラメータ解説 ⚙️

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 に画像を渡さなくてもジオメトリ単体で色付き表示が可能になります。

  1. 入力 POP (例: Grid POP) でジオメトリを生成し UV 属性 Tex を持たせる
  2. Movie File In TOP / Noise TOP 等で参照テクスチャを用意
  3. Lookup Texture POP の TOP に上記 TOP のパスを指定
  4. Lookup Index Attribute UTexLookup Index Attribute VTex に設定 (U/V それぞれ Tex の x/y 成分から自動で参照)
  5. Lookup Index UnitsnormalizedOutput Attribute ScopeColorChannel Maskr g b a
  6. 下流 Render TOP に渡せばポイントごとにテクスチャ色が反映

Example 2: 高さマップでP属性を変形 🏔️

入力 POP → Lookup Texture POP (TOP=Heightmap TOP, lookupindexattr0/1=Tex, outputattr=P, Components=3) → Render

グレースケールの高さマップ画像 (heightmap) をテクスチャとして読込み、ジオメトリの UV 座標から各ポイントの高さを引き当てて P 属性 (位置) に書き込む地形生成の例。平面ジオメトリが画像どおりの起伏に変形され、リアルタイムで heightmap を差し替えれば地形が変化します。

  1. Grid POP で平面ジオメトリを生成し UV 属性を確保
  2. Movie File In TOP / Noise TOP でグレースケール高さマップを用意
  3. Lookup Texture POP の TOP に高さマップを指定、lookupindexattr0/1Tex
  4. To Low / To High で高さの最小・最大をリマップ (例: 0 〜 5)
  5. Override Automatic Attribute をオンにし Components3Output Attribute ScopeP
  6. 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 座標が自動で割り振られます。

  1. Texture 3D TOP で 3D ボリュームを構築 (例: Noise TOP を Z 方向に積層)
  2. 入力 POP でボリューム範囲内に配置するジオメトリを生成 (Box POP / Particle POP 等)
  3. Lookup Texture POP の TOP に Texture 3D TOP を指定
  4. Lookup Index Attribute U/V/W をすべて P に、Lookup Index Unitsnormalized
  5. Use Depth Offset をオンにして 3D テクスチャの z 軸を有効化、Output Attribute ScopeColor
  6. 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 Unitsnormalizedpixelindex のどちらに合うか、インデックス属性の値域に応じて再選択
  • Input Extend ModeHold / 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 を有効化

参考資料 📚

その他 🔗

公式リソース 📖

この記事はLLMと共に内容を執筆、更新しています。
最新バージョンとの項目差異など、情報の不一致を見つけた心優しい方はXもしくはInsta、メールなどよりサイト管理者までご連絡ください😎


まる。

お仕事のご依頼はDM又はメールにて。
━━━━━━━━━━━━━━━━━
Python/Touchdesigner/M5Stackをこよなく愛すフルスタックエンジニア。
専門は生理心理学、趣味はヨガやサウナ、EMS電気風呂などヘルスケア全般。
脳波や筋電、心拍を中心とした生体情報のセンシング&インタラクティブアートづくりがライフワーク。

普段はワントゥーテンという会社で空間演出エンジニアをしています。
リファラル採用お繋ぎできますので、我こそはという尖った方は経歴と希望職種添えてDMください(エンジニア以外、営業職等もOK)。
ご飯行きましょう。

↓日常垢
Instagram:@malmal0v0

まる。をフォローする
その他の記事はこちら
Math Combine POP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】
ZED Select TOP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】
ZED POP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】
Window COMP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】
Widget COMP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】

タイトルとURLをコピーしました