部分実装

仕様と現在の対応範囲#

公開仕様と実装範囲を別に管理します。仕様が確定しただけの機能を、利用可能と表示しません。Build76(2026年10月19日)の動画・Previewと文書の監査を反映しています。過去の性能値は記載した環境・版の記録です。

CNL言語#

CNL言語ガイドに、入門・記法・型・関数・画像処理・反復・エラーをまとめています。現在の構文は型付き関数、不変のローカル、Boolean、算術・比較、通常の関数呼び出しと有界の反復です。基本import/export、GLSL/HLSL/Slangと登録OpenFXの初期profileも実装しています。外部実装に制限を記載しています。一般の遅延分岐、全構文の相互編集、任意のshader/resource構成は未完成です。言語の対応範囲も参照してください。

型とデータ#

項目 対応範囲 残る作業
二つのType Formatと十の公開型 七つのValue型とGrid/Image/Video。String・Enumの型、リテラル、参照、保存、uniform値処理。Source Layer・画像関数・JPEG/codecの論理Color入出力 String/Enumの可変長・有限Fieldストレージ、codec内部ABIや一部の計算補助署名まで含む全面移行
Grid / Image / Video記述 Shape・Dimension・Coordinate・Value Name・Attribute、保存 全ノードへの伝播・構造操作
Precision Binary16/32/64の不変データ保存 ネイティブGPUはBinary32のみ
ネイティブField入出力 Float32のImage、数値/Color rank1〜3 Grid、Videoの所有バッファと記述 Boolean/Integer Field、高rank、全演算での伝播
Data Wrangler 型付き参照APIと一括編集 CNL構文、専用ノード、エディタ
接続 型規則、多入力の入力待ち、原子的な編集 全ライブラリの新型契約への統一

画像・映像#

項目 対応範囲 残る作業
File 静止画、EXR Color/Scalar/XYZ選択、動画・連番、paged immutable取得、Videoの速度・開始フレーム・Repeat、取得状態の共有 全EXR形式、初回取得の高速化、全取得経路の実AE受入
Video 実PTSの時間座標・保存、現在時刻の内部Image観測、補助ノードを追加しない直接接続、静的Sampleと明示Time、カラーPreview、RGBAの3D FFTと動的Convolve 全演算のTime伝搬、時間補間、独立した再生UI、長尺・各codecでの実AE受入
FFT / IFFT / Convolve Float/Vector/Color Grid、Image、Video、2D/3Dの対応mixed-radixサイズ、大Kernel、rank1〜3のVulkan実行 任意rank・大きな素数軸・Boolean/Integer Field・全Precisionの対応
JPEG / Video Codec 実JPEGとMPEG-4 I/P画像対のcodec実験 一般動画の時間列・コンテナ・エラー耐性の拡充
Preview レイヤー/エフェクトの選択経路、RGBA・GPU lease表示、一致するAE描画結果の再利用、一枚実行+最新一枚の要求集約、転送待ちの前画像維持、全4辺・4隅の浮動resize 実AEの同時再生・MFR・色管理、独立した再生UIと全Field Attributeの受入
Render Time 実評価ms、プログラム・入力・エフェクトに対応した観測 ノード別、純GPU、転送の分解計測
Normalize 独立した型依存ノード。Boolean Value/Gridの恒等、Integer Valueの正確な符号、Float/Vector/Complex<Float> Valueの単位長、Color ValueのRGB値域、有限Float32 Grid/Image/Videoの成分別値域。Gridは任意の正の論理rankで有効、現在のVulkan有限Float32実行はrank1〜3 Complex<Vector>、有限Integer/Complex Field、native Integer/Boolean Field入力・転送の全対応、rank>3のGPU実行、全Precision、遅延Fieldの無制限値域、D3D12/Metal有限実行

編集とAE連携#

入力待ち、型不一致、実行未対応は別の状態です。配置だけの保存は計算更新と区別します。複数パネルの下書き、AEP共有、選択中エフェクトへの個別更新を維持します。ECP公開UIは対応する値の名前・形を同期しますが、一般AEキーフレーム化は未完成です。

