Luma Level TOP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】

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

Luma Level TOP の輝度・コントラスト調整機能を示すサムネイル

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

概要 📖 – 輝度の階調を調整

Luma Level TOPは、入力テクスチャの明るさ・コントラスト・ガンマ・入出力レンジ・ポスタリゼーションを 1 つの TOP でまとめて調整する画像レベル補正 TOPです。Source パラメータで補正対象チャンネル (Luminance / Red / Green / Blue / Alpha / RGB Average / RGBA Average) を選び、Pre / Range / Step / Post の 4 ページに分かれたパラメータで段階的に階調を加工します。露出補正・コントラスト調整・ポスタリゼーション・2 値化マスク生成の用途に広く使われます。

主な用途 🎯

  • 明るさ・コントラスト・ガンマを 1 つの TOP でまとめて調整 (露出補正・トーンマッピングの基礎)
  • 入力レンジ (In Low / In High) と出力レンジ (Out Low / Out High) でレベル補正 (Photoshop のレベル補正に相当)
  • Step Size で画像をポスタリゼーション (階調を粗くするアート風加工)
  • 特定チャンネル (Red/Green/Blue/Alpha/Luminance) のみ階調調整するソース選択型補正
  • Threshold + Step Size で 2 値化マスクを生成しキー抜き・領域抽出の前処理に使用

データフロー 🔄

入力: RGBA テクスチャ

Pre Page (Source / Invert / Black Level / Brightness 1 / Gamma 1 / Contrast)

Range Page (In Low / In High / Out Low / Out High)

Step Page (Step Size / Threshold / Clamp / Soften)

Post Page (Gamma 2 / Opacity / Brightness 2)

出力: 階調調整済テクスチャ

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

Pre Page 🎚️

Source .source 🎯

Source (補正対象チャンネル) — このパラメータで指定したチャンネルが Pre Page 以降の階調補正の対象になります。出力は InColor * 1/Source * Lookup(Source) で決まり、Lookup は本 TOP のパラメータ設定から構築されるルックアップテーブルです。

項目 内部名 説明
Luminance .luminance 画像の輝度値 (Luminance) を補正対象に。標準的な明るさ調整
Red .red 赤チャンネルのみを補正
Green .green 緑チャンネルのみを補正
Blue .blue 青チャンネルのみを補正
Alpha .alpha アルファチャンネル (透明度) のみを補正
RGB Average .rgbaverage RGB 3 チャンネルの平均値を補正対象に
RGBA Average .average RGBA 4 チャンネルの平均値を補正対象に

Invert .invert 🔄

色反転トグル:

  • Invert: オンにすると入力の色を反転して出力。マスク抜きで前景・背景を入れ替えたい時にも便利

Black Level .blacklevel

黒つぶれ閾値の設定:

  • Black Level: 0〜1 の値で指定。0 (デフォルト) なら黒つぶれなし。0.1 にすると暗部の 10% が黒に潰れる

Brightness 1 .brightness1 🔆

1 段目の明度オフセット:

  • Brightness 1: 0 を中心に正負で明度オフセットを加算。正で明るく、負で暗く。Brightness 2 (Post Page) と組み合わせると 2 段階の明度補正が可能

Gamma 1 .gamma1 📈

1 段目のガンマ補正:

  • Gamma 1: 1.0 で変化なし。< 1.0 で中間トーンが暗く、> 1.0 で中間トーンが明るくなる。明度と違い RGB 比率に影響

Contrast .contrast 🌗

コントラストゲイン:

  • Contrast: 1.0 を中心にゲインを上下。1.0 を超えるとコントラスト強め (メリハリ)、1.0 未満で平坦な階調になる

Range Page 📐

In Low .inlow ⬇️

入力下限 (黒点):

  • In Low: 入力の下限値 (デフォルト 0)。これ未満のピクセルは出力時に黒 (Out Low の値) になる

In High .inhigh ⬆️

入力上限 (白点):

  • In High: 入力の上限値 (デフォルト 1)。これを超えるピクセルは出力時に白 (Out High の値) になる

Out Low .outlow 🔽

出力下限クランプ:

  • Out Low: 出力の下限クランプ値 (デフォルト 0)。0.1 にすると最暗部が黒ではなく濃いグレーになる

Out High .outhigh 🔼

出力上限クランプ:

  • Out High: 出力の上限クランプ値 (デフォルト 1)。0.9 にすると最明部が白ではなく薄いグレーになる

Step Page 🪜

Step Size .stepsize 📊

