On this page |
Houdiniには、 ネットワークベース のコンポジターと プロシージャル なコンポジターがあります。Houdiniでコンポジットをするには、“ジェネレータ”ノードでピクセルデータを読み込み・作成して、データを修正するのに“フィルター”ノードを使います。
コンポジットノード(COP)は画像シーケンスを操作(内部的には通常は1度に1個の平面を処理します)して、画像シーケンスを出力します。
構成とデータタイプ ¶
Houdiniコンポジターは 画像のシーケンス を扱います。画像は 平面 で構成します。平面は ピクセル の2次元マップで、1~4つのチャンネルまたはデータの配列を保存することができます。
Sequence
シーケンスとは連番画像のことで、開始フレームと長さを持ちます。
シーケンスの画像すべては同じ寸法です(例えば、同じシーケンス内に800×600ピクセルのフレームと1024×768 ピクセルのフレームを共存させることができません)。
シーケンスは プリ/ポスト拡張条件 を使ってシーケンスのフレーム範囲外でのデータの挙動を指定することができます。例えば、最初/最後のフレームを 保持 、ブラックのフレームを表示、シーケンスの循環、シーケンスを前後にミラー化(いわゆるピンポン)することができます。
シーケンスのプロパティは、時間外では一定であるということです。それらのプロパティをアニメーションすることはできません。
Image
画像とはシーケンス内の単一フレームのことです。画像はたくさんの平面で構成することができ、それぞれ違うタイプの情報(例えば、カラー)を保存することができます。
Plane
Houdiniコンポジターは ディープラスター をサポートしています。つまり画像は各ピクセルの情報を多くのレイヤーで保持することができます。(Houdiniコンポジターでは1000枚まで)。情報の各レイヤーを平面と呼びます。従来のRGBAカラー情報平面に加えて、深度、法線、マットのような情報を保存することができます。以下の“標準平面”を参照してください。
Pixel
平面はピクセルの2次元マップです。各ピクセルには1~4つのチャンネル(以下参照)または1~4096のエレメントの配列を保存することができます。
配列を保存する時、 plane[index]
を使って配列のエレメントを参照することができます。各エレメントには色々な値を含めることができますが、すべてのエレメントは同じデータタイプで同じコンポーネント構造(以下のコンポーネントを参照)である必要があります。これは6面体のマップを表現するのによく使います。つまり、立方体の6つの面を表現するのにカラー(C
)平面に6つの配列でエメレントを保存します。
ピクセルは配列のデータを保存することができるので、4次元行列(Matrix4)の平面を4つのエレメントの配列の平面として表現することができます。この配列には32ビット浮動小数点が4つ(Vector4)含まれています。
Channels
チャンネルはピクセルのサブデータのようなものです。例えば、カラー平面(C
、以下の“標準平面”を参照)上の各ピクセルには赤(r
)、緑(g
)、青(b
)のチャンネルがあります。
1つのチャンネルを持つエレメントのことを スカラー と呼びます。2つの場合は 2チャンネル 、3つの場合は Vector3 そして4つの場合は Vector4 と呼びます。
plane.channel
を使って平面のチャンネルを参照することができます。例えば、C.r
は、カラー(C
)平面の赤(r
)チャンネルを意味します。
チャンネルは異なるデータのタイプ5つのうち1つを保持することができます:
8ビット整数
0~255の整数を格納することができます。最小の整数フォーマットなので、メモリ使用量が少なく、且つ処理が高速です。ビデオの高圧縮には使えますが、不可逆です。
16ビット整数
0~65535の整数を格納することができます。映画の従来のカラーの表現です。他のフォーマットと比べてある程度適していて低圧縮です。8ビット整数よりも2倍のスペースを使います。ただ、HDRフォーマットには不十分です(ブラック/ホワイトポイントでさえも)。なぜなら、そのHDRフォーマットは線形的だからです。
32ビット整数
0~2の32乗の整数を格納することができます。32ビット整数はカラー情報の格納を意図していません: オブジェクトやポイントのID、パーティクル寿命などを格納するのに向いています。数百万もの値を固有に識別するのに使うことができますが、メモリが多く必要で処理が遅くなります。
16ビット浮動小数点
-65535.0~65535.0の浮動小数点を格納することができます。0(ブラック)と1(ホワイト)間に細かい解像度を設定することができます。量子化はHDR画像の細かさで増やします。非常に高いHDRコントラスト比を表すことができます。メモリ使用量は32ビット浮動小数点よりも少ないです。バンプマップと法線マップを精度よく表現することができます。
32ビット浮動小数点
-1eの32乗から1eの32乗までの浮動小数点を格納することができます。ほとんどのコンポジットアプリケーションで最高の解像度です。たくさんのメモリが必要になります。
整数フォーマットは必要に応じて ホワイトポイント と ブラックポイント を設定することができます(ブラックポイントとホワイトポイントを参照)。デフォルトでは、ブラックポイントは0でホワイトポイントがフォーマットの最大値です(8ビット- 0, 255; 16ビット- 0, 65535; 32ビット - 0, 20億)。
標準平面 ¶
以下の平面がHoudiniコンポジターで認識されます。
Color (C)
I画像カラー。3つのチャンネルr
、g
、b
で表現。
Alpha (A
)
画像アルファ。1つのチャンネル。
Mask (M
)
オペレーションマスク。これはフィルター処理ではステンシルとして機能します。1か3つのチャンネル。
Depth (Z
)
Z深度。1つの32ビット浮動小数点チャンネル。
Point (P
)
3Dカメラ空間のポイントポジション。3つの32ビット浮動小数点チャンネル(x,y,z)
。
Normal (N
)
オブジェクトポイント法線。3つの32ビット浮動小数点チャンネル(x,y,z)
。
Bump (B
)
バンプマップ。2つの32ビット浮動小数点チャンネル(u,v)
。
Velocity (V
)
Point Velocityマップ。3つの32ビット浮動小数点チャンネル(x,y,z)
。
Luminance (L
)
1つの単一チャンネル。
他の平面はMantraで生成する場合があります。例えば、任意のエクスポートしたシェーダ変数がそれです。これらの変数はコンポジターで使うことができますが自動的に認識しません(そのチャンネルも同様)。
Houdiniコンポジターはマルチスレッド(8個のスレッドまでサポート)に対応していて、プロセッサのSSEとMMXの命令をサポートしています。