Cameraコンポーネントは、実在するカメラのように動作する3Dオブジェクトです。Cameraコンポーネントを通してシーンを見て、カメラの視点でレンダリングします。Cameraコンポーネントは、3D階層内の他の3Dコンポーネントに接続またはリンクすることができます。
COMP共通- Xformページの章を参照して下さい。
COMP共通- Pre-Xformページの章を参照して下さい。
ポップアップメニューでパースペクティブとオルソグラフィックの投影タイプを設定します。3つ目のオプション Perpective to Ortho Blend は Projection Blend パラメータを有効にして、パースペクティブ間のブレンドに使用できます。4つ目のオプション Custom Projection Matrix は tdu.Matrix、CHOP、またはDATを使用して、カスタム4×4プロジェクションマトリックスを指定できます。
- Perspective / perspective
- Orthographic / ortho
- Perspective to Ortho Blend / persporthoblend
- Custom Projection Matrix / custommatrix
ProjectionパラメータがPerspective to Ortho Blendに設定されている場合、透視投影と正射影をブレンドします。
Projection ポップアップメニューで Orthographic を選択した場合のみ有効です。直交投影の幅を指定します。
カメラの画角をどのような方法で定義するかを設定します。
- Horizontal FOV / horzfov
カメラの水平方向の画角を設定するために FOV Angle パラメータを使用します。
- Vertical FOV / vertfov
カメラの垂直方向の画角を設定するために FOV Angle パラメータを使用します。
- Focal Length and Aperture / focalaperture
カメラの画角をFocal Length(焦点距離)とAperture(絞り)パラメータを使って設定します。
FOV(Field of View)Angle はカメラで撮影されたシーンの角度の広がりを設定します。
視野角と投射角。FOVは次のようになります。
FOV = arctan( (screenWidth / 2) / (distanceToScreen) )* 2FOV = arctan( 0.5 * (screenWidth / distanceToScreen) )* 2
Throwは
Throw = distanceToScreen / screenWidth1/Throw = screenWidth / distanceToScreen
Throwでいうと
FOV = arctan(0.5 * (1/Throw))* 2FOV = arctan(0.5 / Throw) * 2
上記の式は、Comera COMPのパラメータfocalとappertureを使って、FOV_xとFOV_y(つまり水平方向と垂直方向)を決定するのに使用できます。TouchDesignerのCamera COMPでは、screenWidth = apertureパラメータ、distanceToScreen = focalパラメータ(infinity focusを想定)となり、以下のようになります。
FOV_x = arctan((aperture / 2) / focal) * 2
さらに、前述のように、アパーチャパラメータ = aperture_x と、レンダリングビューのxおよびy方向の解像度(つまりアスペクト比)が与えられている場合は
aperture_y = resy/resx * aperture_x
これより
FOV_y = arctan( (aperture_y / 2) / focal )* 2
レンズの焦点距離を設定し、ズームインとズームアウトを行います。焦点距離に応じて、遠近感がフラットになったり、誇張されたりします。絞り値、焦点距離、視野角の関係については、FOVアングルパラメータを参照してください。このパラメータを使用すると、興味深いディストーション効果を得ることができます。
この値は、カメラが光を通過させることができる領域に関するものです。
近距離のクリッピングプレーンを設定します。この距離よりもレンズに近いジオメトリは表示されません。
注:シーン内のジオメトリでZデプスのアーティファクトが発生する場合は、カメラのZデプスバッファの解像度を上げてください。そのためには、近い側のクリッピングプレーンから順に、近い側と遠い側のクリッピングプレーンの差を小さくしていきます。
遠距離クリッピングプレーンを設定します。この距離よりもレンズから遠くにあるジオメトリは表示されません。
注:シーン内のジオメトリでZデプスのアーティファクトが発生する場合は、カメラのZデプスバッファの解像度を上げてください。そのためには、近い側のクリッピングプレーンから順に、近い側と遠い側のクリッピングプレーンの差を小さくしていきます。
- Viewport Origin / viewport
- Camera Origin / camera
- Legacy Behavior / legacy
これらのパラメータは、レンダリング処理中のウィンドウの中心を定義します。windowパラメータは、ビューを取得し、カメラの視野に合わせて拡大します。ここで重要なのは、この動作がパースペクティブに依存しないということです。つまり、実際にカメラを動かさなくても、カメラをパンしているかのように動作するのです。このパラメータの単位は正規化されています。つまり、Window Xが-0.5の場合、画像の前の中心がレンダリングの左端に移動することになります。
Window Sizeパラメータは、ビューを拡大するための寸法を指定します。Window X / Yと同様に、このパラメータは、ビューポートにレンダリングする前に画面をスケーリングすることで、ズーム効果を生み出します。
このパラメータは、ウィンドウ領域がロールする量を度数で設定します。この値は、静的な値として設定することも、アニメーションの過程で変化する側面として設定することもできます。ロールは、ウィンドウの中央付近で発生します。
これは Interpupillary Distance(瞳孔間距離)のことで、X軸に平行移動を行います。キューブマップのレンダリングなどを行う場合、他のキューブ面への回転後にシフトを行う必要があるため、このパラメータは他のトランスレーションとは別のものです。X translateパラメータで直接シフトを適用すると、多くのキューブ面でカメラが正しくない位置に配置されてしまいます。
2台のカメラでIPDを使用するには、右目のカメラを+IPD/2に、左目のカメラを-IPD/2に設定する必要があります。
Custom Projection Matrixを選択した場合、このパラメータには、4×4のカスタムプロジェクションマトリクスを入力する必要があります。パラメータにマトリクスを指定する方法については、Matrix Prameters の章を参照してください。
カスタム投影関数を指定するGLSLシェーダを含むDATを受け取ります。このシェーダでは、1つの関数を提供する必要があります。ここでは、カスタム関数が指定されていない場合に使用される関数の定義を示します。これは、Render TOPが2D出力をレンダリングする場合にのみ使用され、キューブマップや魚眼レンダリングではありません。
vec4 UserWorldToProj(vec4 worldSpaceVertPosition, int cameraIndex)
{
vec4 projP = uTDMats[cameraIndex].camProj * worldSpaceVertPosition;
return projP;
}
vec3 TDWorldToProj()は、適切な箇所で自動的にこれを呼び出します。ユニフォームやサンプラーは、ここで宣言し、Render TOPのGLSLページで提供することで、このシェーダーコードで使用することができます。
Quad Reprojection(クアッド・リプロジェクション)は、シーン内の任意のクアッド(四角形)をリプロジェクションして、そのクアッドが終わるレンダリングの部分を、レンダリングの出力を満たすように拡大する機能です。この機能の詳細については、Quad Reprojectionの章を参照してください。
Quad Reproject SOP で参照される SOP の中で、再投影される領域を決定する四角形を構成する 4 つの点のインデックスを設定します。指標は、カメラから見て左下、右下、左上、右上の順で指定します。参照するSOPは、レンダリングされるCOMP内にあることで、適用されるワールドトランスフォームが考慮されるようにします。
カメラのビューの背景色とアルファを設定します。
- Red / bgcolorr
- Green / bgcolorg
- Blue / bgcolorb
- Alpha / bgcolora
ビューポートにレンダリングされるフォグのタイプを決定します。リニアフォグは、次の式を使用します。
Exponentialフォグは、次のような式で表されます。
Squared Exponentialフォグは、次のような式で表されます。
フォグの密度または厚さを指定する値で、両方のexponentialフォグタイプで使用されます。整数値の密度のみが受け入れられます。
フォグの開始距離を設定します。ジオメトリがこの距離よりもカメラに近い場合、フォグはジオメトリの色で計算されません。フォグの線形方程式が使用されます。
線形フォグの方程式で使用する奥方向の終了距離を設定します。
フォグのカラーを設定します。
- Red / fogcolorr
- Green / fogcolorg
- Blue / fogcolorb
シーンの背景の不透明度をコントロールするために使用します。
フォグのカラーマップとして、TOPテクスチャーを使用します。
特定のライトのみをこのカメラで使用することを許可します。Render TOPのLightsパラメータと併用して、ジオメトリの照明に使用するライトを決定します。このパラメータが空白の場合、Render TOPで指定されたすべてのライトが使用されます。このパラメータで指定されたライトは、このカメラでのジオメトリの照明を、指定されたライトに制限します。(ライトがRender TOPにもリストされている場合)
COMP共通- Renderページの章を参照して下さい。
COMP共通- Extensionページの章を参照して下さい。
COMP共通- Commonページの章を参照して下さい。