階調バンドのステップ幅:

  • Step Size: 階調 1 段の幅 (0〜1)。0 はステップなし (デフォルト)。0.5 なら 2 階調、0.25 なら 4 階調、0.1 なら 10 階調のポスタリゼーション

Threshold .threshold 🎯

ステップ境界のしきい値オフセット:

  • Threshold: ステップ境界の位置調整。Step Size = 1 (= 1 階調 = 2 値化) のとき、Threshold で白黒境界の輝度を移動できる

Clamp Low .clamplow 🔒

値のクランプ下限:

  • Clamp Low: 画像 (Value) のクランプ下限

Clamp High .clamphigh 🔐

値のクランプ上限:

  • Clamp High: 画像 (Value) のクランプ上限

Soften .soften 🌫️

ステップ境界の柔らかさ:

  • Soften: 0 で境界が鋭い (デフォルト)、値を上げるとステップ間がグラデーションで補間される

Post Page ✨

Gamma 2 .gamma2 📈

2 段目のガンマ補正 (Step 以降に適用):

  • Gamma 2: Step Page 以降に適用される 2 段目のガンマ補正。1.0 で変化なし

Opacity .opacity 💧

不透明度調整:

  • Opacity: 1.0 で完全不透明、0.0 で完全透明。Composite TOP で他レイヤと合成する前の最終透明度調整に

Brightness 2 .brightness2 🔆

2 段目の明度オフセット (Step 以降に適用):

  • Brightness 2: Step Page 以降に適用される 2 段目の明度オフセット。Pre Page の Brightness 1 と分けて段階的に明度を加算可能

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 ResolutionCustom 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 の処理を何パス繰り返すかの整数値。Luma Level TOP の場合、複数パスにすると階調補正が累積し意図しないコントラスト過剰になりやすい。基本は 1 のまま

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: 露出・コントラスト調整 🌅

Movie File In TOP → Luma Level TOP (Brightness 1 + Gamma 1 + Contrast) → Out TOP

撮影素材の暗い映像を Luma Level TOP の Brightness 1 で底上げし、Gamma 1 で中間トーンを持ち上げ、Contrast でメリハリを足す典型的な露出補正フロー。1 つの TOP で 3 段階の補正を完結できるため、Level TOP の代替として手早く絵作りしたい時に便利。

  1. Movie File In TOP で素材動画/画像を読み込む
  2. Luma Level TOP を後段に接続し、Pre Page で Source を Luminance に設定 (輝度全体を補正対象に)
  3. Brightness 1 を 0.1〜0.2 程度上げて底上げ、Gamma 1 を 1.2〜1.5 で中間トーンを持ち上げる
  4. Contrast を 1.1〜1.3 で明暗差を強調し、メリハリのある映像にする
  5. Out TOP で最終出力、もしくは Composite TOP で他レイヤと合成

Example 2: ポスタリゼーション加工 🎨

Movie File In TOP → Luma Level TOP (Step Size + Soften) → Out TOP

Step Size パラメータを使うと画像の階調をバンド状に区切り、イラスト調・アート風のポスタリゼーション加工が 1 ノードで完結する。Soften パラメータで境界の硬さを調整すれば、ハードな漫画風からソフトなアニメ風まで質感を選べる。

  1. 入力画像を Movie File In TOP または Ramp TOP で用意 (Ramp はパラメータ効果の確認に最適)
  2. Luma Level TOP を接続し、Step Size を 0.25 (= 4 階調) や 0.1 (= 10 階調) に設定
  3. Threshold パラメータで境界位置を微調整し、好みの階調分布にする
  4. Soften を 0 に近づけると境界が鋭いハード加工、値を上げるとグラデーション補間されたソフト加工になる
  5. Source を Red / Green / Blue に切り替えると特定チャンネルだけポスタライズも可能

Example 3: 輝度マスクの2値化抽出 🎯

Movie File In TOP → Luma Level TOP (In Low/High + Step Size=1) → Composite TOP

明るい部分だけ抽出した白黒マスクを作りたい時、Luma Level TOP の In Low / In High でしきい値を切り、Step Size を 1.0 にすると 2 値化マスクが得られる。Threshold TOP 単体より柔軟に「どの範囲を残すか」を制御でき、後段で Composite TOP のマスク入力として使える。

  1. Movie File In TOP で対象画像を読み込む
  2. Luma Level TOP の Pre Page で Source を Luminance に設定 (輝度ベースで抽出)
  3. Range Page の In Low / In High で抽出したい輝度範囲を指定 (例: In Low=0.5, In High=0.7 で中間調のみ)
  4. Step Page で Step Size を 1.0 にすると、範囲内が白・範囲外が黒の 2 値化マスクになる
  5. Composite TOP のマスク入力に渡してハイライト合成、または Crop TOP と組み合わせて領域抽出に応用

