基本的な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を実装しています。