Camera COMP

概要

Cameraコンポーネントは、実在するカメラのように動作する3Dオブジェクトです。Cameraコンポーネントを通してシーンを見て、カメラの視点でレンダリングします。Cameraコンポーネントは、3D階層内の他の3Dコンポーネントに接続またはリンクすることができます。

パラメータ – Xform ページ

COMP共通- Xformページの章を参照して下さい。

パラメータ – Pre-Xform ページ

COMP共通- Pre-Xformページの章を参照して下さい。

パラメータ – View ページ
Projection / projection

ポップアップメニューでパースペクティブとオルソグラフィックの投影タイプを設定します。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 Blend / projectionblend

ProjectionパラメータがPerspective to Ortho Blendに設定されている場合、透視投影と正射影をブレンドします。

Ortho Width / orthowidth

Projection ポップアップメニューで Orthographic を選択した場合のみ有効です。直交投影の幅を指定します。

Viewing Angle Method / viewanglemethod

カメラの画角をどのような方法で定義するかを設定します。

  • Horizontal FOV / horzfov
    カメラの水平方向の画角を設定するために FOV Angle パラメータを使用します。
  • Vertical FOV / vertfov
    カメラの垂直方向の画角を設定するために FOV Angle パラメータを使用します。
  • Focal Length and Aperture / focalaperture
    カメラの画角をFocal Length(焦点距離)とAperture(絞り)パラメータを使って設定します。
FOV Angle / fov

FOV(Field of View)Angle はカメラで撮影されたシーンの角度の広がりを設定します。

Useful Equations

視野角と投射角。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

FOV calculations in x and y

上記の式は、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

Focal Length / focal

レンズの焦点距離を設定し、ズームインとズームアウトを行います。焦点距離に応じて、遠近感がフラットになったり、誇張されたりします。絞り値、焦点距離、視野角の関係については、FOVアングルパラメータを参照してください。このパラメータを使用すると、興味深いディストーション効果を得ることができます。

Aperture / aperture

この値は、カメラが光を通過させることができる領域に関するものです。

Near / near

近距離のクリッピングプレーンを設定します。この距離よりもレンズに近いジオメトリは表示されません。
注:シーン内のジオメトリでZデプスのアーティファクトが発生する場合は、カメラのZデプスバッファの解像度を上げてください。そのためには、近い側のクリッピングプレーンから順に、近い側と遠い側のクリッピングプレーンの差を小さくしていきます。

Far / far

遠距離クリッピングプレーンを設定します。この距離よりもレンズから遠くにあるジオメトリは表示されません。
注:シーン内のジオメトリでZデプスのアーティファクトが発生する場合は、カメラのZデプスバッファの解像度を上げてください。そのためには、近い側のクリッピングプレーンから順に、近い側と遠い側のクリッピングプレーンの差を小さくしていきます。

Window Roll Pivot / winrollpivot
  • Viewport Origin / viewport
  • Camera Origin / camera
  • Legacy Behavior / legacy
Window X/Y / win

これらのパラメータは、レンダリング処理中のウィンドウの中心を定義します。windowパラメータは、ビューを取得し、カメラの視野に合わせて拡大します。ここで重要なのは、この動作がパースペクティブに依存しないということです。つまり、実際にカメラを動かさなくても、カメラをパンしているかのように動作するのです。このパラメータの単位は正規化されています。つまり、Window Xが-0.5の場合、画像の前の中心がレンダリングの左端に移動することになります。

Window Size / winsize

Window Sizeパラメータは、ビューを拡大するための寸法を指定します。Window X / Yと同様に、このパラメータは、ビューポートにレンダリングする前に画面をスケーリングすることで、ズーム効果を生み出します。

Window Roll / winroll

このパラメータは、ウィンドウ領域がロールする量を度数で設定します。この値は、静的な値として設定することも、アニメーションの過程で変化する側面として設定することもできます。ロールは、ウィンドウの中央付近で発生します。

IPD Shift / ipdshift

これは Interpupillary Distance(瞳孔間距離)のことで、X軸に平行移動を行います。キューブマップのレンダリングなどを行う場合、他のキューブ面への回転後にシフトを行う必要があるため、このパラメータは他のトランスレーションとは別のものです。X translateパラメータで直接シフトを適用すると、多くのキューブ面でカメラが正しくない位置に配置されてしまいます。
2台のカメラでIPDを使用するには、右目のカメラを+IPD/2に、左目のカメラを-IPD/2に設定する必要があります。

Proj Matrix/CHOP/DAT / projmatrixop

Custom Projection Matrixを選択した場合、このパラメータには、4×4のカスタムプロジェクションマトリクスを入力する必要があります。パラメータにマトリクスを指定する方法については、Matrix Prameters の章を参照してください。

Custom Projection GLSL DAT / customproj

カスタム投影関数を指定する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 Reproject SOP / quadreprojsop

Quad Reprojection(クアッド・リプロジェクション)は、シーン内の任意のクアッド(四角形)をリプロジェクションして、そのクアッドが終わるレンダリングの部分を、レンダリングの出力を満たすように拡大する機能です。この機能の詳細については、Quad Reprojectionの章を参照してください。

Quad Reproject Points / quadreprojpts

Quad Reproject SOP で参照される SOP の中で、再投影される領域を決定する四角形を構成する 4 つの点のインデックスを設定します。指標は、カメラから見て左下、右下、左上、右上の順で指定します。参照するSOPは、レンダリングされるCOMP内にあることで、適用されるワールドトランスフォームが考慮されるようにします。

パラメータ – Settings ページ
Background Color / bgcolor

カメラのビューの背景色とアルファを設定します。

  • Red / bgcolorr
  • Green / bgcolorg
  • Blue / bgcolorb
  • Alpha / bgcolora
Fog / fog

ビューポートにレンダリングされるフォグのタイプを決定します。リニアフォグは、次の式を使用します。

Exponentialフォグは、次のような式で表されます。

Squared Exponentialフォグは、次のような式で表されます。

Fog Density / fogdensity

フォグの密度または厚さを指定する値で、両方のexponentialフォグタイプで使用されます。整数値の密度のみが受け入れられます。

Fog Near / fognear

フォグの開始距離を設定します。ジオメトリがこの距離よりもカメラに近い場合、フォグはジオメトリの色で計算されません。フォグの線形方程式が使用されます。

Fog Far / fogfar

線形フォグの方程式で使用する奥方向の終了距離を設定します。

Fog Color / fogcolor

フォグのカラーを設定します。

  • Red / fogcolorr
  • Green / fogcolorg
  • Blue / fogcolorb
Fog Alpha / fogalpha

シーンの背景の不透明度をコントロールするために使用します。

Fog Map / fogmap

フォグのカラーマップとして、TOPテクスチャーを使用します。

Camera Light Mask / camlightmask

特定のライトのみをこのカメラで使用することを許可します。Render TOPのLightsパラメータと併用して、ジオメトリの照明に使用するライトを決定します。このパラメータが空白の場合、Render TOPで指定されたすべてのライトが使用されます。このパラメータで指定されたライトは、このカメラでのジオメトリの照明を、指定されたライトに制限します。(ライトがRender TOPにもリストされている場合)

パラメータ – Render ページ

COMP共通- Renderページの章を参照して下さい。

パラメータ – Extensions ページ

COMP共通- Extensionページの章を参照して下さい。

パラメータ – Common ページ

COMP共通- Commonページの章を参照して下さい。