関連オペレータ 🔗

類似機能OP 🔍

  • Level TOP — RGB を独立に補正する汎用レベル補正 TOP (本 TOP は Source 選択型で輝度寄り)
  • HSV Adjust TOP — HSV 色空間で色相・彩度・明度を編集 (色相シフトが必要なら HSV Adjust)
  • Threshold TOP — 単純な 2 値化専用 TOP (Luma Level の Step Size=1 で同等効果)
  • Lookup TOP — 任意のルックアップテーブルで階調変換 (Luma Level の内部処理を自由化したい時)
  • Math TOP — ピクセル値に算術演算を適用 (より低レベルな数値変換)

組み合わせ推奨OP 🔄

  • Movie File In TOP — 素材動画/画像の読み込み元として上流に配置
  • Blur TOP — Luma Level の前段でノイズ除去 / 後段で境界を柔らかくする
  • Composite TOP — Luma Level で作った 2 値化マスクをアルファ入力として合成
  • Channel Mix TOP — Luma Level の後段で RGB チャンネル間の重み付け再配分
  • Tone Map TOP — HDR ソースに対しては Tone Map で先に圧縮してから Luma Level で仕上げ
  • Out TOP — 階調調整結果を最終出力として書き出し

前処理・後処理TOP 🎯


Info CHOP情報 📊

Luma Level TOPは Info CHOP による詳細情報取得に対応しています。出力テクスチャの resolution_w / resolution_h / aspectx / aspecty / depth / num_components / gpu_mem_used 等の標準 TOP メタチャンネルを取得します。

TOP固有情報 🖼️

  • resx: TOP の出力解像度 X (ピクセル単位)
  • resy: TOP の出力解像度 Y (ピクセル単位)
  • aspectx: アスペクト比 X
  • aspecty: アスペクト比 Y
  • depth: 3D テクスチャ / テクスチャ配列の深度 (2D テクスチャでは 1)
  • gpu_memory_used: TOP が消費している GPU メモリ量 (MB 単位)

汎用オペレータ情報 🔄

  • total_cooks: プロセス開始からのクック回数
  • cook_time: 最後のクック時間 (ミリ秒)
  • cook_frame: 最後にクックされたフレーム番号
  • warnings: 警告数
  • errors: エラー数

トラブルシューティング ⚠️

よくある問題と解決策 🔧

❌ Problem: 画像が真っ白や真っ黒になってしまう
✅ Solution:

  • Pre Page の Brightness 1 / Contrast が極端な値になっていないか確認 (Contrast を 5 以上にすると簡単に白飛び)
  • Range Page の In Low / In High が逆転 (In Low > In High) すると階調反転で真っ黒に近くなる
  • Black Level を高くしすぎると暗部が全て黒に潰れる。0 〜 0.1 程度から調整

❌ Problem: ポスタリゼーションの境界がギザギザになる
✅ Solution:

  • Step Page の Soften を 0.05〜0.2 程度に上げて境界をブレンド
  • 上流に Blur TOP を軽く挟んで入力のジャギーを丸める
  • Pixel Format を 16-bit float 以上に上げて階調の量子化を抑える

❌ Problem: Source を変えても見た目が変わらない
✅ Solution:

  • Source は補正対象チャンネルの指定であり、選択チャンネルが既に均一値だと変化が見えない (例: グレースケール画像で Red / Green / Blue を切り替えても同一輝度なので差が出にくい)
  • Source を変更したら同時に Brightness 1 / Gamma 1 / Contrast を動かして効果を確認
  • Channel Mask (Common Page) で対象チャンネルが OFF になっていないか確認

❌ Problem: 輝度の補正がチャンネル間でずれる・カラーシフトが起きる
✅ Solution:

  • SourceLuminance または RGBA Average に設定するとカラーシフトを抑えられる (個別 R/G/B 選択はチャンネル間バランスが崩れやすい)
  • Pre / Post で 2 段ガンマを使う場合、Gamma 1 と Gamma 2 を同方向にかけすぎると非線形に色味がずれる。1 段ずつ確認しながら調整
  • 厳密なカラーグレーディングが目的なら HSV Adjust TOP や Lookup TOP に切替

参考資料 📚

その他 🔗

公式リソース 📖

この記事は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をコピーしました