
概要 📖 – ジャギーを滑らかにする
Anti Alias TOPは、入力画像のエッジを検出してアンチエイリアシング処理を施し、ジャギーを軽減した滑らかなテクスチャを出力する TOPです。Quality でプリセット (Low / Medium / High / Ultra / Custom) を選び、Edge Detect Source で輝度ベース / RGB ベースの検出方式を切り替えます。FXAA 系の軽量アルゴリズムで MSAA より低 GPU コストで動作します。
主な用途 🎯
- Render TOP 出力のジャギー軽減 (ポストプロセス AA)
- リアルタイム合成画像のエッジ平滑化 (MSAA より軽量な GPU コスト)
- Text TOP / UI 要素を重畳した後のエッジ品質向上
- プロジェクションマッピング・LED ウォール出力前の最終仕上げ
- 動的シーン・回転オブジェクトの動的エイリアシング (一時的な階段状のちらつき) の抑制
データフロー 🔄
入力: 任意の TOP (画像)
↓
Edge Detect Source (Luminance / RGB) でエッジを検出
↓
Edge Threshold で検出感度を制御
↓
検出エッジに沿ってサブピクセル単位で平滑化
↓
出力: 同解像度のアンチエイリアシング処理済テクスチャ
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
Anti Alias Page 📋
Quality .quality 🎚️
アンチエイリアシング処理の品質プリセット
| 項目 | 内部名 | 説明 |
|---|---|---|
| Low | .low |
最低品質 (GPU 負荷最小、軽いプロトタイピング向け) |
| Medium | .medium |
中品質 (バランス型、リアルタイム用途デフォルト) |
| High | .high |
高品質 (細部のジャギーまで処理、コスト高め) |
| Ultra | .ultra |
最高品質 (映像書き出し・印刷向け、リアルタイムでは負荷大) |
| Custom | .custom |
Max Search Steps / Max Diag Search Steps / Corner Rounding を手動指定 (上記プリセットを上書き) |
※ 注意: Quality を高くすると GPU 負荷が増加します。Custom を選択した場合のみ Max Search Steps / Max Diag Search Steps / Corner Rounding パラメータが有効になり、それ以外のプリセットでは内部固定値が使用されます。
Edge Detect Source .edgedetectsource 🔍
エッジ検出の評価チャンネル
| 項目 | 内部名 | 説明 |
|---|---|---|
| Luminance | .lum |
RGB を合成した輝度 (Luminance) からエッジを検出。高速・汎用、ほぼ全ケースのデフォルト推奨 |
| RGB | .rgb |
R / G / B の各チャンネルを独立に検出。色境界が複雑なシーン (彩度差が大きく輝度差は小さい等) で Luminance より高精度 |
エッジ検出パラメータ 🎛️
Edge Threshold .edgethreshold 📏
エッジ検出の感度を制御する閾値。値を下げるほど多くのエッジが検出され AA が広く効く (代わりに細部の本来エッジでない箇所もぼかしやすい)。Output Edges を有効化して検出結果を視覚的に確認しながら調整するのが推奨ワークフロー
Max Search Steps .maxsearchsteps ↔️
横方向・縦方向のエッジ探索ステップ数 (Quality = Custom の時のみ有効)。値を上げるほど長いエッジを正確に追跡できる代わりに GPU 負荷が線形に増加
Max Diag Search Steps .maxdiagsearchsteps ↗️
斜め方向のエッジ探索ステップ数 (Quality = Custom の時のみ有効)。斜め線・曲線のジャギーが目立つ場合に上げる。値を 0 にすると斜め検出が無効化される
Corner Rounding .cornerrounding 🟢
エッジコーナーの丸め込み強度 (Quality = Custom の時のみ有効)。値を上げると鋭角が丸まり滑らかになるが、テキストや UI の角がぼやけやすくなる
Output Edges .outputedges 👁️
検出されたエッジを可視化するデバッグ表示:
- Output Edges: オンにするとアンチエイリアシング処理結果ではなく、検出されたエッジを白で可視化する。Edge Threshold の調整時に「どこに AA が適用されるか」を視覚的に確認するためのデバッグモード
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 の処理を何パス繰り返すかの整数値。前回パスの結果が次回パスの入力になる。Anti Alias 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: Render TOP の後段に挿入してジャギーを軽減 🎨
Geometry COMP / Camera COMP → Render TOP → Anti Alias TOP → Out TOP
Render TOP のラスタライズ出力にはエッジのジャギー (階段状のエイリアシング) が必ず発生する。Anti Alias TOP を Render TOP の直後に挿入することで、MSAA を有効化するより軽い GPU コストでポストプロセス AA を適用できる基本フロー。
- Geometry COMP と Camera COMP を Render TOP に接続して 3D シーンをレンダリング
- Anti Alias TOP を Render TOP の出力に接続
Quality=HighまたはMediumに設定 (リアルタイム性能に応じて選択)Edge Detect Source=Luminanceで輝度ベースのエッジ検出を有効化
Example 2: Edge Threshold チューニングのデバッグワークフロー 🔍
入力 TOP → Anti Alias TOP (Output Edges=on) → 検出結果を視覚確認 → Output Edges=off で実 AA を出力
Anti Alias TOP の効果が弱い・効きすぎる場合の原因はほぼ Edge Threshold の値。Output Edges を有効化して検出されたエッジを白で可視化しながら、目的のエッジだけが検出される値を探るのが推奨ワークフロー。
- Anti Alias TOP の
Output Edgesパラメータを ON にする - ビューアに白く浮かび上がるエッジを観察し、検出範囲を確認
Edge Thresholdを上下させて、本来 AA したいエッジだけが検出される値を探る- 適正値が決まったら
Output Edgesを OFF に戻して実際の AA 結果を出力
Example 3: テキスト・UI 重畳合成後の最終仕上げ ✨
Background TOP + Text TOP / UI Composite → Composite TOP → Anti Alias TOP → 出力
Text TOP や UI 要素を Composite TOP で重畳した後の出力にも、文字エッジや UI 境界にジャギーが残る。最終出力直前に Anti Alias TOP を 1 枚挟むことで、ポストプロセスとして全体のエッジ品質を均一に仕上げられる。
- 背景画像と Text TOP / UI 要素を Composite TOP で重畳
- Composite TOP の出力を Anti Alias TOP に接続
Quality=Mediumで軽量化、またはHighでテキスト品質優先Edge Thresholdを上げ気味にして細い文字ストロークが過剰にぼけないよう調整
関連オペレータ 🔗
類似機能OP 🔍
- Blur TOP — 全画素ガウシアン平滑化 (エッジ非選択型の汎用ぼかし、AA とは異なるアプローチ)
- Edge TOP — エッジ検出のみを行う (Anti Alias の内部処理の前段に相当、検出結果を独立に取り出したい場合に使用)
組み合わせ推奨OP 🔄
- Render TOP — 3D シーンのラスタライズ出力 (Anti Alias TOP の典型的な前段)
- Tone Map TOP — HDR → SDR のトーンマッピング (Anti Alias の前後どちらでも組み合わせ可)
- Composite TOP — 複数レイヤ合成後の最終出力に Anti Alias を適用
- GLSL TOP — 独自シェーダで FXAA / SMAA / TAA など別系統 AA を実装したい場合の代替
前処理・後処理TOP 🎯
- 前処理: Render TOP、Tone Map TOP、Composite TOP
- 後処理: Level TOP、Out TOP
Info CHOP情報 📊
Anti Alias TOPは Info CHOP による詳細情報取得に対応しています。出力テクスチャの resolution_w / resolution_h / aspectx / aspecty / depth / num_components / gpu_mem_used 等の標準 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: エラー数
トラブルシューティング ⚠️
よくある問題と解決策 🔧
❌ Problem: Anti Alias の効果が薄い / 一部のジャギーしか取れない
✅ Solution:
Edge Thresholdを下げて検出感度を高める (Output Edges= ON で検出範囲を視覚確認しながら調整)Edge Detect Source=Luminance→RGBに切り替え (色境界主体のシーンで効果改善)QualityをHigh/Ultraに格上げ、またはCustomでMax Search Steps/Max Diag Search Stepsを増やす
❌ Problem: テキスト・細い線・UI が過剰にぼけて品質劣化
✅ Solution:
Edge Thresholdを上げて検出感度を抑える (本来エッジでない領域の誤検出を減らす)Corner Roundingを下げる (角の鋭さを保持、Quality = Custom 時のみ)Passesを 1 に戻す (複数パスでぼやけが累積している場合)
❌ Problem: GPU 負荷が高くフレームレートが落ちる
✅ Solution:
QualityをMedium/Lowに下げるCustom+Max Search Steps/Max Diag Search Stepsを低めに固定して負荷をコントロール- Crop TOP 等で AA をかけたい領域だけを切り出し、画面全体ではなく必要範囲のみに適用
❌ Problem: MSAA との使い分け・併用判断が分からない
✅ Solution:
- Render TOP 側で MSAA を有効化済みの場合、ハードウェアジオメトリエッジはすでに緩和されている → 重ねがけは効果薄、シェーディングアーティファクト (specular aliasing) 対策として軽く併用程度
- MSAA は GPU メモリを大量消費 → 高解像度 (4K 以上) では Anti Alias TOP (ポストプロセス FXAA 系) 単独の方が軽量
- 動的シーンの一時的ちらつき (time aliasing) は Anti Alias TOP だけでは抑えきれない → TAA 系が必要なら GLSL TOP で独自実装
参考資料 📚
その他 🔗
- TouchDesigner Wiki — Category:TOPs
- TouchDesigner Wiki — Pixel Formats 解説
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group

