クラス Camera3D

基本的な3Dカメラ。 [詳細]

Camera3Dに対する継承グラフ
ICamera

すべてのメンバ一覧

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デバッグ用描画に必要な参照。

メソッド

Vector2 NormalizedToWorld ( Vector2  bottom_left_minus_1_minus_1_top_left_1_1_normalized_screen_pos)

Camera3D.NormalizedToWorldは有効な位置を返しません。なぜなら、それはray/planeの交差であるからです。 Camera2D.NormalizedToWorldとは違うことに、注意してください。

返り値は、2D、タッチ平面のローカル座標内の位置座標として返されます。 この関数は、どの平面と交差しているかを知るために、TouchPlaneMatrixプロパティを使います。そのため、TouchPlaneMatrixを前もって設定しておく必要があります。(設定にはNode.NormalizedToWorldを使用してください)

ICameraを実装しています。