基本的な3Dカメラ。 [詳細]
Public メソッド | |
Camera3D (GraphicsContextAlpha gl, DrawHelpers draw_helpers) | |
コンストラクタ。 | |
void | SetFromCamera2D (Camera2D cam2d) |
カメラを配置し、2D並行投影ビューに正確にあうように透視変換をセットします。全てのスプライトが Z=0 の平面に描画されているとき、デフォルトになります。 | |
void | SetAspectFromViewport () |
現在のビューポートに基づき、アスペクト比を更新します。 | |
Matrix4 | GetTransform () |
Matrix4としてカメラ変換行列(位置行列)を計算します。 GetTransform().InverseOrthonormal() はビュー行列スタックにプッシュするものです。 正規直交行列を返します。 | |
void | Push () |
行列スタックに必要な全ての行列をプッシュします。 | |
void | Pop () |
行列スタックから全てのカメラ行列をポップします。 | |
void | DebugDraw (float step) |
標準的なデバッググリッドを描画します。 DebugDraw() は内部的にPush()/Pop()を呼び出さないことに注意してください。カメラのPush()/Pop()は、開発者が呼び出してください。 | |
Vector2 | NormalizedToWorld (Vector2 bottom_left_minus_1_minus_1_top_left_1_1_normalized_screen_pos) |
Camera3D.NormalizedToWorldは有効な位置を返しません。なぜなら、それはray/planeの交差であるからです。 Camera2D.NormalizedToWorldとは違うことに、注意してください。 | |
Vector2 | GetTouchPos (int nth=0, bool prev=false) |
ワールド座標で引数 nthのタッチ位置を返します。'prev'フラグは内部的に使用します。 | |
Bounds2 | CalcBounds () |
SetFromCamera2Dによって設定された、直近の境界を返します。 | |
void | SetViewFromViewport () |
ピクセルサイズ (平面 z =0) のスクリーン境界を最大にする、3Dビューを作成します。正確に3次元視錐台と一致します。視点からz=0平面への距離は、現在のFrustum.FovY値に基づいて計算されます。 | |
float | GetPixelSize () |
現在のビューポートのサイズに基づいて、ワールド座標における'スクリーンピクセル'のサイズを取得します。 例えば、スプライトやフォントを1:1で描画するために必要なスケールファクターを決定するために使用することができます。 SetFromCamera2Dによって設定された最新のBounds2を使用しています。 | |
void | Navigate (int control) |
デバッグ用カメラのナビゲーション。 | |
void | SetTouchPlaneMatrix (Matrix4 mat) |
GetTouchPos と NormalizedToWorldで使用される、モデル平面行列を設定します。 | |
Public 変数 | |
Vector3 | Eye |
視点位置。 | |
Vector3 | Center |
ビューの中央/ターゲットの位置。 | |
Vector3 | Up |
上方向のベクトル。 | |
Frustum | Frustum |
透視変換の錐台。 | |
Matrix4 | TouchPlaneMatrix = Matrix4.Identity |
このモデル行列はNormalizedToWorld/ GetTouchPosで使用されます。レイトレースのタッチ方向に対して、2D平面を定義します。 |
基本的な3Dカメラ。
Camera3D | ( | GraphicsContextAlpha | gl, |
DrawHelpers | draw_helpers | ||
) |
コンストラクタ。
gl | 行列スタックに必要な参照。 |
draw_helpers | デバッグ用描画に必要な参照。 |
Camera3D.NormalizedToWorldは有効な位置を返しません。なぜなら、それはray/planeの交差であるからです。 Camera2D.NormalizedToWorldとは違うことに、注意してください。
返り値は、2D、タッチ平面のローカル座標内の位置座標として返されます。 この関数は、どの平面と交差しているかを知るために、TouchPlaneMatrixプロパティを使います。そのため、TouchPlaneMatrixを前もって設定しておく必要があります。(設定にはNode.NormalizedToWorldを使用してください)
ICameraを実装しています。