Houdini 20.0 コンポジット

コンポジットの用語と概念

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つのチャンネルrgbで表現。

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の命令をサポートしています。

コンポジット

基本

レイヤ

カメラエフェクト

上級

導師レベル