Nodeの通常編集とCodeのApplyの検証・shader準備・公開、VisualのCNL表示生成は単一workerへ移し、最新の保存版だけを採用します。版の照合、保存・Undo・ロード・reset、検証失敗を自動試験します。構造編集、局所型推論、表示モデル、一部のCode変換・Function操作、AE側のロード・保存はなお同期経路を含みます。未接続Outputの表示設定は編集・保存・再接続に対応しましたが、任意の複数returnへ全面一般化したわけではありません。

既存ノード検索、F3/Shift+F3の次/前、Ctrlホバーの一時上流表示、接続コンポーネント選択、入力/出力/両側の一括切断、第一・第二入力の原子的交換、接続元への移動に対応します。検索と移動は計算を変更しません。Knifeを含む切断はAE公開入力とロックを尊重します。検索ハイライトと関連度はAdd/Findで共通です。詳しい成立・取消し条件は操作で確認できます。

WindowsのプラグインとGPU処理は、単体テスト・本番コードを使用したホスト模擬環境・実GPUで検証します。AEデスクトップでの操作確認、macOS上のAEプラグインとoverlay操作は別の実機検証です。模擬テストの合格をその代わりとはしません。

Edit ParameterのAllow overshootは数値の表示範囲外操作に対応します。演算・型から導出した Processing limitsは読み取り専用で、操作や表示範囲の設定でも超えません。現在の上限導出は Boolean、整数、列挙、Box/Gaussian半径、Radial Samples、JPEG品質/成分、MPEG-4 qscale、 byte編集の範囲・mask、Videoの整数Sampleに対応し、全演算の定義域監査は未完了です。 AE公開の共通コントロールもこの設定を使いますが、実AEの操作とkeyframe化は別の未検証・未完了範囲です。

Box/Gaussianは連続ピクセルを使うネイティブGPU処理です。SDFは選んだR/G/B/A/LuminanceをThresholdで分類し、正確なユークリッド距離を求めます。Normal Mapは選んだ高さチャンネルから生成します。Pixel SortはrucchoのBitonicPixelSorterを固定版で取り込み、4,096ピクセル以下の行/列全体を処理します。これらの対応範囲は「全演算・全ハードウェアが20ms以下」という保証ではありません。

Normal Mapの微分は、選択チャンネルの左右・上下1ピクセルの中心差分です。隣接ピクセルはNearest/Clampで取得し、境界の外側は端の値を使います。補間で別のピクセルを混ぜる操作とは区別します。強度を掛けた勾配とZ=1を単位化し、RGBへ0.5倍+0.5で符号化、Alpha=1を出力します。

Pixel SortはAxis/Orderの閉じたDropdown、Trigger/Criterionの11種類のキー、 Thresholdの内外、Cycle Degreesに対応します。BitonicPixelSorterForAEのMIT版から キー・Cycleを適合しました。同じPixel SortのImage Keysモードでは独立したTrigger Source/Criterion SourceのImageを接続でき、解像度が異なる場合は正規化pixel-center 座標でサンプリングします。Image Keysでは両方の接続が必要で、Sourceの再利用も可能です。 Angle DegreesはAxisからの角度を指定するFree Angleです。0°は既存の軸方向処理を使い、 それ以外はGPU上のforward domain/nearest-pixel gatherを使います。SourceのRGBAを補間・ クランプしませんが、斜めの座標対応は一対一とは限りません。domainの2つの作業バッファは 合計384 MiBまでで、超えるShapeは明示的に拒否します。この新経路はnative Vulkan専用です。 Rotation/Radial/Swirl/Path、Centre/Swirl Amount/Path Directionは未対応です。 詳しい初期値は実装から生成するPixel Sortを参照してください。

Node/Code/Grid/Experiment/PreviewとCodeのFunctions/Editor/Diagnosticsは、 共通の浮動コンテナで切り離し・移動・resize・タブスタック・分割・保存復元に対応します。 Code Subwindowのスコープ制限と、全Windowより上の共通Popup合成も自動試験します。 AE実機のNative Editor/overlay/DPIの受入確認は、この実装・ヘッドレス試験とは別です。

Imageを受けたBox/Gaussianは同じ要素型のImageを直接返します。不要なField化/画像コピーを 除きます。Mapなしの均一半径intrinsicには小半径の共有メモリ経路を維持しています。 公開ノードのMap付き経路は下記のprefix/query・全tap separable処理で、旧経路の計時結果を 新しいMap処理の性能として扱いません。HDRを含むBoxのClamp尾部の丸め誤差、 Gaussianの係数再帰の誤差と1サンプル軸の正規化誤差も修正しました。

Radial BlurはSamplesを1〜256で指定する動的GPU処理です。既定17、1は恒等、全成分と Alphaを同じ重みで平均します。実行時パラメータでSamplesを変える場合はshaderを再使用します。 CNLの定数そのものを編集した場合はプログラムが変わり、再コンパイル対象になります。 Box/GaussianのMapは半径/σへの係数、RadialはZoom/回転への係数、MotionはShutterへの係数です。 0は恒等、1は均一Blur、負・非有限Mapは0、Color MapはRGBの輝度で解釈します。 Boxは誤差補償付きGPU prefix/query、Gaussianは±4σの全tapを使うX→Yの空間可変separable処理です。 深度から係数Mapを作ることはできますが、遮蔽・前景/背景分離を扱う物理DoFではありません。 大きいσのGaussianを含む全GPU1msは未達です。

GPU PreviewへのRGBA32f出力転送は、対応deviceで互換UINT viewを使いビットを維持する compute経路へ短縮しました。HDR、Alpha、NaN、極小値をクランプ・変換しません。 非対応deviceでは正確なGPU内copyを使い、CPU画像へのfallbackはしません。 RTX 2070 SUPERでNormalizeの既存入力を再使用する安定時評価はFHDで0.53〜0.64msでした。 AE入力取得・画面present・初回準備・新規uploadを含む全処理1msの保証ではありません。 同一入力leaseを保持しCNL runtime引数を毎回変えるFHD評価では、Build47のGain約0.46ms、 同一SourceのMerge約0.46ms、小半径Box約0.77ms、Gaussian約0.88msでした。 大きいBoxは約2.16ms、Gaussianは約4.12ms、Vector/Radialは約1.89/2.05msで1msを超えます。 RTX 2070 SUPERでframe2〜9の中央値。小Boxの計時対象半径は2.2〜2.9px、Gaussianは σ1.1〜1.45px、大Boxは17.6〜23.2px、Gaussianはσ8.8〜11.6pxです。全半径の1msを保証しません。 Inspectorのliteral編集はprogramを変更するため、再検証・準備も含む画面更新の時間とは 異なります。画像転送の短縮を全ノードのリアルタイム編集完了とは扱いません。

文書の状態#

Build76は39件の選択回帰、追加のVideo画像処理GPU試験、配布物の9件の読み込み試験を通過しています。並列144回のフレーム取得と36回のGPU画素一致、300要求の連続Previewを含みます。実AEでのMFR・同時再生、別PC、macOSは別の受入です。全ノード・全環境の動作保証を意味しません。

説明範囲の一覧では、操作・ノード・言語・ライセンスの説明先を分けます。文書の存在と実機受入の完了は別です。

「実装済み」はそのページが示す範囲の実装があるという意味です。「部分実装」は仕様の一部が利用可能、「仕様確定・未実装」は契約のみです。各ノードの自動生成Referenceには実際の初期入出力・制御を載せ、内部実行型が残る箇所も表示します。

今後の完了判断は、対応する型とField構造、Node/Codeの整合、異常入力、保存・Undo、GPU、AEの各検証を伴います。ノード名をメニューへ追加しただけでは完了にしません。

このページを編集GitHubへのアクセス権が必要です。

CompNode Guide · 日本語製品ドキュメント仕様と実装範囲は各項目で区別しています。

ドキュメントを検索

検索語を入力してください。

    ↑ ↓ で結果を移動、Enter で開く · 検索はこの端末内だけで実行されます。